我想使用Itamae更改文件属性,所以我写了这个:
file '/usr/local/bin/jobber' do
action :edit
owner 'jobber_client'
group 'root'
mode '04755'
end
owner
和group
属性已按预期更改,但mode
仅更改为755
而未对文件执行setuid
。
如何使用setuid
执行Itamae
?
答案 0 :(得分:2)
类似问题有一个bug filed against Chef,似乎已修复here。
如果Itamae也受到同样问题的影响,那么先创建文件然后再修改它似乎是最好的解决方法。
答案 1 :(得分:1)
Itamae不会忽略' 4xxx',但它先调用chmod然后再调用chmod。问题是:chown删除chmod设置的suid。
你可以用
看到它itamae local recipe.rb --log-level=debug
交换两个ifs的位置:
if attributes.mode
run_specinfra(:change_file_mode, change_target, attributes.mode)
end
if attributes.owner || attributes.group
run_specinfra(:change_file_owner, change_target, attributes.owner, attributes.group)
end
def action_create(options)中的和https://github.com/itamae-kitchen/itamae/blob/master/lib/itamae/resource/file.rb的def action_edit(选项)可以解决问题
我会提交补丁。
与此同时,这似乎有效:
jobber = '/usr/local/bin/jobber'
file jobber do
action :edit
owner 'jobber_client'
group 'root'
mode '0755'
end
execute "setuid #{jobber}" do
command "chmod u+s \"#{jobber}\""
end