Главная > Управление пакетами и системой > setfacl

setfacl: Настройка списков контроля доступа (ACL) к файлам

Команда `setfacl` используется для настройки списков контроля доступа (ACL) к файлам и каталогам. Она выходит за рамки традиционной модели разрешений Unix (владелец, группа, остальные), позволяя предоставлять или отзывать гранулированные разрешения на чтение, запись и выполнение для конкретных пользователей или групп. Это обеспечивает гибкое управление сложными требованиями к разрешениям.

Обзор

`setfacl` обеспечивает более гибкое управление разрешениями для объектов файловой системы. Вы можете индивидуально предоставлять или отзывать разрешения на чтение, запись и выполнение для конкретных пользователей или групп, а также устанавливать ACL по умолчанию, чтобы новые файлы или каталоги автоматически наследовали ACL. Это особенно полезно в средах, где несколько пользователей совместно используют ресурсы и требуется точное управление разрешениями.

Основные функции

  • Индивидуальная настройка разрешений для конкретных пользователей/групп
  • Установка и наследование ACL по умолчанию
  • Изменение и удаление существующих ACL
  • Рекурсивное применение разрешений

Основные опции

`setfacl` позволяет точно контролировать ACL с помощью различных опций. Ниже приведены наиболее часто используемые основные опции.

Настройка и изменение ACL

Удаление ACL

Прочее

Сгенерированная команда:

Комбинируйте команды.

Описание:

`setfacl` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

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

Предоставление прав на чтение/запись конкретному пользователю

setfacl -m u:user1:rw testfile.txt

Предоставляет пользователю `user1` права на чтение (r) и запись (w) для файла `testfile.txt`.

Предоставление прав только на чтение конкретной группе

setfacl -m g:groupA:r shared_dir

Предоставляет группе `groupA` права на чтение (r) для каталога `shared_dir`.

Установка ACL по умолчанию для каталога

setfacl -m d:u:user2:rwx project_data

Устанавливает ACL по умолчанию для каталога `project_data`, чтобы пользователь `user2` имел права на чтение/запись для новых файлов и права на чтение/запись/выполнение для новых каталогов.

Рекурсивное применение ACL

setfacl -R -m u:user3:r data_archive

Рекурсивно предоставляет пользователю `user3` права на чтение (r) для каталога `data_archive` и всех его подкаталогов и файлов.

Удаление записи ACL для конкретного пользователя

setfacl -x u:user1 testfile.txt

Удаляет запись ACL для пользователя `user1` из файла `testfile.txt`.

Удаление всех расширенных записей ACL

setfacl -b config_dir

Удаляет все расширенные записи ACL из каталога `config_dir`. (Базовые разрешения сохраняются)

Удаление записей ACL по умолчанию

setfacl -k project_data

Удаляет все установленные записи ACL по умолчанию из каталога `project_data`.

Установка

Команда `setfacl` обычно входит в пакет `acl`. В большинстве дистрибутивов Linux она установлена по умолчанию, но если команда не найдена, вы можете установить ее с помощью следующих команд.

Системы на базе Debian/Ubuntu

sudo apt update && sudo apt install acl

Установите пакет `acl` с помощью менеджера пакетов APT.

Системы на базе RHEL/CentOS/Fedora

sudo yum install acl
# или
sudo dnf install acl

Установите пакет `acl` с помощью менеджера пакетов YUM или DNF.

Советы и предостережения

Советы и предостережения по эффективному использованию `setfacl` и предотвращению потенциальных проблем.

Использование с getfacl

После настройки ACL с помощью `setfacl` важно проверить текущие настройки ACL с помощью команды `getfacl <файл/каталог>`. Это поможет убедиться, что разрешения применены должным образом.

  • Команда проверки: getfacl <файл/каталог>

Понимание разрешений маски (mask)

Записи ACL могут включать запись 'маски'. Маска определяет максимальные эффективные разрешения, применяемые ко всем записям ACL пользователей и групп. Другими словами, если разрешения, предоставленные конкретному пользователю или группе, выше разрешений маски, фактические примененные разрешения будут ограничены маской. При настройке ACL с помощью `setfacl` маска может быть автоматически скорректирована, поэтому рекомендуется проверять ее с помощью `getfacl`.

  • Роль: Ограничение максимальных эффективных разрешений для всех записей ACL пользователей/групп
  • Проверка: Проверьте раздел 'mask::' в выводе getfacl

Взаимодействие с базовыми разрешениями

Файлы или каталоги с настроенными ACL будут иметь символ `+` в конце строки разрешений при просмотре с помощью команды `ls -l`. Это указывает на то, что помимо стандартных разрешений Unix применяются дополнительные ACL. ACL дополняют стандартную модель разрешений Unix, но иногда могут усложнять ее, поэтому их следует использовать с осторожностью.

  • Индикация применения ACL: Символ '+' в конце строки разрешений при выводе ls -l

Осторожность при рекурсивном применении (-R)

Будьте осторожны при использовании опции `-R` для рекурсивного применения ACL. Особенно при использовании с `-b` (удалить все ACL) это может привести к непреднамеренному удалению ACL всех подкаталогов и файлов. Рекомендуется всегда сначала проверять результаты с помощью опции `--test` или выполнять резервное копирование важных данных перед применением.

  • Рекомендации: Предварительная проверка с помощью опции --test, резервное копирование важных данных перед применением

Те же команды в категории