linux 如何在SaltStack中更改奴才的文件权限?

a11xaf1n  于 2023-03-01  发布在  Linux
关注(0)|答案(3)|浏览(113)

我需要使用SaltStack更改Linux中的文件权限。
对于目录,我可以使用file.directory函数,例如:

file.directory:
  - user: root
  - group: root
  - mode: 400

但是我应该用什么来做文件呢?
我可以使用:

file.managed:
  - user: root
  - group: root
  - mode: 444

而且它起作用了,但我有一个警告信息:
[警告]文件的状态:/boot/grub/grub.cfg-"source"、"contents"、"contents_pillar"和"contents_grain"均未定义,但"replace"已设置为"True"。由于没有可用于替换文件的源,因此"replace"已设置为"False",以避免不必要地读取文件。
它需要一个source指令,但我不想将文件下载到minion,我只需要更改文件权限。
file.exists函数没有usergroupmode指令。
我有什么选择?

6uxekuva

6uxekuva1#

你得到的警告消息几乎说明了一切。如果你指定replace: False,消息将消失:

file.managed:
  - user: root
  - group: root
  - mode: 444
  - replace: False

使用cmd.run显然可以删除此消息,但它太通用了,更像是一种变通方法。更“咸”的方法是使用file.managed状态,因为这是它的设计目的。

pwuypxnk

pwuypxnk2#

状态file.directory只在一个状态中递归地设置文件和/或目录的权限。比cmd.run即使什么都不更改也要执行的www.example.com好(这将与“状态”的原理背道而驰)。请注意,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

如果recurse选项下包含ignore_files或ignore_dirs,则文件或目录将分别保持不变。

omjgkv6w

omjgkv6w3#

如果该文件不是由salt管理的,您可能希望使用cmd.run并直接调用unix命令:

chown root:root /path/to/file:
  cmd.run

chmod 444 /path/to/file:
  cmd.run

相关问题