Работа с ACL (Access Control Lists) в Linux: Полный гайд

Что такое ACL?

ACL (Access Control Lists) — это механизм, позволяющий более гибко управлять правами доступа к файлам и директориям в операционных системах Linux. В отличие от традиционной системы прав доступа (где права делятся на владельца, группу и остальных), ACL позволяет задавать права для каждого пользователя и группы отдельно, а также предоставляет возможность использования более детализированных прав доступа.

Основные понятия ACL #

  1. ACL — Список прав доступа. Он может быть назначен как для отдельных пользователей, так и для групп.
  2. Права доступа — Это комбинация прав:
    • r — чтение (read),
    • w — запись (write),
    • x — выполнение (execute).
  3. Маска (mask) — максимальные права доступа, которые могут быть предоставлены для группы и других пользователей. Маска ограничивает доступ, если она более ограничена, чем другие права.
  4. По умолчанию (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 #

  1. Дать полный доступ пользователю adminftp, а пользователю upload — только на запись:
    sudo setfacl -m u:adminftp:rwx /mnt/ftp
    sudo setfacl -m u:upload:rw- /mnt/ftp
  2. Предоставить группе ftp доступ только для чтения:
    sudo setfacl -m g:ftp:r-- /mnt/ftp
  3. Запретить доступ для всех пользователей, кроме владельца:
    sudo setfacl -m o::--- /mnt/ftp
  4. Установить умолчания для новых файлов в директории с правами только на запись для пользователя upload:
    sudo setfacl -d -m u:upload:rw- /mnt/ftp

Преимущества использования ACL #

  1. Гибкость в управлении доступом. ACL позволяет задавать права для каждого пользователя и группы отдельно, что даёт более детализированное управление доступом.
  2. Поддержка сложных сценариев безопасности. С помощью ACL можно настроить доступ в случаях, когда традиционная модель прав не позволяет точно управлять доступом.
  3. Автоматическая установка прав для новых файлов и директорий через умолчания.

Заключение #

Работа с ACL предоставляет администраторам Linux мощный инструмент для управления правами доступа к файлам и директориям, позволяя настроить сложные правила доступа и обеспечить безопасность на уровне пользователей и групп. С помощью ACL можно легко задавать права для отдельных пользователей, групп и всех остальных пользователей, что делает управление доступом более гибким и удобным.

Оцените документ
Обновлено 10.02.2025

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *