Почему в nautilus вы можете получить доступ к каталогам без прав на выполнение, а в терминале - нет?

Когда я удаляю привилегии выполнения (и просто оставляю это с r) из каталога, используя

chmod 400 sampledir

и попытаться войти с

cd sampledir

в нем говорится, что разрешение отклонено, но если я использую nautilus, чтобы открыть его, я могу открыть его и посмотреть его содержимое. Почему это так? Я где-то читал, что в терминале вы должны выполнить каталог, и каталог будет перечислять его содержимое, но я думаю, что когда вы используете cd, cd - это программа, а имя каталога - это параметр. Это всего лишь гипотеза, потому что я читал в Google, и я пока не могу понять. Большое спасибо за любую помощь.

1 ответ

Решение

chdir(2) требуются разрешения на поиск (выполнение) для каждого компонента в пути. open(2) а также readdir(3) не делайте. Не пытаясь изменить рабочий каталог процесса, nautilus обходит требование разрешения на выполнение.

Другие вопросы по тегам