Як обробляються дозволи ACL і в якому порядку вони застосовуються до певної дії користувача?


21

CentOS 6.4

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

Наприклад, скажімо, що користувачі bob та joe належать до групи, яка називається продажі. Скажімо також, що у мене є документ про продаж із такими реквізитами:

[root@Maui ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---

Моє запитання: як опрацьовуються дозволи в такому прикладі та які права доступу мають перевагу?

Чи є лише пошук зверху вниз і яке правило, яке відповідає першому, - це те, що застосовується?

Або Linux застосовує доступ на основі того, що є найбільш конкретним правилом для відповідного користувача? Чи, мабуть, найбільш обмежувальне та застосовне правило має перевагу?

Відповіді:


15

Це якась широка тема і трохи занадто багато для висвітлення тут. Я відправлю вас до списків контролю доступу POSIX на посібнику Linux, складеному Андреасом Грюнбахером із лабораторій SuSE. Це досить гарна робота з висвітлення теми та розбиття її, щоб ви зрозуміли, як працюють ACL.

Ваш приклад

Тепер давайте розглянемо ваш приклад і розбимо його.

  • група (продаж)
  • члени групи продажів (bob, joe)

Тепер розбимо права доступу до файлу /home/foo/docs/foo.txt. ACL також інкапсулює ті ж дозволи, з якими більшість людей повинні бути знайомі в Unix, в основному біти користувача, групи та інших. Тож давайте витягнемо їх спочатку.

user:: r--
group::r--
other::---

Зазвичай вони виглядатимуть так ls -l:

$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt

Ви можете бачити, кому належить файл та що це за група з цими рядками ACL:

# owner: jane
# group: executives

Отож, тепер ми потрапляємо в солодку крупу ACL:

user:bob:rw-
user:joe:rwx
group:sales:rwx

Це показує , що користувач bobмає rw, в той час як користувач joeмає rwx. Також є група, яка також rwxсхожа на Джо. Ці дозволи такі, як якщо б у стовпці користувача у нашому ls -lвисновку були 3 власники (jane, bob та joe), а також 2 групи (менеджери та продажі). Немає відмінностей, крім них, є ACL.

Нарешті maskрядок:

mask::rwx

У цьому випадку ми нічого не маскуємо, це широко відкрито. Тож якщо користувачі bob та joe мають такі рядки:

user:bob:rw-
user:joe:rwx

Тоді це їхні ефективні дозволи. Якщо маска була такою:

mask::r-x

Тоді їх ефективні дозволи будуть такими:

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

Це потужний механізм зменшення дозволів, які надаються оптом.

ПРИМІТКА: Ефективна маска прав не впливає на власника файлу та інші дозволи; всі інші записи є! Так що стосується маски, то права доступу ACL є громадянами другого класу порівняно з традиційними дозволами Unix.

Список літератури

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.