Lista kontroli dostępu (ACL) zapewnia dodatkowy, bardziej elastyczny mechanizm uprawnień dla systemów plików. Jest przeznaczony do pomocy z UNIX uprawnienia plików. ACL umożliwia nadawanie uprawnień każdemu użytkownikowi lub grupie do dowolnego zasobu dyskowego.
instalacja
pakiet acl jest zależnością systemd, powinien być już zainstalowany.
Włącz ACL
aby włączyć ACL, system plików musi być zamontowany z opcją acl
. Możesz użyć fstab, aby uczynić go trwałym w systemie.,
istnieje możliwość, że opcja acl
jest już aktywna jako domyślna opcja montowania w systemie plików. Btrfs tak robi i systemy plików Ext2/3/4. Użyj następującego polecenia, aby sprawdzić partycje sformatowane w ext* dla opcji:
# tune2fs-l /dev/sdXY | grep "Domyślne opcje montowania:"
Domyślne opcje montowania: user_xattr aclsprawdź również, czy domyślna opcja montowania nie jest przesłonięta, w takim przypadku będziesz musiał wybrać opcję montowania.zobacz
noacl
w/proc/mounts
w odpowiedniej linii.,możesz ustawić domyślne opcje montowania systemu plików za pomocą polecenia
tune2fs -o option partition
, na przykład:# tune2fs -o acl /dev/sdXYużywając domyślnych opcji montowania zamiast pozycji w
/etc/fstab
jest bardzo przydatne dla zewnętrznych dysków, taka partycja będzie montowana za pomocąacl
opcja również na innych maszynach linuksowych. Nie ma potrzeby edytowania/etc/fstab
na każdej maszynie.Uwaga:
acl
jest określona jako domyślna opcja montowania podczas tworzenia systemu plików ext2/3 / 4., Jest to skonfigurowane w/etc/mke2fs.conf
.- domyślne opcje montowania nie są wymienione w
/proc/mounts
.użycie
Set ACL
ACL można modyfikować za pomocą polecenia setfacl.
Wskazówka: Możesz wyświetlić listę zmian uprawnień do plików/katalogów bez modyfikowania uprawnień (np. suchego uruchamiania), dodając znacznik--test
.,aby ustawić uprawnienia dla innych:
# setfacl -m "other:permissions" <file/dir>aby umożliwić wszystkim nowo utworzonym plikom lub katalogom dziedziczenie wpisów z katalogu nadrzędnego (nie wpłynie to na pliki, które zostaną skopiowane do katalogu):
# setfacl -dm "entry" <dir>aby usunąć określony wpis:
iv id="580399fe25"
aby usunąć domyślne wpisy:
# setfacl -k <file/dir>aby usunąć wszystkie wpisy (wpisy właściciela, grupy i innych są zachowane):
# setfacl -b <file/dir>dokładność merytoryczna tego artykułu lub sekcji jest kwestionowana.,
powód: oryginalna notatka o opcji--mask
(pobrana z setfacl(1)) została określona jako niedokładna, ale nowa notatka również nie wydaje się poprawna. Szczegóły na stronie dyskusji. (Discuss in Talk:Access Control Lists#ACL Mask entry)Uwaga: domyślnym zachowaniem setfacl jest ponowne obliczenie pozycji maski ACL, chyba że podano jawnie wpis--mask
. Wpis Maska wskazuje maksymalne uprawnienia dozwolone dla użytkowników (innych niż właściciel) i dla grup., Jeśli jawnie nie zostanie ustawione, będzie to zgodne z uprawnieniami domyślnej grupy. Aby wyjaśnić, co to oznacza, Załóżmy, że grupa posiadająca katalog ma uprawnienia r-x. Jeśli dodasz użytkownika lub grupę ACL z uprawnieniami rwx, efektywnymi uprawnieniami tego użytkownika lub grupy będą r-x. powodem tego jest to, że nie ma niespodzianek, gdy plik z systemu, który nie obsługuje ACLs, zostanie udostępniony w systemie, który to robi..Wskazówka: aby rekurencyjnie zastosować operacje do wszystkich plików i katalogów, dodaj argument-R
.,c# file: abc# owner: someoneuser:: RW-user:: johnny:r-xgroup::r--mask::r-xother::r--Usuń wszystkie wpisy ACL:
# setfacl -b abcSprawdź uprawnienia:
# getfacl ABC# file: ABC# owner: someoneuser:: someoneuser:: RW-group:: r--other:: r--wyjście polecenia ls
zauważysz, że istnieje ACL dla danego pliku, ponieważ będzie on wykazywał
+
(znak plus) po jego uniksowych uprawnieniach na wyjściuls -l
.,$ ls-l /dev/audiocrw-rw----+ 1 root audio 14, 4 lis 2010 9 12:49 /dev/audio$ getfacl /dev/audionadawanie uprawnień wykonawczych dla prywatnych plików serwerowi www
poniższa technika opisuje, w jaki sposób proces taki jak serwer WWW może uzyskać dostęp do plików znajdujących się w katalogu domowym użytkownika, bez narażania bezpieczeństwa poprzez zapewnienie dostępu całemu światu.,
w poniższym przykładzie zakładamy, że serwer WWW działa jako użytkownik
http
I przyznajemy mu dostęp do katalogu domowegogeoffrey
/home/geoffrey
.pierwszym krokiem jest nadanie uprawnień wykonawczych użytkownikowi
http
:# setfacl -m "u:http:--x" /home/geoffreyUwaga: uprawnienia wykonawcze do katalogu są niezbędne dla procesu wyświetlania zawartości katalogu.,ponieważ użytkownik
http
jest teraz w stanie uzyskać dostęp do plików w/home/geoffrey
, inni nie potrzebują już dostępu:# chmod o-rx /home/geoffreyużyj
getfacl
aby zweryfikować zmiany:$ getfacl /Home/GeoffreyJak pokazuje powyższe wyjście,
other
nie ma już żadnych uprawnień, ale użytkownikhttp
jest nadal w stanie uzyskać dostęp do plików, więc Bezpieczeństwo może być uznane za zwiększone.,patrz również
- getfacl(1)
- setfacl(1)
- listy kontroli dostępu POSIX na Linuksie
- Jak ustawić domyślne uprawnienia plików dla wszystkich folderów / plików w katalogu?
Leave a Reply