2016-10-03 3 views
0

Я использую следующий ресурс chef каталога, чтобы изменить право собственности на все файлы в каталоге /etc/temp.d.Изменение владельца всего внутри каталога

[ /etc/temp.d ].each do |path| 
    directory path do 
     recursive true 
     owner user1 
     group user1 
     mode '0750' 
     action :create 
    end 
end 

Однако я вижу, что он изменяет право собственности только temp.d каталог, user1 Принадлежность файлов и каталогов внутри temp.d не получают изменилось.

ответ

0

Да, recursive не работает, как вы могли бы там подумать. Он применяет только разрешения к каталогу листа.

Это является задокументированы в docs, но я понимаю ваше замешательство ... Я был там сам ...

рекурсивный

Рубиновые Типы: TrueClass, FalseClass

Рекурсивно создавать или удалять родительские каталоги. Для владельца, группы и свойств режима значение этого атрибута относится только к каталогу листьев . Значение по умолчанию: false.

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

+0

Чтобы объяснить немного, 'рекурсивный' означает либо' mkdir -p', либо 'rm -r' в зависимости от действия. – coderanger

+0

можно добавить что-то вроде ': apply_to_children' в разделе параметров? – meallhour

Смежные вопросы