Я хотел бы спросить, какие правила ОС Linux использует в ext4
файловых системах при возникновении конфликтов между разрешениями на доступ к каталогам и разрешениями на доступ к файлам.
Пример:
drwxrwx--- user1 group2 FOLDER
-rw-r--r-- user1 group1 FILE
group2
Какие разрешения на доступ к файлу будут у пользователя FILE
? И каково общее правило определения разрешений на доступ к файлу в таких ситуациях?
Спасибо.
решение1
Если пользователь входит в группу group2, то он будет следовать групповым разрешениям для каталога FOLDER. т.е.
rwx
Предполагая, что они не являются пользователем user1 и не входят в group1, тогда мы рассмотрим «другие» разрешения для 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!
.