linux文件权限
VSole2021-09-18 06:40:06
用户与用户组
Linux
的文件权限是和用户与用户组
密切相关的一个概念,对于一个文件来说,用户可以分为三类:
- 文件的
拥有者
-user
- 文件的拥有者所在
用户组
的其他成员 -group
- 除
拥有者
和用户组
成员以外的其他用户 -others
文件权限是相对于这三类用户而言的,不同身份的用户可以具有不同的权限。
文件属性
使用命令 ls -l
可以得到文件的详细信息,比如:
drwxr-xr-x 5 root root 4096 Sep 7 19:52 dotemacs drwxr-xr-x 6 root root 4096 Sep 3 22:34 dotfiles drwxr-xr-x 9 root root 4096 Sep 11 10:19 emacs-kit
我们可以把每一条信息分为 8
个部分,比如上面第一条信息可以分为:
文件类型权限信息连结数拥有者用户组文件容量修改日期文件名drwxr-xr-x5rootroot4096Sep 7 19:52dotemacs
这里主要了解文件类型
和权限信息
文件类型
Linux
中文件可以分为5
个类型,ls -l
输出的每条信息中的第一个字符
就用于表示文件类型。
各个文件类型及其字符表示为:
表示字符文件类型d目录-文件l符号链接等b可供储存的接口设备c串行端口设备,如键盘、鼠标等
权限信息
通过用户与用户组
概念可以了解到权限是相对于三类用户而言的,因此ls -l
显示的权限信息也分为三组。
每个文件的权限信息
由9
个字符组成,分为三组,分别对应拥有者
,用户组
,其他人
拥有的权限。
对于权限信息rwxr-xr-x
来说,拥有者
的权限为rwx
,用户组
和其他人
的权限为r-x
.
每组权限分为:读权限
,写权限
和执行权限
, 分别由字符r
,w
,x
表示。如果不具有相应的权限,就使用字符-
表示。
因此,权限信息rwxr-xr-x
可以理解为:拥有者
具有读
,写
和执行
权限,而用户组
和其他人
就只有读
和执行
的权限。
修改文件拥有者和所属用户组
命令chown
和chgrp
可以用于修改文件拥有者和所属用户组,使用方式也很简单:
$ chown [-R] 账号名称 文件或目录 $ chown [-R] 账号名称:组名 文件或目录 $ chgrp [-R] 用户组名称 文件或目录
参数 -R
进行递归的持续变更,即连同次目录下的所有文件都变更。
修改文件权限
命令 chmod
用于修改文件的权限,并提供了两种修改文件权限的方式。
数字类型改变文件权限
我们可以用数字来代表各个权限,各个权限对应的数字为:
r:4 w:2 x:1
每种身份各自的三个权限分数是需要累加的,例如当权限为 rwxrwx---
时,对应的分数为:
user = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others = --- = 0+0+0 = 0
得到的文件权限数字也就为 770
, 修改权限时就可以使用这个数字完成:
很明显,这样修改文件权限是很麻烦的,因此 chmod
提供了另一种更好用的方式来修改文件权限。
符号类型改变文件权限
符号类型改变文件权限需要遵循一定的语法规则,分别需要了解的有身份表示符
,操作表示符
和权限表示符
.
身份表示符:
表示符代表的身份u文件的拥有者g文件的拥有者所在用户组o其他人a所有用户
操作表示符:
表示符代表的操作+添加权限-去除权限=设定权限
权限表示符
就是r
,w
和x
.
从表示符的组成大概也可以猜到怎样修改文件权限了,比如说下面的这条指令让拥有者具有所有权限,而为用户组和其他人添加执行权限:
需要注意的是:u=rwx,go+x
之间没有空格。
权限的作用
同一个权限对于文件
和目录
来说,含义是不一样的,这里来了解一下。
权限文件目录r可以读取文件内容可以读取目录结构列表w可以编辑修改文件内容可以改动目录结构列表x可以被系统执行用户可以进入目录 (cd)
这里需要注意的一个权限是:可以改动目录结构列表
, 这意味着可以:
- 建立新的文件与目录
- 删除已经存在的文件与目录
- 将已存在的文件或目录进行更名
- 搬移该目录内的文件、目录位置
所以 w
这个权限还是慎重使用好了。
原文:https://rgb-24bit.github.io/blog/2018/linux-file-permission.html

VSole
网络安全专家