看起来每个文件/目录都有一组给定的权限,如果在终端中输入,则每个列表最左边的 10 个字符会显示这些权限ls -l
考虑到您可以使用来更改权限chmod OCTAL fileName
,在我看来,此类权限可能是由内存中某处的 10 位字的标志设置的?
令我困惑的是,列表可能看起来像这样:-rw-rw-r--
这到底代表什么?为什么有多个write
和权限实例分别由和read
表示?w
r
我还读到,6xx
在将权限写入文件时必须使用(结果为 -rw-------),7xx
在将权限写入目录时必须使用(结果为 drwx-------)。考虑到这两种八进制表示都只能扩展到 9 位信息,我们如何设置 10 位权限?
我还读到,如果您想“删除组和其他读取权限”,您可以使用以下行:
chmod go-r fileName
首先我通过以下方式进行实验:chmod 677 testFile
然后使用前面提到的行:chmod go-r testFile -v
并得到以下输出:
mode of testFile changed to 0633 (rw--wx-wx)
我对此还很陌生,尚未找到关于细节的非常简洁清晰的描述。
答案1
所有者、群组和其他所有人。
那里有 10 个字符。第一个字符是“这是什么类型的文件?”显示,我们现在还不需要担心;其余 9 个字符描述了文件所有者、文件组和其他所有人的权限。
因此,如果文件的所有权是 root:wheel(即,所有者是 root 且组是 wheel),则权限字符串 -rwxrw-r-- 表示:
用户 root 可以读取、写入和执行 组 wheel 可以读取和写入 其他人都只能读取
(请注意,在目录上下文中,“x”表示“列出内容”;这就是为什么大多数目录都是全球可执行的。)
完整地说,除了“x”之外,有时您还会看到“s”、“t”或“T”,它们与组权限和所有者权限以及谁拥有目录中创建的新文件有关。最后,目录的第一个字母将是“d”,/dev 中的设备文件的第一个字母将是“b”或“c”。