2017-02-28 14 views
1

LinuxでSaltStackを使用してファイル権限を変更する必要があります。ディレクトリについてはSaltStack - ファイル権限を変更する

私は例えば、file.directory機能を使用することができます。

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

しかし、私は、ファイルのために何を使うべきでしょうか?

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

をそして、それは動作しますが、私は、警告メッセージがあります:

私が使用することができます

[警告]ファイルの状態:/boot/grub/grub.cfg - どちらも「ソースを' ' contents 'も' contents_pillar 'も' contents_grains 'も定義されていませんでしたが、 は' replace 'が' True 'に設定されています。 ファイルを置き換えるソースがないため、 ファイルを不必要に読み取らないようにするには、 'replace'が 'False'に設定されています。

sourceディレクティブが必要ですが、ファイルをミニオンにダウンロードする必要はありません。ファイルのアクセス許可を変更するだけです。

file.exists機能には、usergroup、およびmodeのディレクティブがありません。

どのようなオプションがありますか?

+0

file.managed状態からコードスニペットを投稿できますか?投稿した作品にはファイル名が含まれていないため、完全ではありません。私があなたを助けることを願っています。確か –

+0

は、このコードスニペットである: /etc/cron.d: file.directory: - ユーザー:ルート - モード:400 /boot/grub/grub.cfg: はfile.managed: - ユーザ:root - グループ:ルート - モード:400 – Oskar

+0

上記のテキストフォーマットに申し訳ありません。コードはうまく動作し、私は出力の警告に関する懸念があります。多分私は自分の仕事に間違った機能を使うでしょうか? – Oskar

答えて

4

警告メッセージがそれをすべて言います。

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

は明らかにこのメッセージを削除しますcmd.runを行うが、それはあまりにも汎用的だとよりこちらの回避策のようなものです:あなたがreplace: Falseを指定するとメッセージが消えてしまいます。 塩害のアプローチは、file.managed州を使用することになります。なぜなら、これはこれが設計されているためです。

+0

それは動作します!ありがとうございました! – Oskar

1

ファイルがあなたの代わりにcmd.runを使用し、直接UNIXコマンドを呼び出すこともできます塩によって管理されていない場合:あなたはかなり取得

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

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

それは私のための最良のオプションのように見えます。ありがとうございました! – Oskar

+1

これは状態がいっぱいではなく、毎回実行されます。 – Pieter

関連する問題