Есть ли что-то для Linux, где у вас есть более продвинутые элементы управления разрешениями linux для пользователей и групп, таких как Windows. Это то, о чем SeLinux?
1 ответ
Почти все Unix-подобные системы поддерживают ACL; в Linux используется формат POSIX ACL . FreeBSD поддерживает списки ACL в стиле POSIX и NFSv4 (также периодически предпринимаются попытки добавить ACL NFSv4 в Linux).
Формат POSIX ACL - это в основном расширение, позволяющее указывать разрешения на чтение / запись / выполнение для нескольких пользователей:
$ setfacl -m u::rw,u:httpd:r,g::- ssl.key
$ getfacl ssl.key
# owner: root
# group: root
user::rw-
user:openldap:r--
user:httpd:r--
user:postfix:r--
group::---
mask::r--
other::---
Наследование осуществляется с использованием "списков ACL по умолчанию":
$ getfacl /var/log/journal/
# owner: root
# group: systemd-journal
# flags: -s-
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:adm:r-x
default:group:wheel:r-x
default:mask::r-x
default:other::r-x
$ touch /var/log/journal/test
$ getfacl /var/log/journal/test
# owner: root
# group: systemd-journal
user::rw-
group::r-x #effective:r--
group:adm:r-x #effective:r--
group:wheel:r-x #effective:r--
mask::r--
other::r--
С другой стороны, формат ACL для NFSv4 будет очень похож на формат Windows и NTFS - слегка отличающиеся основные имена (с использованием NFSv4-стиля user @ domain вместо Windows SID или DOMAIN\name), но почти идентичные флаги разрешений.
Как ACL, так и базовые разрешения Unix являются инструментом "дискреционного контроля доступа" - они обычно устанавливаются владельцем объекта; если вы создаете файл, вы можете сделать его читаемым для всех. SELinux, тем временем, является реализацией обязательного контроля доступа - все правила SELinux написаны системным администратором и не могут быть изменены пользователями, даже для файлов, которые они создали. Другими такими системами являются AppArmor, SMACK; В Windows Vista очень простая схема, называемая обязательным контролем целостности.