Podstawowy model dostępu do plików obejmujący użytkownika, grupę oraz wszystkich innych nie zawsze się sprawdza w praktyce. Powstały więc modele dostępu umożliwiające dokładne określenie kto ma jakie prawa do danego pliku i katalogu. Jednym z takich modeli jest model POSIX ACL.
Instalacja
Model ten jest dostępny w jądrach 2.6 standardowo, natomiast dla jąder 2.4 potrzeba jest specjalna łata na jądro. Dostępna jest ona na stronie http://acl.bestbits.at/ . Należy również zainstalować pakiet z narzędziami do obsługi acl-i. Standardowo w dystrybucjach nazywa się on właśnie acl, jeżeli go nie znajdziemy, możemy również je ściągnąć ze z tej strony.
Włączanie i wyłączanie obsługi ACLi
Gdy jądro posiada już obsługę ACLi należy system plików przemountować w tryb obsługi kontroli list dostępu, dokonamy tego poleceniem:
mount -o /dev/hdxy -o remount,rw,defaults,acl
Jeżeli nasz główny system plików znajduje się na partycji /dev/hda1 to ta komenda będzie miała postać:
mount -o /dev/hda1 -o remount,rw,defaults,acl
W tej chwili system jest przygotowany do pracy.
Jeżeli chcielibyśmy na stałe używać na tej partycji acl-i należy do opcji mountowania zapisanych w pliku /etc/fstab dodać słówko „acl” np.:
/dev/hda1 / ext3 defaults,acl 0 0
Sprawdzanie praw dostępu do plików
Komendą sprawdzającą kto na jakich prawach dostępu ma dostęp do plików jest getfacl . W przypadku gdy żadne zmiany w trybie dostępu nie zostały dokonane zobaczymy coś podobnego do raportu niżej:
[root@laptop root]# getfacl /etc/lilo.conf getfacl: Removing leading '/' from absolute path names # file: etc/lilo.conf # owner: root # group: root user::rw- group::--- other::---
Natomiast jeżeli dokonaliśmy zmian, zostaną one wyświetlone w specjalny sposób:
[root@laptop root]# getfacl /etc/lilo.conf getfacl: Removing leading '/' from absolute path names # file: etc/lilo.conf # owner: root # group: root user::rw- user:ziutus:rw- group::--- mask::rw- other::---
Ustawianie praw dostępu do plików
Polecenie setfacl pozwala ustawić nowe lub modyfikować istniejące prawa dostępu do plików.
[root@laptop root]# setfacl -m u:ziutus:rw /etc/lilo.conf
Współpraca z sieciowymi systemami plików
Samba umie korzystać z Posix ACL, dzięki czemu użytkownicy końcówek windowsowych mają możliwość dokładnego określania kto ma dostęp do czego. Systemy NFS też powinny mieć (przynajmniej ograniczoną) możliwość korzystania z POSIX ACL.
Środowiska graficzne a ACL
Niestety obecnie żadne środowisko graficzne nie wspiera Posix ACL.
Serwery FTP obsługujące ACLe
Jedynym znanym mi serwerem FTP obsługującym ACLe jest Proftpd. Funkcja ta jest dostępna od wersji 1.3.1rc1
Porównanie z innymi modelami ACL
Model POSIX ACL ma na celu rozszerzyć zasady dostępu dla zwykłych użytkowników. Inne modele ACLi (np. z Grsecurity) mają na celu ograniczenie możliwości strat po przejęciu systemu w wyniku włamania, pozwalają one modyfikować prawa dostępu tylko administratorom i to w ograniczonym zakresie (np. dopiero po przełączniu w specjalny tryb pracy). ACLe dostępne razem z SELinuksem mają natomiast wprowadzić bezpieczne zasady dostępu do dokumentów, programów i urządzeń ale pracują tylko w trybie tekstowym (SELinux ma problemy z oprogramowaniem trybu graficznego).