Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Фундаментальные основы Linux. Часть VIII. Механизмы безопасной работы с файлами

Оригинал: Linux Fundamentals
Автор: Paul Cobbaut
Дата публикации: 16 октября 2014 г.
Перевод: А.Панин
Дата перевода: 24 декабря 2014 г.

Глава 32. Списки контроля доступа

Стандартных прав доступа Unix может быть недостаточно в случае развертывании систем в некоторых организациях. В данной главе описываются списки контроля доступа (access control lists или acls), предназначенные для дополнительной защиты файлов и директорий от несанкционированного доступа.

Параметр acl в файле /etc/fstab

Файловые системы, поддерживающие механизм списков контроля доступа, должны монтироваться с использованием параметра acl в файле /etc/fstab. Как вы можете увидеть в примере ниже, поддержка механизма списков контроля доступа явно активирована для корневой файловой системы и явно деактивирована для файловой системы, монтируемой в директорию /home/data.
root@laika:~# tail -4 /etc/fstab
/dev/sda1        /              ext3     acl,relatime    0  1
/dev/sdb2        /home/data     auto     noacl,defaults  0  0
pasha:/home/r    /home/pasha    nfs      defaults        0  0
wolf:/srv/data   /home/wolf     nfs      defaults        0  0

Утилита getfacl

Чтение списков контроля доступа может осуществляться с помощью утилиты /usr/bin/getfacl. В примере ниже показана методика чтения списка контроля доступа к файлу с именем file33 с помощью утилиты getfacl.
paul@laika:~/test$ getfacl file33
# file: file33
# owner: paul
# group: paul
user::rw-
group::r--
mask::rwx
other::r--

Утилита setfacl

Запись или модификация списков контроля доступа может осуществляться с помощью утилиты /usr/bin/setfacl. В примерах ниже показана методика модификации списка контроля доступа к файлу с именем file33 с помощью утилиты setfacl.

Сначала мы добавляем пользователя sandra (о чем говорит символ u) в список контроля доступа с правами, заданными с помощью восьмеричного значения 7.
paul@laika:~/test$ setfacl -m u:sandra:7 file33
После этого мы добавляем группу пользователей (о чем говорит символ g) в список контроля доступа к тому же файлу с правами, заданными с помощью восьмеричного значения 6.
paul@laika:~/test$ setfacl -m g:tennis:6 file33
Результат данных манипуляций будет виден при использовании утилиты getfacl.
paul@laika:~/test$ getfacl file33 
# file: file33
# owner: paul
# group: paul
user::rw-
user:sandra:rwx
group::r--
group:tennis:rw-
mask::rwx
other::r--

Удаление элемента списка контроля доступа

Параметр -x утилиты setfacl позволяет удалить элемент списка контроля доступа к заданному файлу.
paul@laika:~/test$ setfacl -m u:sandra:7 file33 
paul@laika:~/test$ getfacl file33 | grep sandra
user:sandra:rwx
paul@laika:~/test$ setfacl -x sandra file33
paul@laika:~/test$ getfacl file33 | grep sandra

Обратите внимание на то, что в случае указания элемента списка контроля доступа к файлу без использования символа u (указывающего на соответствие учетной записи пользователя) или g (указывающего на соответствие группе пользователей), по умолчанию будет рассматриваться элемент списка контроля доступа к файлу, соответствующий учетной записи пользователя.

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

Параметр -b утилиты setfacl позволяет удалить весь список контроля доступа к заданному файлу.
paul@laika:~/test$ setfacl -b file33 
paul@laika:~/test$ getfacl file33 
# file: file33
# owner: paul
# group: paul
user::rw-
group::r--
other::r--

Маска прав списка контроля доступа

Маска прав списка контроля доступа описывает максимальные эффективные права доступа для любого из элементов этого списка. Данная маска рассчитывается каждый раз, когда вы используете утилиту setfacl или chmod.

Вы можете предотвратить расчет маски прав списка контроля доступа, воспользовавшись параметром --no-mask.
paul@laika:~/test$ setfacl --no-mask -m u:sandra:7 file33
paul@laika:~/test$ getfacl file33
# file: file33
# owner: paul
# group: paul
user::rw-
user:sandra:rwx                 #effective:rw-
group::r--
mask::rw-
other::r--

Приложение eiciel

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

Приложение eiciel

Вам придется установить пакеты eiciel и nautilus-actions для того, чтобы в диалоге изменения свойств файлов и директорий файлового менеджера nautilus появилась вкладка для управления списками контроля доступа.
paul@laika:~$ sudo aptitude install eiciel nautilus-actions


Предыдущий раздел: Оглавление Следующий раздел:
Глава 31. Расширенные права доступа к файлам   Глава 33. Ссылки на файлы