При использовании файлового ресурса Puppet с recurse => true, возможно ли, чтобы каталоги и файлы получали разные разрешения?
Это мы обычно хотим для удаления разрешений на чтение / выполнение из группы для всех файлов, не относящихся к каталогам. Однако каталоги должны сохранять разрешение на выполнение, поскольку оно требуется для входа в каталог.
Некоторые утилиты (например, umask) достаточно умны, чтобы справиться с этим, но похоже, что Puppet не может. Я что-нибудь упустил?
На самом деле puppet делает это по умолчанию:
"When specifying numeric permissions for directories, Puppet sets the search permission wherever the read permission is set."
см. также :https://docs.puppet.com/puppet/latest/types/file.html#file-attribute-mode
Более явной альтернативой является использование символических режимов, таких как «ug+X». Это повлияет только на каталоги и даже позволит сделать каталоги доступными для поиска/исполнения без их чтения (, что позволяет вам войти в каталог, но тогда не читайте его содержимое... хотя не уверен, что это то, что вам нужно ).
When using a Puppet file resource with recurse=>true is it possible to have directories and files get different permissions?
Нет, но я ответил на аналогичный вопрос здесь , который поможет вам, если вам нужно иметь дело с чем-то кроме бита 'x'. По сути, определенный тип принимает аргументы «fmode» и «dmode» для определения различных режимов для каждого типа и применяет их рекурсивно и быстро.
Puppet автоматически добавляет разрешение на чтение каталога.
Например, если вы рекурсивно установите режим => '0640' для каталога, тогда puppet установит режим '0640' для всех файлов в этом каталоге, а сами каталоги будут установлены в режим '0750'.
https://puppet.com/docs/puppet/6/types/file.html#mode
В качестве альтернативы можно использовать марионеточный модуль, такой как рекурсивные _права доступа к файлу _.https://forge.puppet.com/modules/npwalker/recursive_file_permissions