Настройка и использование ACL в Linux

По умолчанию работа с правами доступа в Linux довольно примитивна. Можно использовать только три категории для управления правами доступа: отдельно права для владельца файла, группы владельца и всех остальных пользователей. Этого вполне достаточно при работе с обычным домашним компьютером, где нет большого количества учетных записей пользователей и они не обмениваются между собой файлами. Но если нужно настроить систему большой организации с огромным количеством пользователей и потребностью обмена файлами по Samba и NFS понадобиться более сложная конфигурация.

Настраиваем доступ с помощью - Access Control List

Linux и другие Unix подобные системы поддерживают работу с ACL списками, которые позволяют назначать права доступа вне зависимости от прав указанных для владельца и группы. Здесь можно настроить разрешения для других пользователей не в форме одного пункта другие пользователи, а для каждого пользователя или группы отдельно. Например вы можете дать пользователям A B и С право на запись в определенный файл, не включая их непосредственно в свою группу.

Списки ACL поддерживаются различными файловыми системами Linux, в том числе ext2, ext3, ext4, xfs, Btrfs и т д.

Включение ACL

Сначала нужно установить инструменты для работы с ACL. В большинстве дистрибутивов пакет так и называется - acl. Например в Ubuntu для установки выполните команду:

sudo apt-get install acl

В этой статье мы рассмотрим как работать с ACL в Ubuntu но в других дистрибутивах все будет выглядеть аналогично.
После установки инструментов, необходимо включить поддержку ACL для дисковых разделов. Сначала проверим не включен ли еще ACL на нашем диске:

mount
rootfs on / type rootfs (rw)
/dev/sda2 on / type ext4 (rw,noatime,acl)
devtmpfs on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=482245,mode=755)

Если поддержка ACL включена, среди опций монтирования будет указан флаг acl. Если же нет, нужно открыть файл /etc/fstab и добавить опцию acl к списку опций нужного диска.

Затем нужно перемонтировать этот раздел или просто полностью перезагрузить компьютер. Если ACL был включен для корневого раздела команда перемонтирования будет выглядеть вот так:

sudo mount / -o remount

Теперь ACL включен в вашей системе. Рассмотрим несколько примеров работы с ним.

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

Списки контроля доступа в Linux управляются двумя утилитами setfacl, и getfacl. Перавая используется непосредственно для настройки прав, а вторая показывает уже настроенные права. А теперь немного практики.

Создадим каталог foo:

mkdir /foo
ls / -lh
drwxr-xr-x 2 root root 4,0K окт 13 17:05 foo

Теперь дадим доступ к этой папке двум пользователям: test и test1. Первому полные права, а другому только на чтение. Установим права для test:

sudo setfacl -m u:test:rwx /foo

Теперь пользователь test сможет создавать подкаталоги и файлы в этом каталоге.

Затем установим права для второго пользователя:

sudo setfacl -m u:test2:rx /foo

Теперь давайте рассмотрим опции утилиты setfacl:

  • -m означает модификацию ACL списка
  • -u - пользователь
  • test - имя пользователя
  • :rwx - права доступа которые нужно установить

Теперь рассмотрим как посмотреть ACL права доступа для файла или папки:

ls -lh /foo

drwxrwxr-x+   2 root root 4,0K окт 13 17:44 foo

Как видите возле стандартных прав доступа Linux стоит знак +, это означает что для этого файла настроены права ACL. Для их просмотра нужно выполнить команду:

sudo getfacl /foo
getfacl: Removing leading '/' from absolute path names
# file: foo
# owner: root
# group: root
user::rwx
user:test:rwx
user:test1:r-x
group::r-x
mask::rwx
other::r-x

Удалить ACL для пользователя можно командой:

sudo setfacl -x u:test /foo

А если нужно стереть полностью ACL список для директории выполните:

sudo setfacl -b /foo

Команды копирования и перемещения файлов cp и mv работают не совсем стандартно с ACL правами. Например чтобы скопировать ACL список вместе с файлом нужно указать опцию -p. 

Заключение

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

Понравилась статья?
По умолчанию работа с правами доступа в Linux довольно примитивна. Можно использовать только три категории для управления правами доступа: отдельно права для владельца файла, группы владельца и всех остальных пользователей. Этого вполне достаточно пр...
Система
4627
Рейтинг: 5/5
При перепечатке материалов указание ссылки на linuxsoid.com обязательно.

Подпишитесь на рассылку

Смотрите также:
    Самый легкий способ установки Mesa 17.0.2 в Ubuntu 16.04 LTS Самый легкий способ установки Mesa 17.0.2 в Ubuntu 16.04 LTS

    Mesa – это реализация графического API OpenGL, обеспечивающая высокую производительности при работе с 3D графикой. Технически, это просто спецификация, реализуемая драйвером видеокарты. Нет такого понятия, как библиотека OpenGL SDK. Есть файл libGL.so, поставляемый вместе с драйвером. Чтобы его использовать, вам нужна привязка к выбранному вами языку программирования. Если это язык C, привязка состоит из заголовочных файлов. Однако вы, вероятно, хотите использовать расширения OpenGL, что легко сделать с помощью GLEW.

    Как настроить видимость пароля в окне терминала в Linux Как настроить видимость пароля в окне терминала в Linux

    Когда вы запускаете терминал(командную строку), используя Sudo в Linux, Терминал предлагает вам ввести пароль, но визуально, вы не видите никакой черты которая бы сообщала, что символы введены. В данном материале, я попытаюсь вам помочь в решении данного вопроса, после которого если вы все правильно выполните, то вводимый пароль будет отображаться в виде звездочек (*) в окне терминале, звездочки более юзабельно и визуально понятно, сколько вы ввели символов и это поможет вам избавиться от лишней путаницы.

    Установка и настройка Яндекс диск в Ubuntu 14.04 Установка и настройка Яндекс диск в Ubuntu 14.04

    Думаю многие из вас пользуются сервисом Яндекс Почта и дополнительно пользуетесь возможностью хранить файлы в сервисе Яндекс диск. Очень удобно и нет необходимости как пример дополнительно пользоваться Dropbox, во всяком случае мне этого достаточно.

    Главный вопрос который сейчас у вас в голове, как же всё-таки установить и настроить Яндекс Диск в Ubuntu 14.04/14.10 и более новых дистрибутивах Ubuntu. Процедура очень проста, опускаемся чуть ниже и читаем первый пункт в подготовке к установке.

    Установка и настройка браузера TOR в Ubuntu Linux Установка и настройка браузера TOR в Ubuntu Linux

    Tor - это система и браузер выходит 2 в одном, что позволяет нам устанавливать анонимное сетевое соединение, защищённое от прослушивания. Рассматривается это как анонимная сеть, предоставляющая передачу данных в зашифрованном виде и скрытую от Большого Брата по кличке Google.

    Установка и настройка CMS Drupal Ubuntu Linux Установка и настройка CMS Drupal Ubuntu Linux

    В CMS Drupal 7.15 было исправлено более 20 ошибок, а так же и некоторые уязвимости, и было добавлено несколько новых функций. Более детально читайте в полной версии материала.

    Установка и настройка CMS Joomla 3.0 / 3.0.1 в Ubuntu Linux Установка и настройка CMS Joomla 3.0 / 3.0.1 в Ubuntu Linux

    Joomla 3.0 - это система управления web-контентом, с помощью которой можно создать корпоративный сайт, интернет порталы, online-магазины, сайт сообщества и многое другое. Joomla 3.0 является выпуском со стандартным временем поддержки (6 меcяцев).

Здравствуй Гость, как Вы видите еще никто не оставил свой комментарий, будьте первым, поделитесь мнением о материале выше.

avatar