linux / setfacl-指定された所有者/グループで、親ディレクトリ内のすべての現在/将来のファイル/ディレクトリを775に設定する


42

「members」というディレクトリがあり、その下にフォルダ/ファイルがあります。すべての現在のフォルダ/ファイルと、そこに作成された将来のフォルダ/ファイルにデフォルトで775のアクセス許可を持ち、それぞれ所有者/グループnobody / adminに属するようにするにはどうすればよいですか?マウントされたACLを有効にしましたが、setfaclコマンドを使用してこれを適切に実行できないようです。これを達成する方法はありますか?

回答:


62

私は実際にこれまでに私が求めていたものを見つけて、ここで共有して、この問題に遭遇した人がこの解決策を試せるようにしました:

sudo setfacl -Rdm g:groupnamehere:rwx /base/path/members/
sudo setfacl -Rm g:groupnamehere:rwx /base/path/members/

Rは再帰的です。つまり、そのディレクトリの下のすべてにルールが適用されます。
dはデフォルトです。これは、そのディレクトリの下に作成される今後のすべてのアイテムに対して、これらのルールがデフォルトで適用されることを意味します。 ルールを追加/変更するにはmが必要です。

最初のコマンドは、新しいアイテム用です(そのためd)、2番目のコマンドは、フォルダーの下にある古い/既存のアイテム用です。これが少し複雑であまり直感的ではないので、これが誰かの助けになることを願っています。


2
これは、祖父母ディレクトリの所有者が新しい孫ディレクトリの内容を適切に変更できるようにするために必要なものです。
ヨースト

あなたはRPIの唯一のユーザーである場合、あなたはグラムを置き換えることができます。パイとグループ名:パイまたはちょうどパイ
SDsolar

ユーザー、グループ、その他を1行で指定できます(例:)-Rdm g:groupnamehere:rwx, -Rdm u:groupnamehere:rwx
user2340939

18

受け入れられた回答を使用するには...

これらのコマンドを次のように組み合わせることができます。

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/

カッコいい。どうしてd:ではなく、最初の項目に設定するの-Rmdですか?2番目のパラメーターには何も指定しないでくださいdefault。Linuxがそれをどのように受け入れるかは奇妙です。
-JREAM

1
@JREAM:Linuxは(実際にgetopt_long)に引数全体を送信オプション-mされて手で解析されたことでsetfaclコンマで分離渡される引数を。それらは、実際にACLを変更するときに最後にループされるリンクリストに追加されます。
ブノワダッフェス

2

Linuxのsetfaclには、おそらくあなたが探しているデフォルトのパーミッションを操作するためのオプション-d-kオプションがあります(詳細はmanを参照してください)。


1

適切に許可されたユーザー、ディレクトリおよびファイルの許可の要求に応じて、単純なUNIX許可を再帰的に簡単に設定できます。これを自動的に強制することはできません。

セットに0002のumaskを使用するようにユーザーに伝えることができます。これにより、0775で新しいファイルを作成するのに役立ちます(アプリケーションによって異なります)。しかし、強制ではありません。

私の理解では、ACLはUNIX / Linuxシステムでは継承されません。それらは要求に応じて設定されます。

ファイル/ディレクトリの所有権に関しては、ここではほとんど運がありません。

ファイル/ディレクトリグループの所有権に関しては、ディレクトリセットgidビット(つまり、ディレクトリ上のg + s)を設定することにより、グループ所有権が継承されます。

このような状況で私がやったことは、定期的なルートcronスクリプトを実行して、そのようなディレクトリ内の不適合な権限/所有権を標準にリセットすることです。

別の(推奨されない)プロセスは、これらのファイルで作業するときに同じユーザーIDを使用することです。これは、ユーザーが自分のUIDでシステムにログインし、sudoまたはsuを使用してIDとして実行することで実現できます。これは、特にACLと許可ビットに関しては100%ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.