我的问题的一个例子是/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
组中。
因为更改文件模式的权限是文件的拥有用户。
因为能够更改您自己的文件和目录是一个好主意。
因为它不改变父目录:父目录包含子文件(和目录)的名称。模式(包括权限是文件的一部分(不是包含目录的一部分)。如果您从两个目录创建硬链接,则可以看到这一点。
在 Unix 中,有文件和目录(以及一些奇怪的“文件”,如管道和设备,但对它们的权限就像普通文件一样工作)和符号链接(本质上,文件包含它们指向的文件的名称)。目录只是文件名列表和对相应物理文件的引用。这样,您可以让相同的文件以不同的名称出现,或者以相同(或另一个)名称出现在不同的目录中。
文件系统对象有三种基本权限:r(ead)、w(rite) 和 e(x)ecute。对于常规文件,读取意味着能够读取其内容(例如复制、查看...),写入意味着能够修改其内容(覆盖、在末尾添加内容、截断到长度为零;注意这与读取无关,您可以拥有一个可以修改但不能读取的文件),执行意味着将其作为程序运行。对于目录,读取意味着列出它的内容(文件名),写入意味着修改(添加/删除文件),执行意味着使用目录来获取文件本身(如果目录上有 r 而不是 x,你可以看到文件名,但不了解它们)。符号链接的权限无关紧要,只要按照上面提到的:一个包含指向的文件名的短文件,内容正常处理。是的,完全正交(独立)。
系统将权限分为三组:所有者、对象所属的组以及其他所有人。每个用户属于一个(或多个)组。在检查是否允许操作时,首先检查您是否是所有者,如果是,则所有者权限规则;如果您不是所有者但属于该组,则考虑组权限;否则,检查其他权限。
没错,它允许相当荒谬的权限组合。但它是一个简单的模型,总有一天你会发现一些“废话”组合的用处。
某些对象的所有者有权随意更改权限。