所以我对文件权限类别有点困惑。所以这就是我的理解,如果我错了,请纠正我。
对于每个文件,都有一个所有者(一个用户),它有一个符号 u,对于每个文件,可能有一组用户拥有该文件(大多数时候所有者=组?)一个组可以访问它,包括所有者本人是该团体的成员。
而其他人是指所有不在群组中且不是所有者的人,对吗?
那么在处理权限时,用户就是所有者吗?
并且所有(a)指的是所有者(u)+组(g)+其他人?
答案1
在 POSIX 文件系统上,每个文件都有一个用户(文件的所有者)、一个组以及用户、组和其他所有人的权限。
对于每个用户,对给定文件的访问权限确定如下:
- 如果用户是文件的所有者,则应用所有者权限;
- 如果用户是文件组的成员,则应用组权限;
- 在所有其他情况下,其他权限均适用。
这里的顺序很重要;因此,您可以拥有一个属于您的文件,具有权限0077
(组和其他人的所有内容,所有者的任何内容),并且您将无权访问它!但由于您是所有者,您可以使用 来更改它chmod
。在某些情况下,您想要拒绝特定组的访问并允许其他任何人访问(想象一下students
学术环境中的组),这可能很有用。
严格来说,权限并不与最终用户匹配,而是与进程的有效用户匹配,这可能有所不同(例如对于 set-uid 二进制文件)。也可能有其他因素影响群体,例如在 NFS 挂载上。
可以设置权限chmod
(请参阅了解 UNIX 权限及其属性有关详细信息),一种选择是使用您提到的字母:u
用于用户权限、g
用于组权限和o
用于其他权限。使用a
withchmod
将权限应用于所有三个类别。
在现代系统中,其他访问权限可以应用在这些权限之上或代替这些权限;查找 ACL ( setfacl
)、SELinux 等。