ACL — различия между версиями
(Новая страница: «= Списки контроля доступа = == Введение == ACL (Access Control List, список контроля доступа) - это мех…») |
(→Настройка ACL на примере) |
||
Строка 24: | Строка 24: | ||
=== Постановка задачи === | === Постановка задачи === | ||
− | + | Пусть имеется: | |
* каталог /media/buhi (на поддержерживающей ACL файловой системе: ext4, btrfs, xfs и др.) | * каталог /media/buhi (на поддержерживающей ACL файловой системе: ext4, btrfs, xfs и др.) | ||
* группа пользователей buhi (бухгалтерия) | * группа пользователей buhi (бухгалтерия) |
Версия 11:38, 10 марта 2023
Содержание
Списки контроля доступа
Введение
ACL (Access Control List, список контроля доступа) - это механизм в Linux, который позволяет более гранулярно управлять доступом к файлам и папкам, чем это позволяют права доступа по умолчанию. С ACL вы можете установить права доступа для конкретных пользователей и групп пользователей на конкретные файлы и папки.
ACL в Linux обычно состоит из двух типов прав: пользовательские права и групповые права. Пользовательские права позволяют устанавливать права доступа для конкретных пользователей, а групповые права - для групп пользователей.
Преимущество использования ACL заключается в том, что он позволяет установить более точные права доступа, чем это возможно с помощью стандартных прав доступа на основе пользователей и групп. Например, если у вас есть файл, к которому нужен доступ только для нескольких пользователей, вы можете установить ACL для этого файла, чтобы ограничить доступ только для этих пользователей, не давая права доступа всем остальным пользователям на системе.
Команды для работы с ACL в Linux включают getfacl и setfacl. Команда getfacl используется для просмотра текущих прав доступа ACL на файлы и папки, а команда setfacl используется для изменения или добавления новых прав доступа ACL на файлы и папки.
Знание ACL может быть полезно для системных администраторов, которые хотят более тонко настраивать доступ к файлам и папкам на своих серверах.
В Linux ACL хранятся в расширенных атрибутах (extended attributes, xattr), которые являются дополнительными метаданными, хранящимися в файловой системе. Большинство файловых систем, в т.ч. ext4, BTRFS, XFS, поддерживают хранение ACL в xattr. Однако, не все файловые системы поддерживают ACL и хранение их в xattr. Например, файловая система FAT32 не поддерживает ACL вообще.
Эта статья описывает настройку ACL на ОС ROSA Хром/Fresh.
Установка пакетов
Обычно пакет с утилитами для работы с ACL уже предустановлен, при необходимости установите его:
sudo dnf install acl
Настройка ACL на примере
Постановка задачи
Пусть имеется:
- каталог /media/buhi (на поддержерживающей ACL файловой системе: ext4, btrfs, xfs и др.)
- группа пользователей buhi (бухгалтерия)
- пользователи ivanova, petrova, sidorova, входящие в группу buhi
Нужно сделать так, чтобы все пользователи из группы buhi — ivanova, petrova, sidorova — могли:
- читать файлы в /media/buhi
- создавать новые файлы и каталоги
- изменять существующие файлы
Настройка ACL для существующих файлов
Выставьте ACL на каталог /media/buhi для группы "buhi", чтобы ее пользователи могли записывать и читать файлы в этом каталоге. Для этого выполните команду:
setfacl -R -m g:buhi:rwx /media/buhi
Эта команда добавляет права для группы "buhi" на папку /media/buhi и все ее подкаталоги и файлы. Опция -R означает, что изменения должны применяться рекурсивно для всех подкаталогов и файлов. Опция -m означает, что мы меняем существующие права. g:buhi:rwx означает, что мы выставляем права для группы "buhi" на чтение, запись и выполнение.
Проверьте, что ACL настроены правильно. Для этого выполните команду:
getfacl /media/buhi
В выводе должно быть что-то похожее на:
# file: /media/buhi/ # owner: <owner> # group: buhi user::rwx group::r-x other::r-x default:user::rwx default:group::r-x default:group:buhi:rwx default:other::r-x
Здесь мы видим, что для группы "buhi" выставлены права на чтение, запись и выполнение.
Теперь группа "buhi" имеет права на чтение и запись файлов в папке /media/buhi и все ее подпапки и файлы.
Автоматическая установка ACL и вновь создаваемых файлов и каталогов
Ключ -d у команды setfacl позволяет установить ACL по умолчанию на вновь создаваемые файлы и папки в указанной директории (ранее мы выставили ACL просто на уже существующие файлы и каталоги).
Для того, чтобы установить ACL по умолчанию для группы "buhi" на каталог /media/buhi, выполните следующую команду:
sudo setfacl -R -d -m g:buhi:rwx /media/buhi
Здесь ключ -d указывает, что мы устанавливаем ACL по умолчанию, а ключ -m указывает, что мы изменяем существующие права. Аргумент g:buhi:rwx задает права для группы "buhi" на чтение, запись и выполнение. Теперь при создании новых файлов и каталогов в каталоге /media/buhi, они будут автоматически получать ACL с правами, выставленными по умолчанию.
Вы можете проверить, что ACL по умолчанию настроены правильно, выполнив команду:
getfacl /media/buhi
В выводе должно быть что-то похожее на:
# file: /media/buhi/ # owner: <owner> # group: buhi user::rwx group::r-x other::r-x default:user::rwx default:group::r-x default:group:buhi:rwx default:other::r-x
Здесь мы видим строку "default:group:buhi:rwx", которая указывает, что группа "buhi" имеет права на чтение, запись и выполнение для всех вновь создаваемых файлов и каталогов в каталоге /media/buhi.