POSIX ACL и бит закрепления, примененный к каталогу - PullRequest
2 голосов
/ 05 мая 2009

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?

1 Ответ

1 голос
/ 05 мая 2009

Предполагая, что ACL включены в соответствующей файловой системе, одинаково ли поведение во всех вариантах Unix?

Поскольку ACL не реализованы единообразно в вариантах Unix, я ожидаю, что поведение может отличаться в разных вариантах Unix, но это не обязательно. Если все Unices не реализуют один и тот же (стандартный) способ ACL, IMHO нет способа гарантировать единообразное поведение во всех вариантах Unix.

...