Lista kontroli dostępu ACL

Zazwyczaj lista ACL składa się z serii pozycji nazywanych pozycjami ACE (Access Control Entry). Każda pozycja ACE określa prawa dostępu dla użytkownika będącego w relacji z obiektem.

System operacyjny obsługuje kilka typów obiektów systemowych, które umożliwiają przechowywanie lub wymianę informacji przez procesy użytkownika. Najważniejszymi typami obiektów z kontrolą dostępu są:

  • pliki i katalogi,
  • potoki nazwane,
  • obiekty IPC takie jak kolejki komunikatów, segmenty pamięci współużytkowanej i semafory.

Wszystkie sprawdzenia uprawnień dostępu dla tych obiektów są wykonywane na poziomie wywołania systemowego podczas pierwszego dostępu do obiektu. Ponieważ dostęp do obiektów komunikacji międzyprocesorowej systemu System V(SVIPC) jest bezstanowy, sprawdzenia są wykonywane przy każdym dostępie. W przypadku obiektów z nazwami systemu plików konieczne jest tłumaczenie nazwy rzeczywistego obiektu. Nazwy są tłumaczone względnie lub bezwzględnie.

Na przykład lista ACL powiązana z obiektem systemu plików może określać prawa dostępu do danego obiektu dla różnych użytkowników. Istnieje możliwość zdefiniowania w liście ACL różnych poziomów praw dostępu, takich jak odczyt lub zapis, dla różnych użytkowników.

Zazwyczaj każdy obiekt będzie miał zdefiniowanego właściciela i w niektórych przypadkach będzie powiązany z grupą podstawową. Właściciel danego obiektu kontroluje jego atrybuty dostępu.

Poniższa lista zawiera atrybuty kontroli dostępu bezpośredniego dla różnych typów obiektów:

Właściciel – W przypadku obiektów komunikacji między procesorowej System V (SVIPC) prawa własności może zmienić twórca lub sam właściciel. Obiekty SVIPC mają przypisanego twórcę, który ma wszystkie prawa właściciela (w tym autoryzację dostępu). Twórca nie może jednak zostać zmieniony, nawet przez użytkownika root. Obiekty SVIPC są inicjowane z efektywnym identyfikatorem grupy procesu tworzącego. W przypadku systemów plików, atrybuty kontroli dostępu bezpośredniego są inicjowane z efektywnym identyfikatorem grupy procesu tworzącego lub identyfikatorem grupy katalogu nadrzędnego (jest on określany przez opcję dziedziczenia grupy katalogu nadrzędnego).

Grupa – Właściciel obiektu może zmienić grupę. Nowa grupa musi mieć efektywny identyfikator grupy procesu tworzącego lub identyfikator grupy katalogu nadrzędnego.

Tryb – Za pomocą komendy chmod można ustawiać podstawowe uprawnienia i atrybuty. Podprogram chmod wywoływany przez komendę wyłącza rozszerzone uprawnienia. Rozszerzone uprawnienia zostaną wyłączone, jeśli zostanie użyty tryb numeryczny komendy chmod w pliku, który ma listę ACL.