我知道这很容易被忽略。在我的生命中,我看不到现有的盐状态可以用来简单地更改已存在文件的权限。有一个file.managed状态,可用于根据源“创建”文件,但是如果您只是想确保未通过salt创建的文件的权限具有正确的权限,如果没有,则进行更新。>
例如,我可以创建如下状态:
base security tcpd host-allows:
file.managed:
- name: /etc/hosts.allow
- create: False
- user: root
- group: root
- mode: 644
但是,当我应用此状态时,会收到警告:
[WARNING ] State for file: /etc/hosts.allow - Neither 'source' nor 'contents' nor 'contents_pillar' nor 'contents_grains' was defined, yet 'replace' was set to 'True'. As there is no source to replace the file with, 'replace' has been set to 'False' to avoid reading the file unnecessarily.
有没有更好的方法来处理这样的事情?
答案 0 :(得分:0)
是的,file.managed
用于修改文件内容,但它还具有一个replace
参数,只能用于更改权限和所有权。
请参见https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.managed
替换 :正确
如果设置为False并且该文件已经存在,则即使进行其他更改也不会修改该文件。但是,权限和所有权仍将强制执行。