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, 算式隐藏命令吧, 尤其是 ai这两个权限. 很有用的.