Chmod 命令
感觉作者是在凑数…. chmod
还不如chattr
有趣…
三个代表
文件的权限有三个代表, 代表最广大人民….
上面当然是在扯淡, 因为这里没啥好讲的, 每个文件都有自己的属性, 每个属性都有不同的权限, 权限分为三种, 每种代表不同的用户.
- u 代表用户,也就是文件的所有者 (user)
- g 代表用户组, 也就是文件的所有组 (group)
- o 代表其他人, 也就是除上面两者之外的人或者用户组 (others)
三种权限
不同的人,组, 对文件拥有不同的读写权限.
- r 代表读权限 (read) = 4
- w 代表写权限 (write) = 2
- x 代表执行权限 (excute) = 1
如果一个文件是可执行文件, 那么给相应的用户添加x
后,那个用户就可以执行这个文件. 我们知道,目录也是文件, 而目录的可执行权限就是进入目录(或者读取目录的内容,或者对目录里的内容进行操作,比如,删除.), 如果取消了你对某个目录的可执行权限以后, 你就进不去了, 另外一个误区就是, 如果你对某个目录具有执行权限, 那么你就可以对目录下的内容进行移动, 删除操作, 不管这个文件是属于谁的.
上面的 4 2 1
分别对应某种权限的数字表示, 我们常说的设置权限为755
,就是让u
的权限为7
,g
的权限为5
, o
的权限也为5
, 7
代表什么呢? 代表4+2+1
也就是rwx
权限, 那么5
也就好解释了,5=4+1
,也就是r+x
权限.
下面开始翻译…
- 给文件的所有者添加执行权限:
chmod u+x filename
- 给文件所有者添加读权限,并且给文件所属组添加执行权限:
chmod u+r,g+x filename
- 给文件的所有者去除读权限和执行权限:
chmod u-rx filename
- 给所有用户(u+g+o)添加文件的执行权限:
chmod a+x filename
- 设置某个文件(file2)的权限与另一个文件(file1)相同:
chmod —reference=file1 file2
- 递归设置文件权限:
chmod -R 755 dir/
- 匹配正则:
chmod u+x *.py
扩展阅读
Beginners Guide to File and Directory Permissions
我感觉这里啰嗦的东西完全是在凑命令… 建议大家看一下比较冷门的chattr
, 算式隐藏命令吧, 尤其是 a
和i
这两个权限. 很有用的.