Ответ
Право на исполнение (x) для директории в Linux — это право на доступ к её содержимому (traverse). Без этого бита вы не можете выполнить ни одну операцию с файлами и поддиректориями внутри, даже если у вас есть права на чтение (r) или запись (w) для них.
Конкретные действия, которые разрешает x для директории:
- Перейти в директорию командой
cd. - Получить доступ к метаданным (inode) файлов внутри (через
ls -l,stat). - Прочитать или изменить файл, если есть соответствующие права на сам файл.
Практический пример из администрирования серверов:
Допустим, у пользователя deploy должен быть доступ только к лог-файлу конкретного приложения.
# Без права 'x' на директорию /var/log/app доступ к файлу невозможен
$ ls -ld /var/log/app/
drw-r--r-- 2 root root 4096 Mar 15 10:00 /var/log/app/
# У пользователя 'deploy' есть 'r' на файл лога
$ ls -l /var/log/app/error.log
-rw-r----- 1 root deploy 1024 Mar 15 10:05 error.log
$ sudo -u deploy cat /var/log/app/error.log
cat: /var/log/app/error.log: Permission denied
# Даем право на исполнение для группы 'deploy' на директорию
$ sudo chmod g+x /var/log/app/
$ ls -ld /var/log/app/
drw-r--xr-- 2 root root 4096 Mar 15 10:00 /var/log/app/
# Теперь доступ к файлу работает
$ sudo -u deploy cat /var/log/app/error.log
[Логи приложения...]
Важно: Право x на директорию не дает права исполнять файлы внутри него. Для запуска скрипта нужен отдельный бит x на самом файле.