Access-control list

Lista kontroli dostępu (ACL)

Access-control list, czyli ACL (ang. lista kontroli dostępu) to zestaw uprawnień powiązanych z obiektami w komputerowym systemie plików. Określa, którzy użytkownicy lub procesy systemowe mogą uzyskać dostęp do danych obiektów oraz jakie operacje są na nich dozwolone. Każdy wpis w standardowej liście ACL definiuje obiekt oraz operację. Na przykład, jeśli dany obiekt (plik) ma listę ACL, która zawiera (Alicja: odczyt, zapis; Bob: odczyt), to Alicja będzie miała prawo do odczytu i zapisu tego obiektu (pliku), natomiast Bob tylko do jego odczytu.

W systemach uniksowych lista ACL pozwala na bardziej złożoną i precyzyjną kontrolę dostępu do plików w porównaniu do standardowych uprawnień. Standardowe uprawnienia w systemie plików Unix obejmują jedynie: zapis, odczyt oraz wykonanie. Każde z tych uprawnień można przypisać właścicielowi pliku (ang. owner), grupie, do której plik należy (ang. group), oraz innym użytkownikom (ang. others).

Z kolei dzięki ACL możliwe jest definiowanie tych trzech uprawnień dla dowolnego użytkownika i grupy. Często ACL wskazuje także inne uprawnienia. Na przykład w systemie Windows 2000 (system plików NTFS) można ustalić prawo do przejęcia własności pliku.

Struktura listy ACL

Lista kontroli dostępu ACL to struktura danych (zwykle tabela), która zawiera pozycje określające prawa poszczególnych użytkowników lub grup do wybranych obiektów systemowych, takich jak programy, procesy lub pliki.

Te pozycje nazywane są pozycjami kontroli dostępu (ang. ACE – Access Control Entry) i występują w różnych systemach, takich jak Microsoft Windows NT, OpenVMS, Unix, Linux oraz MacOS.

Każda pozycja ma swój identyfikator na liście ACL.

W niektórych implementacjach pozycja ACE może decydować o tym, czy użytkownik lub grupa użytkowników mają prawo do modyfikacji listy ACL danego obiektu. W większości uniksowych i uniksopodobnych systemów operacyjnych listy ACL są zazwyczaj przechowywane w rozszerzonych atrybutach pliku.

Listy ACL (zarówno podstawowe, jak i rozszerzone) są również wykorzystywane do definiowania reguł filtrujących ruch sieciowy w routerach.

Zobacz też