Спочатку подумайте: що таке каталог? Це лише список елементів (файлів та інших каталогів), які містяться в ньому. Отже: каталог = список імен.
Біт читання = Якщо встановлено, ви можете прочитати цей список. Так, наприклад, якщо у вас є каталог з іменем poems
:
- Ви можете,
ls poems
і ви отримаєте список предметів, які проживають всередині ( -l
деталей не буде розкрито!).
- Можна використовувати завершення командного рядка, тобто
touch poems/so <TAB> poems/somefile
.
- Ви не можете зробити
poems
свій робочий каталог (тобто cd
в нього).
Біт запису = Якщо встановлено, ви можете змінити цей список, тобто ви можете {додати, перейменувати, видалити} імена в ньому. Але! Насправді ви можете це зробити, лише якщо встановлено також біт виконання.
Execute bit = Зробіть цей каталог своїм робочим каталогом, тобто cd
в нього. Вам потрібен цей дозвіл, якщо ви хочете:
- отримувати доступ (читати, писати, виконувати) предмети, що живуть всередині.
- змінити сам список, тобто додати, перейменувати, видалити імена в ньому (звичайно, біт запису повинен бути встановлений у каталозі).
Цікавий випадок 1 : Якщо у вас є дозволи на запис + виконання у каталозі, ви можете {видалити, перейменувати} елементи, що знаходяться в них, навіть якщо у вас немає дозволу на запис цих елементів. (використовуйте клейкий біт, щоб запобігти цьому)
Цікавий випадок 2 : Якщо у вас є дозвіл на виконання (але не запис) на каталог І у вас є дозвіл на запис для файлу, що знаходиться в ньому, ви не можете видалити файл (оскільки це передбачає видалення його зі списку). Однак ви можете видалити його вміст, наприклад, якщо це текстовий файл, ви можете використовувати vi, щоб відкрити його та видалити все. Файл все ще буде, але він буде порожнім.
Підсумок:
Біт читання = Ви можете прочитати імена зі списку.
Написати біт = Ви можете {додати, перейменувати, видалити} імена у списку, АКОБЕ також встановлений біт виконання.
Execute bit = Ви можете зробити цей каталог вашим робочим каталогом.
PS: Стаття, згадана Кусалаланда, добре прочитана.