Jedną z form nadawania praw dostępowych do plików / katalogów w systemie Linux jest polecenie chmod. Co jednak gdy chcemy by pliki były możliwe tylko do odczytu lub zapisu dla części user’ów, a dla innych nie powinny być możliwe do przeglądania czy też zapisywania?
W tym przypadku z pomocą przyjdzie nam ACL’ka czyli lista dostępu. ACL daje możliwość definiowania praw dostępowych do plików/katalogów dla każdego użytkownika lub też grupy użytkowników z osobna.
Zależnie od dystrybucji Linux’a ACL może być już zainstalowany na twoim komputerze lub nie. Jeśli nie jest zainstalowany będziesz mieć oczywiście możliwość doinstalowania go we własnym zakresie.
Dla Ubuntu należy w pierwszej kolejności wykonać upgrade poleceniem:
$ sudo apt-get update
a następnie zainstalować paczkę:
$ sudo apt-get install acl
ACL – podstawowa konfiguracja
Do zdefiniowania oraz sprawdzania list dostępu służą dwa programy:
- setfacl
- getfacl
Pierwszy z nich przygotowany jest do przydzielania, modyfikowania oraz kasowania wpisów z list dostępu. Drugi natomiast (getfacl) dodatkowo potrafi wyświetlić informację o pliku takie jak nazwę, właściciela, grupę oraz ACL’kę.
Setfacl posiada dodatkowe parametry, które przedstawiam w poniższej tabelce:
* ten parametr stosujemy tylko i wyłącznie do folderów. Wszystkie nadane mu uprawnienia będą dotyczyły wszystkiego co umieścimy wewnątrz niego.
** podobnie jak w przypadku parametru -d stosujemy tylko do katalogu
W jaki sposób rozpoznać czy dany plik / folder ma skonfigurowany ACL?
W celu sprawdzenia konfiguracji wpisujemy w konsoli polecenie:
$ ls -l
Wynikiem powyższego polecenia będzie lista plików oraz folderów z uprawnieniami.
Wszystkie, które będą posiadały znak plusa mają przypisaną listę dostępu. Znak ten będzie znajdował się za informacjami o przypisanych prawach dostępu.
Przykłady:
Przeanalizujmy teraz parę przykładów.
$ setfacl -m g:bok:rw klienci.txt
Powyższy wpis będzie oznaczał, że grupa o nazwie bok będzie miała możliwość dokonywania modyfikacji lub dodawania nowych wpisów, :rw natomiast umożliwi tej grupie odczyt oraz zapis pliku klienci.txt
$ getfacl klienci.txt
Polecenie to podaje się bez wprowadzania jakiegokolwiek dodatkowego parametru. Wyświetli ono nam czy podany plik posiada wpisy w liście dostępu.
$ setfacl -b firmy/
Spowoduje usunięcie wszystkich wpisów dodanych do listy dostępu dla katalogu
Przedstawiliśmy podstawowe informacje dotyczące list dostępu. W kolejnym artykule otrzymasz więcej przykładów dotyczących konfiguracji.