LinuxでACLパーミッションを再帰的に設定するには、どのようにsetfaclを取得しますか?


20

私は新しいサーバーをセットアップしていて、ACLにchown:chgrp:chmodスタイルのアクセス許可を試したいと思っていました。

setfaclのmanページは、 '-R'オプションを使用して、ファイルとディレクトリにACLを再帰的に設定できることを示しています。

-R、--recursiveすべてのファイルとディレクトリに操作を再帰的に適用します。このオプションを「--restore」と混在させることはできません。

ディレクトリレイアウトが次のようになっている場合

test/
   subtest/
   subtest.txt

そして私は実行する

setfacl -Rm d:u:foo:rwX test

ACLは「subtest」ディレクトリで有効になりますが、subtest.txtファイルでは有効になりません。

私はfind + execを使用して回避することができると思いますが、このサーバーを使用して他のいくつかの管理者を訓練することを計画しています。慣習。

ありがとう

回答:


43

試してください:

setfacl -Rm u:foo:rwX,d:u:foo:rwX test

現在のACLとデフォルトを変更します。「d:」はディレクトリの(d)efault ACLにのみ影響し、ファイルは変更されないものと考えています。次に、ディレクトリに新しいファイルを作成すると、デフォルトを介して親ディレクトリのACLを継承します。


それは少し冗長に感じても意味があります
ジョー・ホロウェイ

1
これは、アクセス制御を削除する場合にも機能します。おそらく次のような効果があります

フラグ-R-mフラグの間の場所を変更するとコマンドが壊れるのはなぜですか?
pkaramol

@pkaramol:-mオプションは引数(u:foo:rwX,d:u:foo:rwXこの場合はACL仕様)を取り、オプションの順序を切り替えると、オプションと引数が分離されるためです。またsetfacl、主なオプションを最初に期待するようにコーディングされている場合もあります。
追って通知があるまで一時停止します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.