Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Списки контроля доступа (ACL) в операционной системе Linux

19 апр. 2014

Списки контроля доступа (ACL). Типичное для UNIX управление пользователями и группами, а также основанные на нем права доступа к каталогам и файлам сохраняются в неизменном виде уже не одно десятилетие. Концепция настолько проста, что ее начинаешь понимать после пары часов изучения. Правда, встречаются случаи, когда этой простой системы недостаточно.Именно поэтому в операционной системе Linux была разработана более «мелкоячеистая» система управления правами доступа, основанная на так называемых списках контроля доступа (ACL). ACL позволяют установить для файла или каталога любое количество правил, касающихся того, какие пользователи или группы имеют право читать или изменять файл или группу файлов, находящихся в каталоге, а какие пользователи не имеют такого права — эта возможность в системах UNIX уже не предусмотрена. Таким образом, ACL дополняют стандартные права доступа и могут вводить дополнительные права или отменять существующие.Списки контроля доступа по умолчанию входят в состав ядра Linux, начиная с версии 2.6. Для более ранних версий ядра существуют соответствующие заплатки. В файловых системах jfs и xfs списки контроля доступа активны в любом случае. В файловых системах ext, напротив, необходимо использовать mount-параметр acl, чтобы активизировать списки контроля доступа. В большинстве дистрибутивов эта функция не выполняется автоматически. Samba — это важнейшая из тех программ, в которой очень выгодно использовать списки контроля доступа. БлагодаряACL эта программа способна во многом экстраполировать права доступа, существующие в Windows, на Linux.

Ограничения.

Тот факт, что ACL предоставляют дополнительные возможности, ни в коем случае не отменяет традиционного управления правами! Для опытных администраторов крупных сетей списки контроля доступа могут обеспечить дополнительную безопасность или как минимум упростить управление сетью, но для большинства пользователей Linux обычного метода управления правами будет вполне достаточно. Если неправильно использовать сложную систему списков контроля доступа, то могут возникнуть всевозможные бреши в сфере безопасности сети. Поэтому в настоящее время и не существует дистрибутивов, в которых списки контроля доступа использовались бы по умолчанию.Основная проблема заключается в том, что многие программы и команды Linux неправильно работают с ACL. Вполне может случиться так, что в скопированном файле вдруг не окажется информации об ACL, которая присутствует в оригинале. Большинство файловых менеджеров также не могут правильно отображать и изменять списки контроля доступа (Konqueror — приятное исключение из этого правила).

Расширенные атрибуты (ЕА).

Расширенные атрибуты находятся в тесном родстве со списками контроля доступа (ЕА). Они позволяют сохранять для любых файлов дополнительные сведения в форме пар «атрибут — значение». Так, например, вы можете присвоить текстовому файлу атрибут charset с настройкой utf8, чтобы сохранить таким образом применяемую кодировку. Конечно, с выгодами это связано только тогда, когда существуют программы, способные интерпретировать такую информацию. В зависимости от того, какой файловой системой вы пользуетесь, расширенные атрибуты необходимо активизировать с помощью соответствующего mount-napaMeTpa;HanpHMep, в случае с файловой системой ext2/3 это параметр user xattr. Расширенные атрибуты используются, в частности, поисковой программой Beagle.

Предпосылки.

В следующих примерах я буду исходить из того, что у вас установлен пакет attr с командами attr, getfattr и setfattr и что вы работаете с файловой системой, в которой активизированы списки контроля доступа и расширенныеатрибуты. Если вы работаете с файловой системой ext4, то результат выполнения команды mount должен выглядеть так:
<code>user$ mount

/dev/sdc5 on /test type ext4 (rw,acl,user_xattr)
В иных случаях в следующих примерах вы получите сообщение об ошибке, которое будет гласить примерно следующее: «Операция не может быть выполнена». Чтобы справиться с этим, попробуйте изменить параметр mount в /etc/fstab и заново привязать файловую систему.

Списки контроля доступа Команда getfacl

В системах, где установлены списки контроля доступа, обычно все равно действуют стандартные принципы управления доступом, которые часто называются «минимальный список контроля доступа». Команда getfacl отображает эти права в виде АСЕ:
user$ touch файл1 user$ getfacl файл!
# file: файл1# owner: kofler# group: kofler user::rwgroup:: r--other::r--user$ ls -l файл1-rw-r--r-- 1 kofler kofler… файл2

Команда setfacl

С помощью setfacl можно определить новые права доступа. Следующие команды предоставляют пользователю gabi и всем членам группы docuteam доступ к файлу с правом читать и изменять этот файл, однако закрывают пользователю kathrin какой-либо доступ к файлу:
<code>user$ setfacl -m gabi:rw файл1 user$ setfacl -m g:docuteam:rw файл1 user$ setfacl -m kathrin:- файл1
Список прав команды getfacl немного длиннее. Теперь ls показывает на месте прав доступа для членов группы специальную АСЕ-маску. За буквами, означающими доступ, следует символ +, указывающий на наличие правилАСЕ.
user$ getfacl файл1
# file: файл1# owner: kofler# group: kofler user::rwuser: gabi:rwuser: kathrin:---group::r--group:docuteam:rwmask:: rwother:: r--user$ ls -l файл1-rw-rw-r--+ 1 kofler kofler… файл1Как правило, списки контроля доступа применяются для того, чтобы предоставить определенному пользователю доступ к его файлам, не предоставляя такого доступа всем остальным пользователям. В таком случае вам потребуется попросить администратора, чтобы он создал группу, к которой будете принадлежать вы и те пользователи, вместе с которыми вы хотите обрабатывать файлы. При использованииACL просто нужно выполнить команду setfacl -m пользователь :rw файл.

Маска ACL

Маска ограничивает права, предоставляемые правилами ACL. Если вы, например, устанавливаете для маски АСЕ значение r, то ни одно правило не может предоставить пользователю права изменять или выполнять файлы. Итак, АСЕ-маска имеет приоритет над правилами АСЕ. Но в любом случае она никак не влияет на обычные права доступа, которые предоставляются пользователю или группе пользователей «традиционным» способом.При изменении правила АСЕ командой setfacl маска автоматически рассчитывается заново так, чтобы могли выполняться все прочие правилаАСЕ. Эта маска отображается с помощью команды getfacl и также учитывается командой ls -l.Можно явным образом настроить маску с помощью команды setfacl -m m:rwx file, ограничив, таким образом, права АСЕ. Однако учитывайте, что ваша маска действует лишь до тех пор, пока вы не определите новое правилоАСЕ. В таком случаемаска АСЕ будет автоматически пересчитана (если только вы не предотвратите это с помощью параметра -n).

Стандартные списки контроля доступа

При работе с каталогами можно установить второй набор правил для стандартных списков контроля доступа. Стандартные АСЕ не управляют доступом к каталогу, а служат образцом для новых файлов. Любой файл, создаваемый внутри данного каталога, наследует стандартные списки контроля доступа, указанные для этого каталога. При одновременном применении нескольких списков контроля доступа новый каталог с умело подобранными стандартными АСЕ может использоваться в работе в качестве отправной точки.

Совместимость ACL

Распространение списков контроля доступа сильно осложняется тем, что многие стандартные команды и практически все пользовательские программы просто игнорируют ACL. Если вы просто копируете файл с правиламиАСЕ с помощью команды cp, то в скопированном файле правилаАСЕ не сохранятся. То же самое произойдет, если вы откроете файл в текстовом редакторе OpenOffice или Gimp и сохраните его под другим именем. При использовании команды cp будет полезен параметр -p, но у большинства других команд и программ подобные параметры отсутствуют либо эти программы вообще не приспособлены к работе с АСЕ.Проблемы возникают и при резервном копировании. Команды tar и rsync элиминируютправила АСЕ. Файловая система CD и DVD не рассчитана на работу с АСЕ, так что сохраняемая в них информация теряется. Есть два выхода: во-первых, можно использовать вместо tar версию star, совместимую с АСЕ, во-вторых, перед резервным копированием можно создавать отдельный текстовый файл, в который заносятся АСЕ-правила всех копируемых файлов. После резервного копирования правил АСЕ восстанавливаются на основании этого файла.
<code>user$ getfacl -R --skip-base . > acl-backup (Сохранение ACL-правил) user$ setfacl --restore=acl-backup (Восстановление <em>ACL-правил</em>)

Расширенные атрибуты Команды setfattr и getfattr

На следующих примерах показано, как сохранять атрибуты с помощью команды setfattr и считывать их с помощью getfattr. Количество атрибутов, которое может иметь один файл, в файловых системах ext3 ограниченно.user$ touch файгв.user$ setfattr -n user.language -v ru файл2user$ setfattr --name=user.charset --value=utf8 файг2user$ getfattr -d файл2# file: файл2 user.charset=«utf8» user.language=«ru»Команда getfattr обычно возвращает только те атрибуты, чье название начинается с user. Если вы хотите увидеть другие атрибуты, нужно указывать имя атрибута вместе с меткой -n, а образец атрибута — с меткой -m.user$ getfattr -n security.selinux -d tst# file: tstsecunty.selinux=«useru:ob jectr:user home t:s0*000»

Совместимость с расширенными атрибутами

К сожалению, пока практически не существует программ, которые сохраняли бы расширенные атрибуты при копировании, архивировании и т. д. Даже команда cp -p игнорирует атрибуты. При создании резервных копий лучше всего поступать так же, как и при работе с АСЕ, — создавать при копировании текстовый файл со всеми расширенными атрибутами. На основании этого файла можно потом восстановить расширенные атрибуты.user$ getfattr -R. > ea-backup (Сохранение атрибутов) user$ setfattr --restore=ea-backup (Восстановление атрибутов)
Читайте так же:
Права доступа к файлам и каталогам Linux






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать