Что такое ACL?
ACL (Access Control Lists) — это механизм, позволяющий более гибко управлять правами доступа к файлам и директориям в операционных системах Linux. В отличие от традиционной системы прав доступа (где права делятся на владельца, группу и остальных), ACL позволяет задавать права для каждого пользователя и группы отдельно, а также предоставляет возможность использования более детализированных прав доступа.
Основные понятия ACL #
- ACL — Список прав доступа. Он может быть назначен как для отдельных пользователей, так и для групп.
- Права доступа — Это комбинация прав:
r
— чтение (read),w
— запись (write),x
— выполнение (execute).
- Маска (mask) — максимальные права доступа, которые могут быть предоставлены для группы и других пользователей. Маска ограничивает доступ, если она более ограничена, чем другие права.
- По умолчанию (default ACL) — Права, которые будут автоматически присвоены новым файлам и подкаталогам в заданной директории.
Основные команды для работы с ACL #
1. Просмотр текущих ACL #
Для просмотра текущих ACL для файла или директории используйте команду:
getfacl /путь/к/файлу
Пример:
getfacl /mnt/ftp
Вывод команды покажет, какие права установлены для пользователей и групп.
2. Настройка ACL для пользователей и групп #
Для задания прав доступа используйте команду setfacl
.
- Для пользователя:Чтобы назначить права пользователю (например, предоставить права на чтение, запись и выполнение), используйте:
sudo
setfacl -m u:username:rwx /путь/к/директории
- Для группы:Чтобы установить права для группы, используйте:
sudo
setfacl -m g:groupname:rwx /путь/к/директории
- Для всех пользователей (others):Чтобы настроить права для всех остальных пользователей, используйте:
sudo
setfacl -m o::r-x /путь/к/директории
3. Удаление ACL для пользователя или группы #
Чтобы удалить ACL для пользователя или группы, используйте параметр -x
:
- Для пользователя:
sudo
setfacl -x u:username /путь/к/директории
- Для группы:
sudo
setfacl -x g:groupname /путь/к/директории
4. Удаление всех ACL #
Если необходимо удалить все ACL для файла или директории, используйте команду:
sudo setfacl -b /путь/к/директории
Пример:
sudo setfacl -b /mnt/ftp
Эта команда удаляет все ACL, связанные с директорией /mnt/ftp
.
5. Установка умолчаний для новых файлов #
Для установки дефолтных прав доступа для новых файлов, созданных в директории, используйте флаг -d
:
sudo setfacl -d -m u:username:rwx /путь/к/директории
Пример:
sudo setfacl -d -m u:upload:rw- /mnt/ftp
Это установит дефолтные права для новых файлов, создаваемых в /mnt/ftp
, для пользователя upload
с правами на запись, но без чтения и выполнения.
Маска прав (mask) #
Маска (mask
) в ACL определяет максимально доступные права для группы и других пользователей. Если маска более ограничена, чем права, установленные для группы, то эти права будут уменьшены.
Для настройки маски используется команда:
sudo setfacl -m m::rwx /путь/к/директории
Пример:
sudo setfacl -m m::rw- /mnt/ftp
Эта команда устанавливает маску прав для директории, ограничивая доступ к чтению и записи.
Практические примеры использования ACL #
- Дать полный доступ пользователю
adminftp
, а пользователюupload
— только на запись:sudo setfacl -m u:adminftp:rwx /mnt/ftp
sudo setfacl -m u:upload:rw- /mnt/ftp
- Предоставить группе
ftp
доступ только для чтения:sudo setfacl -m g:ftp:r-- /mnt/ftp
- Запретить доступ для всех пользователей, кроме владельца:
sudo setfacl -m o::--- /mnt/ftp
- Установить умолчания для новых файлов в директории с правами только на запись для пользователя
upload
:sudo setfacl -d -m u:upload:rw- /mnt/ftp
Преимущества использования ACL #
- Гибкость в управлении доступом. ACL позволяет задавать права для каждого пользователя и группы отдельно, что даёт более детализированное управление доступом.
- Поддержка сложных сценариев безопасности. С помощью ACL можно настроить доступ в случаях, когда традиционная модель прав не позволяет точно управлять доступом.
- Автоматическая установка прав для новых файлов и директорий через умолчания.
Заключение #
Работа с ACL предоставляет администраторам Linux мощный инструмент для управления правами доступа к файлам и директориям, позволяя настроить сложные правила доступа и обеспечить безопасность на уровне пользователей и групп. С помощью ACL можно легко задавать права для отдельных пользователей, групп и всех остальных пользователей, что делает управление доступом более гибким и удобным.
Добавить комментарий