POSIX.1e собирался определить механизмы ACL ( Access Control List ) для POSIX (среди других вопросов, связанных с безопасностью), но предложения никогда не преобразовывались в формальный стандарт , Тем не менее ACL (не обязательно POSIX.1e ACL) поддерживаются, по крайней мере, опционально во всех основных вариантах Unix ( Linux , BSD , MacOS X (ACL) , HP-UX , AIX (p107ff), Solaris ). Одна деталь, которую я еще не заметил, - это то, как списки ACL для файлов взаимодействуют с битом закрепления в каталоге.
С обычным каталогом (без ACL, чтобы запутать проблему), разрешения могут быть установлены, например, 1777 (например, в / tmp).
drwxrwxrwt 16 root sys 4819 May 4 12:09 /tmp
Липкий бит обозначается буквой 't' в последней позиции разрешений. Это означает, что пользователь может удалить файл из каталога, только если пользователь может записать файл. Это имеет смысл; если пользователь может записать в файл, содержимое файла может быть уничтожено.
Мой вопрос:
- Предположим, что общие (не ACL) разрешения для каталога / tmp такие же, как показано выше.
- Далее предположим, что параноидальный пользователь 'trembler' устанавливает разрешения без ACL для файла
/tmp/secret
равным 600 (пользователь 'trembler', группа 'обеспокоен').
- Предположим, что 'trembler' предоставляет доступ 'rw' к / tmp / secret другому пользователю, 'blase' через ACL, который специально ссылается на 'blase'.
- Может ли 'blase' удалить файл
/tmp/secret
Если ACL принимается во внимание, ответ должен быть «да»; если ACL игнорируется, ответ будет «нет». Предполагая, что ACL включены в соответствующей файловой системе, одинаково ли поведение во всех вариантах Unix?