Najpierw tworzę plik i sprawdzam, czy jest to standardowe uprawnienia i wpisy ACL:
$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
Następnie ustawiam maskę ACL w pliku i ponownie sprawdzam, czy są to standardowe uprawnienia i wpisy ACL:
$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
Zauważ, że wraz z maską ACL zmieniono także standardowe uprawnienia grupy do pliku.
- Jakie połączenie istnieje między maską ACL a standardowym uprawnieniem grupy?
- Jaki jest powód sprzęgania maski ACL i uprawnień grupy plików? Jaka jest za tym logika?
Omawiane dystrybucje to Debian Linux 7.6 i CentOS 7
EDYTOWAĆ
W tym momencie chciałem tylko podzielić się niektórymi moimi odkryciami, które wymyśliłem, badając relacje między standardowymi uprawnieniami grupy plików a maską ACL. Oto obserwacje empiryczne, które znalazłem:
Maskę ACL można zmienić:
- przez bezpośrednie ustawienie go za pomocą
setfacl -m m:<perms>
polecenia; - zmieniając uprawnienia grupy plików za pomocą
chmod
polecenia (jeśli maska ACL jest już obecna; może nie być obecna, ponieważ jest opcjonalna, jeśli w pliku nie ma nazwanych uprawnień ACL użytkownika lub grupy); - przez dodanie wpisu ACL nazwanego użytkownika lub grupy (maska zostanie automatycznie ponownie obliczona).
- przez bezpośrednie ustawienie go za pomocą
Maska wymusi maksymalne prawa dostępu (jeśli istnieją wpisy ACL z uprawnieniami przekraczającymi uprawnienia maski ACL) tylko wtedy, gdy maska jest ustawiona bezpośrednio przez setfacl lub przez modyfikację uprawnień grupy plików za pomocą chmod (nie obliczane automatycznie). Wszelkie zmiany we wpisach ACL spowodują automatyczne ponowne obliczenie maski ACL i skuteczne wyłączenie „trybu wymuszania”.
Istnieje kilka skutków ubocznych, które pośrednio wpływają na standardowe uprawnienia grupy plików podczas korzystania z list ACL:
- Nazwana pozycja ACL użytkownika lub grupy zastosowana do pliku może zmienić maskę ACL (zwiększyć jej uprawnienia), a tym samym efektywne uprawnienia grupy plików. Na przykład, jeśli jako właściciel pliku masz ustawione uprawnienia „rw-r - r-- jim uczniowie”, a także udzielasz uprawnienia rw użytkownikowi „jack”, w sposób pośredni przyznasz również uprawnienia rw każdemu z grupy „studentów”.
- Bardziej rygorystyczne (mniej uprawnień) maska ACL może trwale usunąć odpowiednie standardowe uprawnienia grupy plików. Np. Jeśli masz plik ze standardowymi uprawnieniami grupy plików rw i zastosujesz do pliku maskę ACL tylko do odczytu, uprawnienia grupy zmniejszą się do tylko do odczytu. Następnie, jeśli usuniesz wszystkie rozszerzone wpisy ACL (z
setfacl -b
poleceniem), uprawnienia grupy pozostaną tylko do odczytu. Dotyczy to tylko bardziej rygorystycznej maski ACL, bardziej miękka maska ACL (więcej uprawnień) nie zmienia trwale uprawnień oryginalnej grupy plików po jej usunięciu.