FreeBSD ACL - ACL część 3
Wpisany przez crash poniedziałek, 17 października 2005 19:05
Zrozumienie masek ACL
Spójrz ponownie na Rysunek 2. Tutaj możesz wyświetlić użytkowników i grupy w systemie. Podwójne klikniecie na użytkownika ' rob ', doda dwa nowe elementy do okienka ACL. ( Rysunek 6. )
Rysunek 6. Dodatkowe elementy dla użytkownika ' rob '
Notka: Następne wersje eiciel będą zawierały check box'a który wyłączy konta systemowe.
Zauważ że początkowo rob i mask maja pełne prawa rwx, jest to więcej niż ma dru jako właściciel pliku. Co się stało ? Poprzez podwójne kliknięcie na ' rob ', dodałam ACL, co mogę sprawdzić w liście plików w katalogu.
% ls -l drwx------ 2 dru dru 512 Jul 26 10:35 Desktop -rw-r--r-- 1 dru dru 0 Jul 27 9:22 file1 -rw-r--r-- 1 dru dru 0 Jul 27 9:22 myfile -rw-r--r--+ 1 dru dru 0 Jul 27 10:03 test |
Widzisz ' + ', na końcu praw dostępu przy pliku test ? Wskazuje to na to że ACL zostały dodane do pliku. Mogę wyświetlić je za pomoca getfacl:
% getfacl test #file:test #owner:1001 #group:1001 user::rw- user:rob:rwx group::r-- mask::rwx other::r-- |
Wynik jest reprezentacją tekstową Rysunku 6.
Dlaczego rob uzyskał rwx, i co to jest za wpis Mask ? Z definicji, maska ACL określa maksymalne dostępne prawa dostępu. Dzieje się tak, aby upewnić sie że wiesz co robisz w pełni.
Odznacz prawa wykonywania ( execute ) pliku z wpisu dla użytkownika ' rob '. Zauważ że mogę dać jaką kolwiek kombinację, czytania, zapisu, wykonywania. Z perspektywy osoby używającej tego narzedzia, może ona bardzo prosto zmienić prawa dostępu do pliku i zmienić te których nie chce aby ten uzytkownik używał.
Co sie stanie jeżeli zmienisz maskę ? Przywróć ponownie prawa dostępu ( rwx ) dla użytkownika 'rob ', i jednocześnie usuń prawo wykonywania pliku ( execute ). Jak tylko to zrobisz, wykonanie jakiego kolwiek pliku przez użytkownika rob lub jakiego kolwiek, pokaże czerwony znak oszczegawczy. Co bedzie znaczylo " nieefektywne prawa ".
Troche bardziej sie rozjaśnia, jeżeli wrócisz do definicji maski ACL. Teraz maksymalne dostępne prawa są <i>rw</i>, co znaczy że komukolwiek kto ma dostępne prawa wykonywania pliku, tak naprawde nie ma. Narzędzie Nautilus, ukazuje to przyjemnie, getfacl również wskazuje efektywne prawa dostępu.
% getfacl test #file:test #owner:1001 #group:1001 user::rw- user:rob:rwx # effective: rw- group::r-- mask::rw- other::r-- |