2016-10-19 4 views
1

Я работаю, пытаясь предоставить права доступа группы пользователей к подпапкам в среде Linux. В Linux это будет:Разрешения группы пользователей Chef на подпапках

chown -R user:group /var/lib/temp/* 

Как я могу получить то же самое в шеф-поваре с Ruby? Я пробовал:

directory '/opt/jenkins/plugins' do 
    owner 'jenkins' 
    group 'jenkins' 
    mode '0755' 
    recursive true 
    action :create 
end 

Указывая рекурсивно, это не поможет.

+0

Вы можете обратиться: - http://stackoverflow.com/questions/23921708/how-do-i-change-recursively- the-owner-and-group-on-a-directory-with-chef –

+0

Возможный дубликат [Как изменить рекурсивно владельца и группу в каталоге с шеф-поваром?] (http://stackoverflow.com/questions/23921708/как-делать-я-изменение-рекурсивно владелец-и-группы на-каталог-с-поваром)? – Amadan

ответ

0

От chef docs:

recursive 
    Ruby Types: TrueClass, FalseClass 

    Create or delete parent directories recursively. For the owner, group, and mode properties, the value of this attribute applies only to the leaf directory. Default value: false. 

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

Вы могли бы сделать это немного легче делать что-то вроде следующего:

plugins = %w(plugin1 plugin2) 
plugins.each do |plugin| 
    directory "/opt/jenkins/plugins/#{plugin}" do 
    owner 'jenkins' 
    group 'jenkins' 
    mode '0755' 
    action :create 
    end 
end 
+0

Я не хочу определять каждую подпапку. Так как есть куча из них и длинная иерархия папок. – user3580316