Если вы работали с Linux, то, скорее всего, знакомы со стандартными правами доступа (чтение, запись и выполнение), которые можно назначать файлам и каталогам. Однако стандартная система прав в Linux позволяет назначать доступ только владельцу, группе владельца и всем остальным пользователям.
Но что, если вам нужно дать вашему коллеге Джону разрешение на чтение конкретного файла, не предоставляя такого же доступа всем остальным? В таких случаях пригодятся списки контроля доступа (ACL).
— Что такое ACL?
ACL предоставляет более детальный контроль над правами доступа к файлам и каталогам, позволяя устанавливать права для конкретных пользователей и групп, а не только для владельца, группы и остальных пользователей.
Например, с помощью ACL можно:
🔹Дать пользователю Джону доступ на чтение файла
file.txt🔹Дать группе маркетинг права на запись в каталог
sales-data🔹Отменить права на выполнение у пользователя Мари для файла
script.sh— Просмотр ACL для файлов
Чтобы проверить, установлен ли ACL для файла, используйте команду
ls -l:ls -l file1
-rw-rw-r--+ 1 user1 group1 0 Feb 17 2024 file1
Символ + в конце прав доступа указывает на то, что у файла установлен ACL.
Чтобы увидеть подробности ACL, используйте команду
getfacl:getfacl file1
# file: file1
# owner: user1
# group: group1
user::rw-
user:user2:r--
group::r--
mask::rw-
other::r--
Вывод
getfacl показывает как стандартные, так и расширенные права доступа, установленные для файла.— Назначение ACL для файлов
Чтобы предоставить пользователю
user2 права на чтение файла file1:```
setfacl -m u:user2:r-- file1``
Чтобы удалить права пользователя
user2, назначенные через ACL:setfacl -x u:user2 file1
Чтобы удалить все расширенные ACL (но сохранить стандартные права):
setfacl -b file1
— Установка ACL по умолчанию для каталогов
ACL по умолчанию, установленные для каталога, будут наследоваться всеми новыми файлами и подкаталогами, созданными в нем.
Чтобы установить ACL по умолчанию:
setfacl -d -m u:user3:rwx dir1
Все новые файлы, созданные в
dir1, унаследуют права на чтение, запись и выполнение для user3.Вот и все основные концепции и команды для работы с ACL в Linux ✌️
👉 DevOps Portal