Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Для работы с ACL используются утилиты getfacl и setfacl

Читайте также:
  1. Backdoor — троянские утилиты удаленного администрирования
  2. D. Требования к структуре и оформлению курсовой работы.
  3. E. Порядок защиты курсовой работы.
  4. I ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ
  5. I Принцип работы клавиатур
  6. I. ОБЩИЕ ПОЛОЖЕНИЯ ПО ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ
  7. I. Общие рекомендациик написанию курсовой работы
  8. I. Основные задачи и направления работы библиотеки
  9. I. ОСНОВНЫЕ ПОЛОЖЕНИЯ. РУКОВОДСТВО ПОДГОТОВКОЙ И НАПИСАНИЕМ КУРСОВОЙ РАБОТЫ
  10. I. Теоретическая часть лабораторной работы

При помощи программы getfacl можно посмотреть список текущих ACL.

getfacl [параметры] файлы

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

$ getfacl test

# file: test

# owner: artur

# group: users

user::rw-

group::r--

other::r--

Для установки и удаления ACL используется программа setfacl.

setfacl [параметры] [{-m|-x} ACL] файлы

setfacl [параметры] [{-M|-X} файл] файлы

Для добавления и изменения ACL используется параметр –m. Например, чтобы добавить права доступа для пользователя user1, необходимо выполнить следующую команду:

$ setfacl -m u:user1:r test

$

После –m записывается ACL. Формат записи достаточно простой. Если первый символ u, то добавляются права для указанного после двоеточия пользователя. Если первый символ g — определяются права для группы. Если m — определяется маска. Сами права записываются в символьном виде.

Теперь можно посмотреть, какие ACL установлены у файла test:

$ getfacl test

# file: test

# owner: artur

# group: users

user::rw-

user:user1:r--

group::r--

mask::r--

other::r--

$

Для того, чтобы изменить права пользователя user1, необходимо выполнить следующую команду:

$ setfacl -m u:user1:rx test

$ getfacl test

# file: test

# owner: artur

# group: users

user::rw-

user:user1:r-x

group::r--

mask::r-x

other::r--

$

Как видно из примера, у пользователя user1 были изменены права доступа.

Теперь добавим в ACL группу bin:

$ setfacl -m g:bin:rwx test

$ getfacl test

# file: test

# owner: artur

# group: users

user::rw-

user:user1:r-x

group::r--

group:bin:rwx

mask::rwx

other::r--

$

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

$ setfacl -m m::rw test

$ getfacl test

# file: test

# owner: artur

# group: users

user::rw-

user:user1:r-x #effective:r--

group::r--

group:bin:rwx #effective:rw-

mask::rw-

other::r--

$

Обратите внимание на то, что после введения макси напротив пользователей и групп появилось поле, указывающее реальные права доступа. Если у группы bin при записи ее в ACL права были rwx, то теперь они стали rw-. С пользователем user1 случилось то же самое. До определения маски права были r-x, после — стали r--. При помощи маски rw- мы сказали, что право x учитываться не будет.

Внимание! На права владельца, группы и «всех остальных» маска не влияет. Маска влияет только на дополнительных пользователей и дополнительные группы.

$ chmod u+rwx test

$ getfacl test

# file: test

# owner: artur

# group: users

user::rwx

user:user1:r-x #effective:r--

group::r--

group:bin:rwx #effective:rw-

mask::rw-

other::r--

$

Внимание! Для того, чтобы маска заработала, ее необходимо определить явно при помощи setfacl. Иначе она будет «плавающей» и не будет выполнять свои функции.

 

Внимание! Маску всегда определяют самой последней, после указания прав доступа всех пользователей и групп.

Дело в том, что при внесении изменений в список acl, маска по умолчанию ставится такой, чтобы работали все установленные acl-ы. Т.е. не влияет на установленные права, становится "плавающей". Если вы не хотите, что бы маска изменялсь, используйте параметр
-n (--no-mask), в этом случае маска изменяться не будет.

Если у файла установлены ACL, определение прав доступа происходит в том порядке, в котором они выводятся программой getfacl.

Программа setfacl предоставляет возможность скопировать ACL одного файла на другой файл. Для этих целей служит параметр --set-file. Например, необходимо скопировать списки доступа файла test в файл newtest. Тогда командная строка будет выглядеть следующим образом:

$ getfacl test | setfacl --set-file=- newtest

$ getfacl newtest

# file: newtest

# owner: artur

# group: users

user::rwx

user:user1:r-x #effective:r--

group::r--

group:bin:rwx #effective:rw-

mask::rw-

other::r--

$

Удаление элементов из списка ACL происходит при помощи параметра –x.

$ setfacl -x u:user1 test

$ getfacl test

# file: test

# owner: artur

# group: users

user::rwx

group::r--

group:bin:rwx

mask::rwx

other::r--

$

Рассмотрим возможные форматы записи ACL.

 

[d[efault]:][u[ser]:][пользователь][:[+|^]права]

[d[efault]:] g[roup]:[группа][:[+|^]права]

[d[efault]:] m[ask][:[+|^]права]

[d[efault]:] o[ther][:[+|^]права]

Почти все возможные варианты записи мы уже рассматривали. Осталось разобраться с default и специальными символами: + и ^.

default — устанавливает ACL по умолчанию. Имеет смысл только для директории. Если создавать файлы в директории, у которой установлен ACL по умолчанию, то значения ACL копируются во вновь создаваемые файлы.

Если при написании ACL права доступа начинаются с символа +, то эти права добавляются к уже существующим. Если в начале описания прав стоит символ ^, то их значение отнимаются от существующих прав доступа.

У программы setfacl есть еще две интересные опции: –M и –X. Первая изменяет или добавляет ACL, вторая удаляет ACL. В отличии от –m и –x, список ACL передается не в командной строке, а в отдельном файле. Формат файла соответствует выводу программы getfacl.

$ getfacl newtest > aclfile

$ cat aclfile

# file: newtest

# owner: artur

# group: users

user::rwx

user:user1:r-x #effective:r--

group::r--

group:bin:rwx #effective:rw-

mask::rw-

other::r--

$

Теперь установим ACL, записанные в файле aclfile, на файл test.

$ setfacl -M aclfile test

$ getfacl test

# file: test

# owner: artur

# group: users

user::rwx

user:user1:r-x #effective:r--

group::r--

group:bin:rwx #effective:rw-

mask::rw-

other::r--

$




Дата добавления: 2014-12-19; просмотров: 44 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.013 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав