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.
źródło
Odpowiedzi:
Nie ma sensu, jeśli uprawnienia do plików unix nie zgadzają się z wpisem acl i vice versa. W związku z tym strona podręcznika (
acl(5)
) podaje, o co prosisz:Dodatek w odpowiedzi na dyskusję:
Dobre wyjaśnienie jest tutaj . Zasadniczo maska jest
źródło
chmod
polecenia do zmiany standardowych uprawnień i odwrotnie, gdy wykonasz powiedzmygetfacl -m u:someuser:rwx
, standardowe uprawnienia właściciela pliku zostaną zmienione, a zmiana zostanie odzwierciedlona w danychls -l
wyjściowych. To wszystko prawda, ale nie rozumiem, w jaki sposób odpowiada na moje pytanie-rw-r--r-- 1 user user
uprawnieniami początkowymi , nazwa użytkownika ACL zostanie zaakceptowana, a maska ACL (wraz z uprawnieniami grupy plików) również zostanie zmieniona na rwx. --- [patrz następny komentarz jako kontynuacja]-rw-rwxr-- 1 user user
uprawnieniami do pliku, czy nie? Jak określić sprzeczność? Porównując uprawnienia ACL testusera ze standardowymi uprawnieniami grupy plików? Jaka logika skłoniła cię do porównania uprawnień grupowych z uprawnieniami użytkowników? Czy to nie są różne byty? Czy to nie sprzeczne z intuicją? To prawdopodobnie dla ciebie oczywiste, ale wciąż staram się to zrozumieć.W końcu zrozumiałem, co dokładnie się dzieje, kiedy zobaczyłem ten link Obsługa list ACL
W szczególności maski te zastępują NAZWĘ UŻYTKOWNIKA i wszystkie uprawnienia GRUPY i działają w ich miejsce. Oznacza to, że:
Mam nadzieję, że to pomaga.
źródło
Logika jest całkowicie zepsuta, dlatego listy ACL POSIX są czystymi i bezużytecznymi bzdurami.
Jeśli dążyli do zachowania zgodności z aplikacjami, które nie mają pojęcia list ACL, z wyjątkiem
standardowegomodelu „ugo” pierwotnego systemu UNIX, tak naprawdę na początku zawiodły, ponieważ teraz każda aplikacja, która usuwa uprawnienia grupy, skutecznie wycofuje dostęp dodany przez listy ACL.źródło