Najpierw pomyśl: co to jest katalog? To tylko lista elementów (plików i innych katalogów), które znajdują się w środku. Zatem: katalog = lista nazw.
Read bit = Jeśli ustawiony, możesz przeczytać tę listę. Na przykład, jeśli masz katalog o nazwie poems
:
- Możesz,
ls poems
a otrzymasz listę przedmiotów mieszkających w środku ( -l
nie ujawni żadnych szczegółów!).
- Możesz użyć uzupełniania z wiersza poleceń, tj
touch poems/so <TAB> poems/somefile
.
- Nie możesz utworzyć
poems
katalogu roboczego (tzn. cd
Do niego).
Write bit = Jeśli jest ustawiony, możesz zmodyfikować tę listę, tzn. Możesz {dodać, zmienić nazwę, usunąć} nazwy na niej. Ale! Możesz to zrobić tylko wtedy, gdy bit wykonania jest również ustawiony.
Wykonaj bit = Ustaw ten katalog jako katalog roboczy, tzn cd
. W nim. Potrzebujesz tego pozwolenia, jeśli chcesz:
- dostęp (odczyt, zapis, wykonanie) elementów mieszkających w środku.
- zmodyfikuj samą listę, tj. dodaj, zmień nazwę, usuń na niej nazwy (oczywiście bit zapisu musi być ustawiony w katalogu).
Interesujący przypadek 1 : Jeśli masz uprawnienia do zapisu i wykonywania w katalogu, możesz {usunąć, zmienić nazwę} przedmiotów żyjących w środku, nawet jeśli nie masz zapisu na tych elementach. (użyj lepkiej końcówki, aby temu zapobiec)
Interesujący przypadek 2 : Jeśli masz uprawnienia do wykonywania katalogu (ale nie do zapisu) ORAZ masz uprawnienia do zapisu pliku znajdującego się w nim, nie możesz go usunąć (ponieważ wiąże się to z usunięciem go z listy). Możesz jednak usunąć jego zawartość, np. Jeśli jest to plik tekstowy, możesz użyć vi, aby go otworzyć i usunąć wszystko. Plik nadal tam będzie, ale będzie pusty.
Podsumowanie:
Read bit = Możesz odczytać nazwy z listy.
Write bit = Możesz {dodać, zmienić nazwę, usunąć} nazwy na liście, JEŚLI bit wykonania również jest ustawiony.
Wykonaj bit = Możesz ustawić ten katalog jako katalog roboczy.
PS: Artykuł wspomniany przez Kusalanandę to dobra lektura.