Почему в nautilus вы можете получить доступ к каталогам без прав на выполнение, а в терминале - нет?
Когда я удаляю привилегии выполнения (и просто оставляю это с r) из каталога, используя
chmod 400 sampledir
и попытаться войти с
cd sampledir
в нем говорится, что разрешение отклонено, но если я использую nautilus, чтобы открыть его, я могу открыть его и посмотреть его содержимое. Почему это так? Я где-то читал, что в терминале вы должны выполнить каталог, и каталог будет перечислять его содержимое, но я думаю, что когда вы используете cd, cd - это программа, а имя каталога - это параметр. Это всего лишь гипотеза, потому что я читал в Google, и я пока не могу понять. Большое спасибо за любую помощь.
1 ответ
chdir(2)
требуются разрешения на поиск (выполнение) для каждого компонента в пути. open(2)
а также readdir(3)
не делайте. Не пытаясь изменить рабочий каталог процесса, nautilus обходит требование разрешения на выполнение.