как известно, чтобы получить, например, листинг подкаталога необходимо иметь помимо прав на его чтение так же право на чтение и исполнение его родительской директории.теперь чтобы был понятен вопрос вот код работы в шелле:
# pwd
/usr/home/zaco
# stat .
drwxr-x--- 6 zaco www ...
# cd html
# stat .
drwxr-xr-x 11 zaco www
# su den
%pwd
/usr/home/zaco/html
%stat /usr/home/zaco/html
stat: /usr/home/zaco/html: stat: Permission denied
%stat .
drwxr-xr-x 11 zaco www
%получается, несмотря на то, что пользователь не имеет фактического права на листинг каталога, ему все же позволительно его просмотривать, только потому, что текущий pwd находится уже в "запрещенной" директории и необходимости в соответсвующих правах на родительские каталоги просто нет?
система freebsd 6.2-RELEASE-p6. на других *nix возможности проверить пока нет.
>как известно, чтобы получить, например, листинг подкаталога необходимо иметь помимо прав на
>его чтение так же право на чтение и исполнение его родительской директории.Это не совсем так. Каталог - это тот же файл, содержимое которого имеет
определенную структуру (грубо говоря это список имен файлов и их номеров inode).
Чтобы прочитать его содержимое нужны ТОЛЬКО права для чтения самого этого "файла"
+ права на выполнение каталога, в котором этот "файл" находится.Право на чтение каталога необходимо для того, чтобы "узнать список файлов". Право на исполнение - чтобы "получить к ним доступ".
>[оверквотинг удален]
>%stat .
>drwxr-xr-x 11 zaco www
>%
>
Опять же, смотрим:
текущий каталог пользователя den - /usr/home/zaco/html
Пользователь den имеет права на чтение и исполнение каталога html. Всё логично.
Вариант с `stat /usr/home/zaco/html` не работает по причине того, что у пользователя den
нет прав на исполнение каталога zaco. Т.е., даже то что den знает что внутри файла zaco
есть запись с именем html, он не может получить доступ.
ну понятно, просто хотел проверить свои догадку. спасибо, тему можно считать закрытой.