<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF125%3ADrBrown2</id>
		<title>LXF125:DrBrown2 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF125%3ADrBrown2"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF125:DrBrown2&amp;action=history"/>
		<updated>2026-05-13T03:53:10Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF125:DrBrown2&amp;diff=11139&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF125:DrBrown2&amp;diff=11139&amp;oldid=prev"/>
				<updated>2010-11-15T09:54:56Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Списки управления доступом==&lt;br /&gt;
&lt;br /&gt;
: '''ACL''' Только доктор решил, что одолел ''chmod'', как нашелся ACL.&lt;br /&gt;
&lt;br /&gt;
B девяностых годах прошлого века комитет POSIX по стандартизации (IEEE 1003.1e) работал над набором расширений безопасности для Unix. Когда финансирование прекратилось, от стандарта отказались, но во многом он уже был завершен, и кое-что из него перекочевало в Linux, например, списки управления доступом (ACL).&lt;br /&gt;
&lt;br /&gt;
Стандартная модель доступа в Linux – тропа хоженая: у нас есть права на чтение, запись и выполнение, и установить их можно для владельца файла, членов группы владельца и всех остальных. И это все. Списки управления доступом расширяют эту модель, так что права на чтение, запись и выполнение можно задать&lt;br /&gt;
для любого количества пользователей и групп.&lt;br /&gt;
&lt;br /&gt;
Файловые системы ''ext2'' и ''ext3'' поддерживают ACL, но только в том случае, когда они смонтированы с опцией '''acl'''. Например:&lt;br /&gt;
&lt;br /&gt;
 sudo mount -o acl /dev/sda2 /home&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_47_1.jpg|300px]]  Анатомия команды ''setfacl''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Конечно, более солидный под ход – добавить параметры монтирования в '''/etc/fstab''', например, так:&lt;br /&gt;
&lt;br /&gt;
 /dev/sda2 /home ext3 acl        0           0&lt;br /&gt;
&lt;br /&gt;
Если ACL активированы, управлять ими можно с помощью утилит командной строки ''setfacl'' и ''getfacl''. На рисунке показаны синтаксис команды ''setfacl'' и способ представления ACL.&lt;br /&gt;
&lt;br /&gt;
Давайте выполним несколько команд, чтобы посмотреть, как все это работает. Сначала создадим файл '''foo''' и установим права доступа к нему в 600:&lt;br /&gt;
&lt;br /&gt;
 touch foo&lt;br /&gt;
 chmod 600 foo&lt;br /&gt;
 ls -l foo&lt;br /&gt;
 -rw------- 1chris chris02009-08-1814:45foo&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что в ACL файла автоматически добавятся три раздела, соответствующие обычным правам доступа (вывод команды так же содержит строки '''file, owner''' и '''group''', которые мы на данном уроке не меняем).&lt;br /&gt;
&lt;br /&gt;
 getfacl foo&lt;br /&gt;
 user::rw-&lt;br /&gt;
 group::---&lt;br /&gt;
 other::---&lt;br /&gt;
&lt;br /&gt;
На самом деле эти разделы автоматически синхронизируются с обычными правами доступа – изменения, произведенные командой ''chmod'', появятся в выводе ''getfacl'', а изменения ''setfacl'' появятся в выводе ''ls -l''.&lt;br /&gt;
&lt;br /&gt;
Создадим еще два ACL, добавив доступ на чтение-запись для пользователя '''Tom''' и доступ на чтение для группы '''Games''':&lt;br /&gt;
&lt;br /&gt;
 setfacl -m u:tom:rw foo&lt;br /&gt;
 setfacl -m g:games:r foo&lt;br /&gt;
 getfacl foo&lt;br /&gt;
 user::rw-&lt;br /&gt;
 user:tom:rw-&lt;br /&gt;
 group::---&lt;br /&gt;
 group:games:r--&lt;br /&gt;
 mask::rw-&lt;br /&gt;
 other::---&lt;br /&gt;
&lt;br /&gt;
Дело немного усложнится, если задать маску ACL. Она используется для ограничения доступа явно поименованных в ACL пользователей и групп и не затрагивает права владельца файла. Здесь мы устанавливаем маску только для чтения и снова просматриваем ACL. Обратите внимание, что фактические права Тома были ограничены маской; теперь это только чтение, а не чтение и запись:&lt;br /&gt;
&lt;br /&gt;
 setfacl -m m::r foo&lt;br /&gt;
 getfacl foo&lt;br /&gt;
 user::rw-&lt;br /&gt;
 user:tom:rw-           #effective:r--&lt;br /&gt;
 group::---&lt;br /&gt;
 group:games:r--&lt;br /&gt;
 mask::r--&lt;br /&gt;
 other::---&lt;br /&gt;
&lt;br /&gt;
Наконец, можно удалить ACL таким образом:&lt;br /&gt;
&lt;br /&gt;
 setfacl -x g:games: foo&lt;br /&gt;
 getfacl foo&lt;br /&gt;
 user::rw-&lt;br /&gt;
 user:tom:rw-&lt;br /&gt;
 group::---&lt;br /&gt;
 mask::rw-&lt;br /&gt;
 other::---&lt;br /&gt;
&lt;br /&gt;
Команда ''ls'' не пытается отобразить полный список управления доступом для файла, но позволяет понять, что он задан (об этом говорит знак '''+''' после девяти бит прав доступа):&lt;br /&gt;
&lt;br /&gt;
 ls -l foo&lt;br /&gt;
 -rw-r-----+ 1 chris chris02009-08-1814:45foo&lt;br /&gt;
&lt;br /&gt;
Задать список управления доступом для файла можно и по-другому. Во-первых, можно заставить ''setfacl'' прочитать ACL из файла или из стандартного ввода. Следующий пример показывает, как скопировать ACL с '''foo''' в '''bar''':&lt;br /&gt;
&lt;br /&gt;
 getfacl foo1 | setfacl --set-file=- bar&lt;br /&gt;
&lt;br /&gt;
Во-вторых, можно заставить вновь созданные файлы унаследовать ACL от содержащего их каталога. Чтобы сделать это, нужно назначить каталогу список управления доступом по умолчанию. Вот пример. Сначала создадим каталог '''acltest''' и назначим ему ACL по умолчанию (опция '''-d''' команды ''setfacl''):&lt;br /&gt;
&lt;br /&gt;
 mkdir acltest&lt;br /&gt;
 setfacl -d -m u:tom:rw,g:games:r acltest&lt;br /&gt;
&lt;br /&gt;
Если теперь создать новый файл в этом каталоге и просмотреть его ACL, мы увидим списки для Tom и Games, которые пришли от списка по умолчанию каталога '''acltest'''.&lt;br /&gt;
&lt;br /&gt;
Исходя из моего опыта, ACL используются не слишком часто. Большинство пользователей не представляют себе всех возможных сценариев, которых можно достичь стандартными правами доступа, осторожно используя группы и, возможно, установкой битов '''setuid''' и '''setgid'''.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>