Ta interpretacja uprawnień sięga wczesnych systemów plików Unix. Na początku były tylko pliki. (No cóż, urządzenia i rury i ... ale próbuję tu opowiedzieć historię, nie być w 100% ściśle dokładne; poza tym wszystko to dotyczy urządzeń i rur i wszystkiego innego, ponieważ wszystko jest plikiem, nawet katalogi).
Katalogi to tylko pliki używane przez system plików do przechowywania metadanych opisujących drzewo katalogów i zawarte w nim pliki. Każdy plik w katalogu został opisany prostą strukturą danych, która zawierała miejsce na nazwę pliku (pierwotnie 14 znaków, IIRC) wraz z numerem i-węzła, w którym dane były przechowywane, rozmiarem pliku, znacznikami czasu i słowem uprawnień . Każdy katalog zaczynał się od dwóch wpisów o nazwach .
i ..
, pierwszy wskazujący na i-węzeł tego samego katalogu, a drugi na i-węzeł jego katalogu nadrzędnego.
Słowo zezwoleń zawierało dziewięć bitów, aby opisać sposób traktowania właściciela, innych członków tej samej grupy i świata. Trzy bity dla każdej flagi, czy dany użytkownik może odczytać, zapisać lub wykonać plik. (Możesz zauważyć, że w 16-bitowym słowie uprawnień jest jeszcze pięć bitów, które ignoruję. W końcu przypisano im znaczenie, ale to nie ma znaczenia dla tej części historii.) (Również ta interpretacja dziewięciu bity pozostały prawie takie same we wszystkich potomkach wczesnego Uniksa, w tym Linuksa.)
Tak więc, jeśli katalog jest tak naprawdę szczególnym rodzajem pliku i jest opisany wpisem w jakimś katalogu, to oczywiście ma również bity uprawnień, a te bity prawdopodobnie coś znaczą. Ale pytanie brzmi, co dokładnie. Najłatwiejszym sposobem przypisania znaczenia tym bitom jest nie zmiana ich znaczenia. I to jest zasadniczo to, co zostało zrobione.
Tak więc bit odczytu oznacza, że użytkownik może odczytać sam katalog. To klasycznie daje czytelnikowi dostęp do nazwy pliku, znaczników czasu, rozmiaru i numeru i-węzła danych każdego pliku. W szczególności, dzięki r
zestawowi możesz ls
zobaczyć nazwy wszystkich plików w katalogu, ale to nie wystarczy, aby otworzyć (lub w jakikolwiek sposób wykorzystać) dowolny z wymienionych plików.
Bit wykonania oznacza, że użytkownik może „wykonać” katalog. Ponieważ katalogi są wyjątkowe, wykonanie naprawdę oznacza wyszukanie pozycji według nazwy i użycie jej. Oznacza to, że możesz spróbować otworzyć pliki, jeśli x
jest ustawione, ale bez r
ciebie nie możesz odkryć ich nazw. Oczywiście uprawnienia do żądanego pliku również wpływają na dostęp, więc nawet x
w katalogu nie będziesz w stanie odczytać pliku, chyba że on również ci oferuje r
.
Bit zapisu oznacza, że użytkownik może pisać do katalogu, ale oczywiście pośredniczy tylko sam system plików. Oznacza to, że za pomocą w
zestawu możesz tworzyć nowe pliki w tym katalogu lub edytować wpisy katalogu istniejących plików. Ale bez x
zestawu nie można używać żadnych plików i bez r
nich też nie można ich zobaczyć.
Ponieważ w Unixie i jego potomkach ewoluowały bardziej skomplikowane modele tożsamości użytkownika, te same podstawowe opisy pozostały niezwykle niezmienione.
Krótko mówiąc, r
oznacza to, że możesz zobaczyć jego zawartość, x
oznacza, że możesz z niej korzystać i w
oznacza, że możesz ją modyfikować nawet dla katalogów.