2

Предположим, у меня есть каталог без доступа для кого-либо, кроме root. Я гарантированно, что все в каталоге недоступно для всех, кроме root? Другими словами, являются ли права доступа к файлам иерархическими, так что если пользователь не может получить доступ к каталогу, он не может получить к нему доступ, даже если у него есть разрешения на что-либо в каталоге?

3 ответа3

5

Если ответ в основном "да", то есть особые случаи, когда "нет".

Потому что unix-файлы не гарантированно имеют уникальный путь. Так что если у вас есть

$ ls -l
drwx------- 1 root  root [...] root_only

а также

$ ls -l root_only
-rw-rw-rw-- 2 root  root [...] hopefully_private_file

и hopefully_private_file жестко связан с другим источником, он может быть универсально читаемым.

Откуда вы знаете? Посмотрите еще раз на это ls -l:

$ ls -l root_only
-rw-rw-rw-- 2 root  root [...] hopefully_private_file
            ^
            |

Число над стрелкой - это количество ссылок (для файлов оно имеет другое значение для каталогов). Если количество ссылок равно 1, вы в безопасности; если это что-то еще, может быть проблема.

2

Для отображения чего-либо в каталоге dir/ вам нужно +x разрешение, чтобы можно было найти индекс файла. Поэтому, если у вас нет +x, вы не можете прочитать файл, даже если это 777 .

1

Это правильно, удаление разрешений для родительского каталога влияет на способность работать с чем-либо в этом каталоге.

Если пользователь не имеет разрешения на выполнение для каталога, он не сможет видеть доступ к каким-либо файлам в каталоге.

Вы, вероятно, также хотите удалить разрешение на чтение в каталоге, чтобы они не могли даже видеть содержимое (имена файлов) каталога.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .