Listy kontroli dostępu (ACL)
Zazwyczaj lista ACL składa się z serii pozycji nazywanych pozycjami ACE (Access Control Entry). Każda pozycja ACE definiuje prawa dostępu dla użytkownika będącego w relacji z obiektem.
Podczas próby dostępu system operacyjny przegląda listę ACL związaną z danym obiektem i sprawdza, czy użytkownik ma odpowiednie prawo. Listy ACL razem ze związanym z nimi sprawdzaniem dostępu tworzą jądro mechanizmu indywidualnej kontroli dostępu (Discretionary Access Control - DAC) obsługiwanego przez system AIX.
- 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 (do katalogu roboczego procesu) lub bezwzględnie (do katalogu głównego procesu). Wszystkie tłumaczenia nazw rozpoczynają się od przeszukania tych dwóch katalogów.
Mechanizm indywidualnej kontroli dostępu umożliwia efektywną kontrolę dostępu do zasobów informacyjnych i zapewnia oddzielne zabezpieczenie poufności i integralności danych. Mechanizmy kontroli dostępu na poziomie użytkownika są efektywne zależnie od tego, jak zostaną ustawione przez użytkowników. Wszyscy użytkownicy muszą rozumieć sposób przydzielania i odbierania uprawnień oraz sposób ich ustawiania.
Na przykład lista ACL powiązana z obiektem systemu plików (plikiem lub katalogiem) 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 indywidualnego. Atrybuty właściciela są ustawiane dla efektywnego identyfikatora użytkownika, który jest właścicielem procesu tworzącego.
- Właściciel
- W przypadku obiektów komunikacji międzyprocesorowej 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. (Jak powyżej, do obiektów SVIPC jest przypisana grupa tworząca, która nie może zostać zmieniona i współużytkuje autoryzację dostępu grupy obiektu).
- Tryb
- Za pomocą komendy chmod (w trybie numerycznym z notacją ósemkową) 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. Tryb symboliczny komendy chmod powoduje wyłączenie rozszerzonych list ACL typu NSF4, ale nie powoduje wyłączenia rozszerzonych uprawnień dla list ACL typu AIXC. Informacje na temat trybu numerycznego i symbolicznego można znaleźć w dokumentacji komendy chmod.
Wiele obiektów systemu operacyjnego, takich jak gniazda i obiekty systemu plików, ma powiązane listy ACL dla różnych podmiotów. Szczegóły list ACL dla tych typów obiektów mogą się różnić.
Tradycyjnie system AIX w celu kontrolowania praw dostępu do obiektów systemu plików obsługiwał bity trybu. Obsługiwał także unikalną formę bitów trybu listy ACL. Taka lista ACL składała się z podstawowych bitów trybu oraz z bitów trybu dozwolonych dla definicji wielu pozycji ACE; każda pozycja ACE definiuje prawa dostępu dla użytkownika lub grupy dotyczące bitów trybu. Tego typu klasyczne listy ACL będą nadal obsługiwane i są nazywane listami ACL o typie AIXC.
Należy zauważyć, że obsługa listy ACL w obiektach systemu plików zależy od podstawowego fizycznego systemu plików (physical file system - PFS). System PFS musi rozumieć dane listy ACL i mieć możliwość przechowywania, odtwarzania i narzucania dostępu dla różnych użytkowników. Istnieje możliwość, że niektóre fizyczne systemy plików nie będą obsługiwały żadnych list ACL (mogą obsługiwać tylko podstawowe bity trybu) w przeciwieństwie do fizycznego systemu plików, który obsługuje wiele typów list ACL. Niektóre systemy plików w systemie AIX zostały rozszerzone o obsługę wielu typów list ACL. Systemy JFS2 i GPFS mają także możliwość obsługi protokołu NFS w wersji 4 w oparciu o listę ACL. Ta lista ACL jest nazywana w systemie AIX listą ACL typu NFS4. Ta lista ACL jest zgodna z większą częścią definicji listy ACL ze specyfikacji protokołu NFS w wersji 4. Obsługuje także bardziej ziarnistą kontrolę dostępu w porównaniu do listy ACL typu AIXC i zapewnia możliwość dziedziczenia.