2016-10-03 8 views
0

/etc/temp.dディレクトリ内のすべてのファイルの所有権を変更するために、ディレクトリchefリソースを使用しています。ディレクトリ内のすべての所有者を変更する

[ /etc/temp.d ].each do |path| 
    directory path do 
     recursive true 
     owner user1 
     group user1 
     mode '0750' 
     action :create 
    end 
end 

しかし、私はそれがtemp.d内のファイルやディレクトリの所有権が変更取得されていないuser1 にのみtemp.dディレクトリの所有権を変更することがわかります。

答えて

0

はい、recursiveは、あなたが考えているように機能しません。リーフディレクトリにのみアクセス権が適用されます。 、 FalseClassの

TrueClass:...再帰

Rubyのタイプこの

docsに記載ですが、私は...私は自分がしてきたあなたの混乱を理解してください

親ディレクトリを再帰的に作成または削除します。所有者、グループ、 およびモードプロパティの場合、この属性の値はリーフディレクトリ にのみ適用されます。デフォルト値:false。

各(サブ)ディレクトリを反復処理する配列に追加して、アクセス許可が正しく適用されるようにする必要があります。

+0

もう少し説明すると、 'recursive'はアクションに応じて' mkdir -p'または 'rm -r'を意味します。 – coderanger

+0

オプションセクションに ':apply_to_children'のようなものを追加できますか? – meallhour

関連する問題