Listy kontroli dostępu (ACL)
Listy kontroli dostępu (ACL) pozwalają nam dostroić kontrolę dostępu. Innymi słowy, załóżmy, że użytkownik Sara potrzebuje dostępu do jednego folderu należącego do Kalyani. Technicznie moglibyśmy przypisać Sarę do grupy Kalyani, ale to oznaczałoby, że Sara miałaby dostęp do więcej niż potrzebuje, i przypuśćmy, że Kalyani ma poufne pliki, których nie chce, aby Sara czytała, pisała lub wykonywała. Tutaj pojawiają się listy kontroli dostępu lub ACL. Możemy teoretycznie zadzierać z uprawnieniami, ale ACL pozwalają nam zapewnić różnym dostępie różnym użytkownikom, a także zapewnić dostęp bez konieczności bałaganu z faktycznymi uprawnieniami bazowymi pliku lub folderu.
Przeglądanie aktualnych uprawnień
Używamy polecenia getFacl (lista kontroli dostępu do plików), aby wyświetlić bieżące uprawnienia ACL.
GetFaclfolder plików
Załóżmy, że tworzę folder o nazwie Secret z dwoma podlokatorami i 5 plikami. Załóżmy dalsze, że chcę zobaczyć uprawnienia ACL na tajnym folderze.
GetFacl Secret
Oznacza to, że właściciel plików i folderu, Kalyani, należący do grupy Kalyani, czytał, pisze i wykonuje uprawnienia. Wszyscy inni nie mają jednak żadnego pozwolenia.
Przypisywanie uprawnień użytkownika
Doprojektowanie uprawnień z ACL jest przeprowadzane za pomocą polecenia setfacl. W szczególności przełącznik -m służy do modyfikacji uprawnień.
setfacl -m u: nazwa użytkownika: nazwa pliku uprawnień
U oznacza, że zmiana jest dla użytkownika, a nie grupy. Po okrężnicy napisano można napisać nazwę użytkownika, dla której przyznano zgodę, a także przyznane pozwolenie. Uprawnienia są takie same jak te dostępne dla CHMOD: odczyt, pisz i wykonuj. Wreszcie piszemy nazwę pliku, do której zastosowanie jest stosowane.
Załóżmy na przykład, że chciałbym przyznać jej pełny dostęp do tego tajnego folderu użytkownikowi Sary, a następnie napiszę:
setfacl -m u: sara: rwx secret
Teraz, gdybyśmy zalogowali się jako Sara, czytamy, pisali i wykonali dostęp do folderu „Secret”. Teraz, pamiętaj, ustanowiłem zgodę 770 do pierwszego katalogu. To pozwolenie zostało zachowane, ale wyjątek od reguły został dodany za pomocą list kontroli dostępu. Gdybym miał inny folder o nazwie „Kali” za zgodą 770 należącą do Kalyani, użytkownik Sara nie byłby w stanie go dotknąć. W rzeczywistości powiedziałoby „odmówiono pozwolenia”.
Ponadto, należy zwrócić uwagę na to, że po modyfikowaniu pliku jako ACL, obok niego znajduje się znak plus. W takim przypadku, jak widać, jest napisane DRWXRWX-+ dla folderu o nazwie Secret. Znak plus oznacza, że został zmodyfikowany za pomocą ACL.
Po ustawieniu ACL tworzona jest również maska. Maska jest maksymalną zgodą, którą użytkownik lub grupa ACL może potencjalnie mieć w katalogu lub pliku.
Przypisanie grup dopracowanych uprawnień
Podobnie jak przypisanie specjalnej zgody użytkowników, możemy również przypisać specjalne pozwolenie grupom. Oznacza to, że możemy zachować nasze uprawnienia podstawowe i przypisać konkretną grupę dodatkową uprawnienia za pomocą ACL.
setfacl -m g: nazwa_ grupy: nazwa pliku uprawnień
Były:
setfacl -m g: John: r Secret
W takim przypadku dajemy grupie John odczyt zgody na tajny folder. Oznacza to, że wszyscy członkowie grupy John przeczytają zgodę na tajny folder i tylko tajny folder. Wszystko inne będzie pod blokadą i kluczem.
Przypisanie rekurencyjne
Tajny folder został zaprojektowany z 3 plikami bezpośrednio w nim i 2 podwodnymi, każdy z jednym plikiem.
Kiedy przypisaliśmy uprawnienia dla użytkownika Sary i Grupy John, nie zrobiliśmy tego rekurencyjnie, więc sprawdźmy uprawnienia ACL substaterejnych (po przypisaniu uprawnień do Secret Directory).
Jak widać, uprawnienia ACL dotyczyły tylko tajnego katalogu, a nie podwodnych. Oznacza to, że Użytkownik Sara i grupa John nie mają danych uprawnień na podwodnicy! W takim przypadku, jeśli chcemy udzielić uprawnień do całego katalogu (w tym podwodnych), musimy wykonać przypisanie rekurencyjne. Do tego używamy przełącznika -R.
setfacl -r -m u: nazwa użytkownika: nazwa pliku uprawnień
Były:
setfacl -r -m u: sara: rwx secret
Usuwanie dopracowanych uprawnień
Możesz także odwołać podane uprawnienia, a to jest równie łatwe do zrobienia, jak daje im. Używasz przełącznika -x zamiast przełącznika -M, aby odwołać uprawnienia.
Aby usunąć konkretny wpis:
setfacl -x u: nazwa nazwy użytkownika nazwa pliku
setfacl -x g: nazwa nazwy_nazji grupy
W takim przypadku napisałbym:
setfacl -x U: Sara Secret
setfacl -x g: John Secret
Aby usunąć wszystkie wpisy w jednym ujęciu:
setfacl -b nazwa pliku
Na przykład:
setfacl -b Secret
To jednak nie usuwa praw do podwodnych. Aby usunąć prawa z podwodnych, musisz użyć rekurencji.
setfacl -r -b secret
Streszczenie
Wszystko, czego się nauczyliśmy, sprowadza się do tego:
Aby wyświetlić uprawnienia ACL:
GetFacl nazwa pliku
Aby ustawić uprawnienia ACL:
setfaclNazwa pliku
Opcje:
-m, -Modify modyfikuj ACL
-X, -Move Usuń wpis ACL
-B, -ReMove -All usuń wszystkie wpisy ACL
-R Przydział rekurencyjny
Wejście:
U: nazwa użytkownika: uprawnienia dla użytkowników
G: nazwa_ grupy: uprawnienia dla grup
Chociaż CHMOD istnieje, aby przyznać uprawnienia do plików i folderów, nie jest to selektywne. Nie może przyznać różnych przywilejów różnym użytkownikom. Ponadto są chwile, kiedy nie chce się też dodawać przypadkowych osób do grup. Listy ACL lub kontroli dostępu zostały wymyślone tylko na tego rodzaju okazję. Może zapewnić określonym użytkownikom dostęp do określonych plików i/lub folderów. W tym samouczku nauczyliśmy się, jak udzielać użytkownikom i grupom specjalne uprawnienia, rekurencyjnie przypisywać uprawnienia i odwołać wspomniane uprawnienia. Więc idź do przodu i dostosuj uprawnienia do plików i folderów!
Szczęśliwe kodowanie!