Если у меня есть корневая папка с некоторыми ограничительными разрешениями, скажем, 600, и если у дочерних папок / файлов есть разрешение 777, сможет ли каждый читать / писать / выполнять дочерний файл, даже если у корневой папки есть 600?
permissions
directory
Кен Ли
источник
источник
Ответы:
Точное правило таково: вы можете просматривать каталог тогда и только тогда, когда у вас есть разрешение на его выполнение.
Так, например, для доступа
dir/subdir/file
вам нужно разрешение на выполнениеdir
иdir/subdir
, плюс, разрешения наfile
тип доступа, который вы хотите. Что касается угловых случаев, я не уверен, универсально ли, что вам нужно разрешение на выполнение в текущем каталоге для доступа к файлу по относительному пути (вы делаете это в Linux).Способ доступа к файлу имеет значение. Например, если у вас есть разрешения на выполнение,
/foo/bar
но не на/foo
, но у вас есть текущий каталог/foo/bar
, вы можете обращаться к файлам/foo/bar
по относительному пути, но не по абсолютному пути. Вы не можете изменить/foo/bar
в этом сценарии; более привилегированный процесс предположительно был сделанcd /foo/bar
до того, как он стал непривилегированным. Если файл имеет несколько жестких ссылок, путь, который вы используете для доступа к нему, определяет ваши ограничения доступа.Символические ссылки ничего не меняют. Ядро использует права доступа вызывающего процесса для их обхода. Например, если
sym
это символическая ссылка на каталогdir
, вам нужно разрешение на выполнениеdir
для доступаsym/foo
. Права доступа к самой символической ссылке могут иметь или не иметь значения в зависимости от ОС и файловой системы (некоторые уважают их, некоторые игнорируют их).Удаление разрешения на выполнение из корневого каталога фактически ограничивает пользователя частью дерева каталогов (которое должен изменить более привилегированный процесс). Это требует списков контроля доступа для любого использования. Например, если
/
и/home
являются запрещенными дляjoe
(setfacl -m user:joe:0 / /home
) и/home/joe
являютсяjoe
домашним каталогом, тоjoe
вы не сможете получить доступ к остальной части системы (включая запуск сценариев оболочки с помощью/bin/sh
или динамически связанных двоичных файлов, к которым требуется доступ/lib
, поэтому вы ' необходимо углубиться для практического использования, напримерsetfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib
).Разрешение на чтение в каталоге дает право перечислять записи. Предоставление разрешения на выполнение без предоставления разрешения на чтение иногда полезно: имена записей служат паролями для доступа к ним. Я не могу думать о каком-либо использовании в предоставлении разрешения на чтение или запись в каталог без разрешения на выполнение.
источник
Нет. Разрешение корневой папки ограничивает разрешение дочерних файлов. Можешь попробовать.
Я получаю это:
источник
Вы можете сделать дочерний каталог доступным для записи, даже если родительский каталог - нет. Я делаю это для групп.
Например: родительский каталог принадлежит кодеру группы
дочерний каталог
Вы (любой член группы кодеров) все еще можете писать в дочерний каталог, но не в родительский каталог.
источник
Вы можете создать жесткую ссылку для доступа к файлу, даже если у вас нет привилегии на выполнение в родительском каталоге. Но подвох в том, что вам нужно создать жесткие ссылки, прежде чем вы потеряете право на выполнение в родительском каталоге.
источник