我想问一下ext4
当目录权限和文件权限发生冲突时,Linux 操作系统在文件系统上使用什么规则。
例子:
drwxrwx--- user1 group2 FOLDER
-rw-r--r-- user1 group1 FILE
group2
文件上的用户FILE
拥有什么权限?...在这种情况下确定文件权限的一般规则是什么?
谢谢。
答案1
如果用户在 group2 中,那么他们将遵循目录 FOLDER 的组权限。即
rwx
假设他们不是用户 1,也不在组 1 中,那么我们将查看 FILE 的“其他”权限。即
r--
因此,他们只有此文件的读取权限。请注意,这有点令人困惑。他们无法直接修改此文件,因为他们没有写入权限。但是,由于他们拥有wx
目录的写入权限,因此他们可以rm
修改此文件,然后用新文件替换它。(注意:inode 可能会发生变化,他们无法将chown
其归还给原始所有者,因此这与直接修改文件并不完全相同。)
因此,一般来说,权限会从最上级目录继承。随着权限越来越严格,它们会限制子文件和目录。但是,如上所述,如果您拥有wx
顶级目录的权限,则有解决方法。
编辑
类似地,如果你用 编辑文件vim
,你会看到 inode 发生变化。这不是“编辑”,而是“覆盖”。
$ echo foo > file
$ ls -li file
5213942 -rw-r--r-- 1 sparhawk sparhawk 4 Aug 16 15:34 file
$ sudo chown root:root file
$ ls -li file
5213942 -rw-r--r-- 1 root root 4 Aug 16 15:34 file
$ vim file
$ ls -li file
5214750 -rw-r--r-- 1 lee lee 7 Aug 16 15:35 file
注意覆盖文件后 inode 的变化vim
。还请注意,vim 发出警告,提示文件为只读。我不得不使用 进行保存:w!
。