opened image

Администрирование с помощью ACL правами доступа в Linux

Введение


Управление правами доступа на ОС Linux к различным директориям и документам - это один из главных элементов защиты системы, ее функционирования и стабильности. Классическая структура прав доступа зачастую не является достаточной. Особенно в тех случаях, когда пространство имеет сложную структуру, обладает большим количеством пользователей, всяких групп, нестандартных требований к правам. Эта модель на Linux обладает тремя уровнями прав доступа: владелец (user) группа (group), остальные (others). Существует еще три основные категории разрешений: чтение (r), запись (w) и выполнение (x).


Расширить возможности базовой модели прав доступа можно через ACL - Access Control List. Применив этот список управления можно установить права одновременно для несколько юзеров и групп - крайне полезная система для крупных компаний и организаций, так как документ или директория доступны для разных отделов с разными уровнями доступа.

 


Ключевые способности ACL:

 

  • Применение разрешений к нескольким юзерам, группам без изменения владельца документа.
  • Адаптируемое администрирование функции доступа, в том числе передачи прав создаваемым файлам.
  • Возможность устанавливать определенные запреты, расширять допуск, не затрагивая базовые (rwx) разрешения.


Использование ACL помогает администратору руководить доступом к данным более эффективно и безопасно, особенно на файловых серверах, в корпоративных сетях и средах с высокой степенью многопользовательского взаимодействия.

 

 


Этап 1. Активация ACL-поддержки


Анализ системы на возможность поддержки ACL


Перед началом инсталляции и активации Access Control List вам следует убедиться, что файловая система поддерживает его. Отметим, что современные системы, вроде ext4, xfs и btrfs однозначно совместимы с ACL. Удостовериться в том, что ACL активирована, используем команду:

tune2fs -l /dev/sda1 | grep acl

Если вывод содержит Default mount options: user_hattr acl, то ACL уже включены.

 


Для XFS:

mount | grep xfs

Если ACL не включены - примонтируйте систему, поддерживающую ACL:

sudo mount -o remount,acl /dev/sda1 /

 


Инсталляция комплектующих ACL


В большинстве дистрибутивов Linux инструменты ACL уже предустановлены. Если их нет, устанавливаем вручную:

sudo apt install acl  # Для Debian/Ubuntu

Администрирование с помощью ACL правами доступа в Linux - 1

sudo yum install acl  # Для RHEL/CentOS
sudo dnf install acl  # Для Fedora

 

 


Этап 2. Основные команды ACL


Инсталляция разрешений для документов и директорий (setfacl)


Примените setfacl для установки прав определенному юзеру:

setfacl -m u:username:rwx file.txt

Администрирование с помощью ACL правами доступа в Linux - 2

 

Где:

  • -m — изменение списка ACL.
  • u:username:rwx — назначение разрешений rwx юзеру username.


Установка прав определенной группе:

setfacl -m g:developers:rx file.txt


Для нескольких пользователей:

setfacl -m u:user1:r,u:user2:rw file.txt

 


Просмотр текущих прав доступа (getfacl)


Ознакомиться с инсталлированными ACL:

getfacl file.txt

Вывод:

# file: file.txt
# owner: root
# group: root
user::rw-
user:username:rwx
group::r--se
mask::rwx
other::r–

Администрирование с помощью ACL правами доступа в Linux -  3

 

 

 

Этап 3. Передача прав


Новые документы и директории, и конфигурация разрешений для них


Для передачи новым документам имеющихся ACL, примените параметр d::
 

setfacl -m d:u:username:rwx directory/

 

Эксплуатация ACL-маски


Маска (mask) запрещает получение максимальных прав юзерами и группами. Чтобы инсталлировать маску, необходимо выполнить команду:

setfacl -m m::rx file.txt

 

 

 

Этап 4. Практические примеры


Запрет доступа некоторым юзерам


Например, запретить доступ пользователю guest:

setfacl -m u:guest:--- file.txt

Администрирование с помощью ACL правами доступа в Linux - 4

 

 

Администрирование доступа групп


Для предоставления группе admins неограниченных разрешений следует выполнить:

setfacl -m g:admins:rwx /data

 

 


Заключение


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


Однако, являясь механизм защиты, ACL также требуют правильной настройки и регулярного контроля. Несколько ключевых рекомендаций для эффективного использования ACL:

 

  • Избегайте чрезмерной сложности – если можно обойтись стандартными правами (chmod), используйте их. Избыточное использование ACL способен затруднить администрирование.
  • Периодически проверяйте конфигурацию – используйте getfacl чтобы анализировать имеющиеся разрешения допуска. Это необходимо делать с целью проверки правильности назначенных пользовательских привилегий.
  • Настраивайте наследование прав – использование этого пункта поможет автоматически применять ACL для всех новоформирующихся документов в каталоге.
  • Избавляйтесь от устаревших ACL – если доступ больше не нужен, очищайте списки ACL (setfacl-b), чтобы избежать неразберихи.
  • Записывайте редактирование прав – в корпоративной среде рекомендуется вести логирование изменений, для отслеживания, кто и когда вносил изменения.

 

Грамотное использование ACL помогает сделать систему более безопасной, контролируемой и удобной в управлении. При правильной настройке администраторы могут эффективно управлять доступом к файлам без необходимости постоянно изменять владельцев или группы файлов.