Jak ustawić listy kontroli dostępu (ACL) i kwoty dysku dla użytkowników i grup

Jak ustawić listy kontroli dostępu (ACL) i kwoty dysku dla użytkowników i grup

Listy kontroli dostępu (znane również jako ACL) są cechą jądra Linux, które pozwala zdefiniować bardziej szczegółowe prawa dostępu do plików i katalogów niż te określone przez regularne UGO/RWX uprawnienia.

Na przykład standard UGO/RWX Uprawnienia nie pozwalają na ustalenie różnych uprawnień dla różnych poszczególnych użytkowników lub grup. Z ACL jest to stosunkowo łatwe do zrobienia, jak zobaczymy w tym artykule.

Sprawdzanie kompatybilności systemu plików z ACLS

Aby upewnić się, że systemy plików obsługują obecnie ACL, powinieneś sprawdzić, czy zostały zamontowane za pomocą opcji ACL. Aby to zrobić, użyjemy Tune2fs dla systemów plików ext2/3/4, jak wskazano poniżej. Zastępować /dev/sda1 Za pomocą urządzenia lub systemu plików chcesz sprawdzić:

# Tune2fs -l /dev /sda1 | GREP „Domyślne opcje montowania:” 

Notatka: Z XFS, Listy kontroli dostępu są obsługiwane poza pudełkiem.

W następującym ext4 system plików, widzimy, że ACL zostały włączone /dev/xvda2:

# Tune2fs -l /dev /xvda2 | GREP „Domyślne opcje montowania:” 
Sprawdź ACL włączone w systemie plików Linux

Jeśli powyższe polecenie nie wskazuje, że system plików został zamontowany z obsługą ACL, najprawdopodobniej jest to spowodowane Noacl Opcja jest obecna w /etc/fstab.

W takim przypadku usuń go, zdeksunij system plików, a następnie ponownie zamontuj lub po prostu uruchom swój system po zapisaniu zmian w /etc/fstab.

Wprowadzenie ACL w Linux

Aby zilustrować, jak działają ACL, użyjemy grupy nazwanej programiści i dodaj użytkowników Walterwhite I Saulgoodman (Tak, jestem Breaking Bad Fan!) do tego.:

# GroupAdd Developers # UserAdd Walterwhite # UserAdd Saulgoodman # Usermod -a -g programiści Walterwhite # Usermod -a -g Programiści Saulgoodman 

Zanim przejdziemy, sprawdźmy, że obaj użytkownicy zostali dodani do grupy programistów:

# id Walterwhite # id saulgoodman 
Znajdź identyfikator użytkownika w Linux

Utwórzmy teraz katalog zatytułowany test W /MNT, i plik o nazwie ACL.tekst wewnątrz (/mnt/test/acl.tekst).

Następnie ustawimy właściciela grupy programiści i zmień domyślnie UGO/RWX uprawnienia rekurencyjnie 770 (W ten sposób udzielanie odczytu, zapisu i wykonania uprawnień przyznanych zarówno właścicielowi, jak i właścicielowi grupy pliku):

# mkdir/mnt/test # touch/mnt/test/acl.TXT # CHGRP -R Programiści /MNT /TEST # CHMOD -r 770 /MNT /TEST 

Zgodnie z oczekiwaniami możesz napisać do /mnt/test/acl.tekst Jak Walterwhite Lub Saulgoodman:

# Su - Walterwhite # echo „Moje imię to Walter White”>/mnt/test/acl.txt # exit # Su - Saulgoodman # echo „Moje imię to Saul Goodman” >>/mnt/test/acl.txt # exit 
Sprawdź reguły ACL w sprawie użytkowników

Jak na razie dobrze. Wkrótce jednak zobaczymy problem, gdy będziemy musieli przyznać dostęp do /mnt/test/acl.tekst dla innego użytkownika, który nie ma w grupie programistów.

Standard UGO/RWX Uprawnienia wymagałyby dodania nowego użytkownika do grupy programistów, ale to dałoby mu takie same uprawnienia do wszystkich obiektów należących do grupy. Właśnie tam przydają się ACL.

Ustawienie ACL w Linux

Istnieją dwa rodzaje ACL: Uzyskaj dostęp do ACL są (które są stosowane do pliku lub katalogu) i Domyślne (opcjonalnie) ACLS, które można zastosować tylko do katalogu.

Jeśli pliki w katalogu, w którym a Domyślny ACL został ustawiony nie mają własnego ACL, dziedziczą domyślną ACL ich katalogu nadrzędnego.

Dajmy użytkownik Gacanepa czytaj i zapisz dostęp do /mnt/test/acl.tekst. Zanim to zrobisz, spójrzmy na bieżące ustawienia ACL w tym katalogu z:

# getFacl/mnt/test/acl.tekst 

Następnie zmień ACL w pliku, użyj u: a następnie nazwa użytkownika i : rw Aby wskazać uprawnienia odczytu / zapisu:

# setfacl -m u: gacanepa: rw/mnt/test/acl.tekst 

I biegnij GetFacl ponownie w pliku, aby porównać. Poniższy obraz pokazuje "Zanim" I "Po":

# getFacl/mnt/test/acl.tekst 
Ustaw ACL na użytkownikach Linux

Następnie będziemy musieli przekazać innym uprawnienia do /MNT/TEST informator:

# chmod +x /mnt /test 

Należy pamiętać, że aby uzyskać dostęp do zawartości katalogu, zwykły użytkownik potrzebuje uprawnień w tym katalogu.

Użytkownik Gacanepa powinien być teraz w stanie napisać do pliku. Przełącz na to konto użytkownika i wykonaj następujące polecenie, aby potwierdzić:

# echo „Nazywam się gabriel cánepa” >>/mnt/test/acl.tekst 

Aby ustawić domyślny ACL na katalogu (który jego zawartość będzie odziedziczyć, chyba że inaczej nadpisana), dodaj D: Przed regułą i określ katalog zamiast nazwy pliku:

# setfacl -m d: o: r/mnt/test # getFacl/mnt/test/ 

Powyższe ACL pozwoli użytkownikom nie w grupie właścicielskiej na dostęp do przyszłej zawartości /MNT/TEST informator. Zwróć uwagę na różnicę wyjścia getFacl /mnt /test Przed i po zmianie:

Ustaw domyślny ACL na katalog Linux

Aby usunąć określony ACL, wymień -M w powyższych poleceniach z -X. Na przykład,

# setfacl -x d: o /mnt /test 

Alternatywnie możesz również użyć -B Opcja usuwania wszystkich ACL w jednym kroku:

# setfacl -b /mnt /test 

Aby uzyskać więcej informacji i przykładów na temat korzystania z ACL, zapoznaj się Rozdział 10, Sekcja 2, przewodnika bezpieczeństwa OpenSuse (dostępny również do pobrania bez kosztów w formacie pdf).

Ustaw kwoty dysku Linux na użytkownikach i systemach plików

Miejsce do przechowywania to kolejny zasób, który musi być starannie używany i monitorowany. Aby to zrobić, kwoty można ustawić na podstawie systemu plików, albo dla poszczególnych użytkowników lub dla grup.

Zatem limit jest umieszczany na użyciu dysku dozwolonego dla danego użytkownika lub określonej grupy, i możesz mieć pewność, że Twoje dyski nie zostaną wypełnione przez nieostrożnego (lub złośliwego) użytkownika.

Pierwszą rzeczą, którą musisz zrobić, aby włączyć kwoty w systemie plików, jest montaż ich z opcjami odpowiednio opcji Usrquota lub GRPQUOTA /etc/fstab.

Na przykład włączmy kwoty oparte na użytkownikach /dev/vg00/vol_backups i kwoty grupowe na /dev/vg00/vol_projects.

Zauważ, że Uuid służy do identyfikacji każdego systemu plików.

UUID = f6d1eba2-9aed-40Ea-99ac-75f4be05c05a /home /projekty ext4 Domyślne, grpquota 0 0 uuid = e1929239-5087-44b1-9396-53e09db6eb9e /home /backus ext4 defaults, USRquota 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

Odmowa i ponowne uruchomienie obu systemów plików:

# Umount /Home /Projects # Umount /Home /Bacups # Mount -o Remount /Home /Projects # Mount -o Remount /Home /Bacups 

Następnie sprawdź, czy opcje USRQuota i Grpquota są obecne na wyjściu mocowania (patrz podświetlone poniżej):

# Mount | GREP VG00 
Sprawdź limit użytkownika Linux i kwota grupy

Na koniec uruchom następujące polecenia, aby zainicjować i włączyć kwoty:

# quotacheck -vugc # limit -vu /home /backups # quottaon -vg /home /projekty 

To powiedziawszy, przypiszmy teraz kwoty do nazwy użytkownika i grupy, o której wspominaliśmy wcześniej. Możesz później wyłączyć kwoty z CZYTAFOFF.

Ustawienie kwot dysku Linux

Zacznijmy od ustawienia ACL /dom/kopie zapasowe dla użytkownika Gacanepa, które da mu odczyt, zapisz i wykona uprawnienia do tego katalogu:

# setfacl -m u: gacanepa: rwx/home/backups/ 

Potem z,

# edquota -u gacanepa 

Zrobimy miękki Limit = 900 i trudne Limit = 1000 Bloki (1024 bajtów/blok * 1000 bloków = 1024000 bajtów = 1 MB) zużycie miejsca na dysku.

Możemy również umieścić limit 20 I 25 jako miękkie i twarde limity liczby plików, które może tworzyć użytkownik.

Powyższe polecenie uruchomi edytor tekstu (Edytor $) Z tymczasowym plikiem, w którym możemy ustawić wcześniej wspomniane limity:

Kwota dysku Linux dla użytkownika

Te ustawienia spowodują, że użytkownik zostanie wyświetlony ostrzeżenie Gacanepa Kiedy albo dotarł do 900-blok Lub 20-inode limity za domyślny okres karencji wynoszący 7 dni.

Jeśli Powyżej kwoty Sytuacja nie została do tego czasu wyeliminowana (na przykład poprzez usunięcie plików), miękki limit stanie się twardym limitem, a użytkownik ten nie będzie mógł używać większej ilości miejsca do przechowywania lub tworzenie większej liczby plików.

Aby przetestować, poprośmy użytkownika Gacanepa, próbując stworzyć pusty 2 MB plik o nazwie test1 wewnątrz /dom/kopie zapasowe:

# dd if =/dev/zero o =/home/backups/test1 bs = 2m liczba = 1 # ls -lh/home/backups/test1 
Sprawdź limit użytkownika Linux na dysku

Jak widać, plik operacji zapisu nie powiada się z powodu przekroczenia kwoty dysku. Od tylko pierwszego 1000 kb są pisane na dysku, wynikiem w tym przypadku najprawdopodobniej będzie plik uszkodzony.

Podobnie możesz utworzyć ACL dla grup programistów, aby zapewnić członkom tej grupy RWX dostęp do /dom/projekty:

# setfacl -m g: programiści: rwx/home/projekty/ 

I ustaw limity kwot:

# deweloperzy Edquota -G 

Tak jak to zrobiliśmy z użytkownikiem Gacanepa wcześniej.

Okres karencji można określić przez dowolną liczbę sekund, minut, godzin, dni, tygodni lub miesięcy, wykonując.

# edquota -t 

i aktualizacja wartości poniżej Blokuj okres karencji i okres karencji.

W przeciwieństwie do użycia blokowania lub inodowego (które są ustawione na użytkowniku lub bazy grupy), okres karencji jest ustawiony w całym systemie.

Aby zgłosić kwoty, możesz użyć kwoty -u [użytkownik] Lub kwota -g [grupa] dla szybkiej listy lub repuquota -v [/ścieżka/do/plików Aby uzyskać bardziej szczegółowy (sprawdzony) i ładnie sformatowany raport.

Oczywiście będziesz chciał wymienić [użytkownik], [Grupa], I [/ścieżka/do/system plików] z określonymi nazwami użytkownika / grup i systemem plików, które chcesz sprawdzić.

Streszczenie

W tym artykule wyjaśniliśmy, jak ustawić Listy kontroli dostępu oraz kwoty dysku dla użytkowników i grup. Korzystając z obu, będziesz mógł skuteczniej zarządzać uprawnieniami i używaniem dysku.

Jeśli chcesz dowiedzieć się więcej o kwotach, możesz zapoznać się z mini-howto w projekcie dokumentacji Linux.

Nie trzeba dodawać, że możesz również liczyć na nas na pytania. Po prostu prześlij je, używając poniższego formularza komentarza, a my z przyjemnością będziemy przyjrzeć się.

Zostań certyfikowanym administratorem systemu