Unix 文件有两种所有权:用户和组,每种所有权都有自己的权限。通常,文件的所有者应该对其具有完全访问权限,而所有者所属的工作组的成员可能具有有限的访问权限,而其他人的访问权限甚至更少。最后一个类别在 Unix 文档中称为 other。
对于一个文件,
其工作组的权限是否一定是其用户所有者的权限?
由于其用户所有者是其工作组的成员,所以我猜答案是肯定的,除非其工作组在权限方面排除其用户所有者。其用户所有者的权限可能大于其工作组的权限。
其用户所有者的权限是否一定是其他人的权限?
有人说“其他”意味着整个世界。从这个意义上说,它的工作组应该是“其他”的子集,所以我想答案是肯定的,除非“其他”排除其工作组。其工作组的权限可能比“其他”的权限多。
如果重要的话,我会专注于 Linux。
答案1
类 Unix 系统下的权限使用八进制表示。
它以可选的特殊权限开头,后面是u
ser、g
roup、o
thers。 u
、g
和o
权限是以下 OR 运算的组合:
r
头:4w
仪式:2- 执行
x
:1
因此,权限 0774 将允许其所有者和组进行完全访问,但对其他人进行只读访问。
这些权限,包括特殊权限,是相互独立的。
文件也有一个所有者和组,它们的属性也是独立的。
因此,所有者可能具有只读访问权限,而 groupX 的成员具有读写访问权限,而不符合所有者或组标准的人员则具有完全访问权限。
让我们考虑john
将权限更改text.txt
为0467
、所有权为john
、组为 的用户operator
:
$ chown john:operator text.txt
$ chmod 0467 text.txt
$ ls -l text.txt
-r--rw-rwx 1 john operator 0 Dec 29 00:57 text.txt
如果john
不是该operator
组的一部分,他将无法更新文件内容:
$ echo hi > text.txt
text.txt: Permission denied
但他仍然可以更改文件的权限,并更新文件:
$ chmod u+w text.txt
$ echo hi > text.txt
$ ls -l text.txt
-rw-rw-rwx 1 john operator 3 Dec 29 00:57 text.txt
请注意,访问文件还涉及整个目录树中的文件夹权限。