SaltStack - 更改文件权限
SaltStack - change file permissions
我需要使用 SaltStack 在 Linux 中更改文件权限。
对于目录我可以使用file.directory
函数,例如:
file.directory:
- user: root
- group: root
- mode: 400
但是我应该为文件使用什么?
我可以使用:
file.managed:
- user: root
- group: root
- mode: 444
它有效,但我有一条警告消息:
[WARNING ] State for file: /boot/grub/grub.cfg - 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.
它需要一个 source
指令,但我不想将文件下载到 minion,我只需要更改文件权限。
file.exists
函数没有 user
、group
和 mode
指令。
我有什么选择?
如果文件不是由 salt 管理的,您可能想使用 cmd.run 并直接调用 unix 命令:
chown root:root /path/to/file:
cmd.run
chmod 444 /path/to/file:
cmd.run
您收到的警告消息几乎说明了一切。如果您指定 replace: False
消息将消失:
file.managed:
- user: root
- group: root
- mode: 444
- replace: False
cmd.run
显然会删除此消息,但它太笼统了,更像是一种解决方法。更多 salty 方法是使用 file.managed
状态,因为这是它的设计目的。
状态 file.directory 仅在一种状态下递归设置文件的 and/or 目录权限。优于即使没有任何更改也会执行的 cmd.run(将与 'states' 的理念相悖)。请注意,file.managed 在这种情况下是不够的。
otrs_enforce_perms:
file.directory:
- name: /opt/otrs
- user: otrs
- group: otrs
- dir_mode: 770
- file_mode: 660
- follow_symlinks: True
- recurse:
- user
- group
- mode
如果递归选项下包含ignore_files或ignore_dirs,则文件或目录将分别保持不变。
我需要使用 SaltStack 在 Linux 中更改文件权限。
对于目录我可以使用file.directory
函数,例如:
file.directory:
- user: root
- group: root
- mode: 400
但是我应该为文件使用什么?
我可以使用:
file.managed:
- user: root
- group: root
- mode: 444
它有效,但我有一条警告消息:
[WARNING ] State for file: /boot/grub/grub.cfg - 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.
它需要一个 source
指令,但我不想将文件下载到 minion,我只需要更改文件权限。
file.exists
函数没有 user
、group
和 mode
指令。
我有什么选择?
如果文件不是由 salt 管理的,您可能想使用 cmd.run 并直接调用 unix 命令:
chown root:root /path/to/file:
cmd.run
chmod 444 /path/to/file:
cmd.run
您收到的警告消息几乎说明了一切。如果您指定 replace: False
消息将消失:
file.managed:
- user: root
- group: root
- mode: 444
- replace: False
cmd.run
显然会删除此消息,但它太笼统了,更像是一种解决方法。更多 salty 方法是使用 file.managed
状态,因为这是它的设计目的。
状态 file.directory 仅在一种状态下递归设置文件的 and/or 目录权限。优于即使没有任何更改也会执行的 cmd.run(将与 'states' 的理念相悖)。请注意,file.managed 在这种情况下是不够的。
otrs_enforce_perms:
file.directory:
- name: /opt/otrs
- user: otrs
- group: otrs
- dir_mode: 770
- file_mode: 660
- follow_symlinks: True
- recurse:
- user
- group
- mode
如果递归选项下包含ignore_files或ignore_dirs,则文件或目录将分别保持不变。