Состояние соли для изменения разрешений для одного существующего файла - PullRequest
0 голосов
/ 05 декабря 2018

Я знаю, что это, наверное, что-то супер простое, что я просто упускаю из виду.Насколько я понимаю, я не вижу существующего состояния соли, которое можно использовать для простого изменения разрешений для уже существующего файла.Существует состояние file.managed, которое можно использовать для «создания» файла на основе источника, но что, если вы просто хотите застраховать разрешения для файла, который не создан с помощью соли, имеет правильное разрешение и обновить их, если нет.

Например, я могу создать состояние, подобное следующему:

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.

Есть лилучший способ справиться с чем-то вроде этого?

1 Ответ

0 голосов
/ 15 января 2019

Да, file.managed используется для изменения содержимого файла, но также имеет аргумент replace, который можно использовать для изменения только прав доступа и владельца.

См. https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.managed

replace: True

Если установлено значение False и файл уже существует, файл не будет изменен, даже если в противном случае будут внесены изменения.Однако права и права собственности будут по-прежнему применяться.

...