Разница между chmod и ACL


13

Я понимаю, chmodи chownкак работают биты разрешений, но в Linux есть другая система разрешений, ACLс setfaclи getfacl, поэтому меня это удивляет.

В чем разница между этими двумя системами контроля разрешений? Они мешают друг другу?

Ответы:


7

Одно не лучше другого, это просто разные методы и способы мышления.

Вы можете использовать обе системы разрешений на одном пути без проблем.

Они мешают друг другу при изменении прав владельца, группы-владельца и других разрешений: при установке для них текущего значения из setfacl фактически будет установлено разрешение posix, а не ACL.

Разрешения Posix позволяют только владельцу, владельцу группы и разрешению «все», в то время как ACL позволяет нескольким «владельцам» пользователей и групп. ACL также позволяет устанавливать разрешения по умолчанию для новых файлов в папке.

Вы можете добавить больше управления разрешениями в дополнение к apparmor или selinux для более строгого контроля.


1
Правильно ли ls -lя считаю, что при запуске я буду видеть только разрешения posix, а ACL, которые ограничивают файл, не будут отображаться? Или разрешения posix будут соблюдены независимо?
mFeinstein

3
@mFeinstein Зависит. Под Linux ls -lставит +в конце символы разрешений, чтобы указать, что ACL присутствуют. Если ACL присутствует, то основные разрешения не рассказывают всю историю: ACL переопределяет разрешения POSIX.
Жиль "ТАК - перестань быть злым"

О, круто! Это +по крайней мере мешает мне
застать

3

Классические разрешения Unix, установленные chmod (чтение / запись / выполнение, пользователь / группа / другое), существуют намного дольше, чем ACL. Если бы ACL существовал с самого начала, тогда не было бы chmod, как мы его знаем. Однако, поскольку chmod существует очень давно, многие приложения называют его, многие форматы архивов поддерживают классические разрешения и т. Д. Вы можете выражать разрешения chmod с помощью ACL; они действуют как своего рода отправная точка для ACL.

Посмотрите Приоритет пользователя и владельца группы в разрешениях файла и Приоритет ACLS, когда пользователь принадлежит нескольким группам для более детальной обработки того, как управление доступом работает при наличии ACL.

Команда chmodтакже управляет некоторыми флагами, которые на самом деле не являются разрешениями, но, тем не менее, часто называются разрешениями: setuid, setgid и sticky-бит . На самом деле это не разрешения, поскольку они не влияют на то, какие права доступа разрешены к файлу, а на то, как работают определенные операции над файлом после того, как они были авторизованы. Там нет ничего подобного с ACL.


Таким образом, чтобы действительно понять разрешение файла, я должен проверить и ACL, и ls -l?
mFeinstein

Есть ли способ узнать, есть ли какие-либо специфичные для ACL разрешения для файла / каталога?
mFeinstein

@mFeinstein Посмотрите, есть ли у отображаемых разрешений lsдополнительные +в конце, или выполните getfaclкоманду, чтобы отобразить все разрешения, включая ACL.
Жиль "ТАК - перестань быть злым"

1
Просто getfacl myFile?
mFeinstein

1
Да, getfacl на пути, который вы хотите проверить.
Зулгриб
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.