我的问题的一个例子是/home
目录:
drwxr-xr-x 8 root root 4096 Jan 29 23:44 home/
所以, 的所有者/home
是root
.
但我是我个人主文件夹的所有者:
drwx--x--- 85 teo teo 4096 Jan 30 16:22 teo/
teo/
如果/home
文件夹属于 ,为什么我的用户能够修改文件夹下的内容root
?
我的意思是,对我的个人文件夹的修改也是对/home
文件夹的修改,因为它是 的子文件夹/home
,而我不在该root
组中。
答案1
在 Unix 中,有文件和目录(以及一些奇怪的“文件”,如管道和设备,但它们的权限就像普通文件一样)和符号链接(本质上是包含它们指向的文件名的文件)。目录只是文件名和对相应物理文件的引用的列表。这样,您可以让同一文件以不同的名称出现,或者在不同的目录中以相同(或另一个)名称出现。
文件系统对象有三种基本权限:r(ead)、w(rite) 和 e(x)ecute。对于常规文件,读取意味着能够读取其内容(例如复制、查看等),写入意味着能够修改其内容(覆盖、在末尾添加内容、截断到长度为零;注意这与读取无关,您可以拥有一个可以修改但不能读取的文件),执行意味着将其作为程序运行。对于目录,读取意味着列出其内容(文件名),写入意味着修改(添加/删除文件),执行意味着使用目录来获取文件本身(如果目录上有 r 但没有 x,您可以看到文件名,但无法获取它们)。符号链接的权限无关紧要,就按上面说的那样:一个包含指向的文件名的短文件,内容被正常处理。是的,相当正交(独立)。
系统将权限分为三组:所有者、对象所属组以及其他所有人。每个用户属于一个(或多个)组。检查是否允许操作时,首先检查您是否是所有者,如果是,则所有者权限规则;如果您不是所有者但属于组,则考虑组权限;否则,将检查其他权限。
确实,它允许相当无意义的权限组合。但这是一个简单的模型,有一天你会发现一些“废话”组合的用途。
某些对象的所有者有权随意更改权限。
答案2
因为更改文件模式的权限属于该文件的所有者用户。
因为能够更改自己的文件和目录是一个好主意。
因为它不会更改父目录:父目录包含子文件(和目录)的名称。模式(包括权限是文件的一部分(不是包含目录的一部分)。如果从两个目录创建硬链接,您可以看到这一点。