Linux bash で、権限のないユーザーが特定のディレクトリの内容のみの所有権を取得できるようにする方法はありますか?

Linux bash で、権限のないユーザーが特定のディレクトリの内容のみの所有権を取得できるようにする方法はありますか?

特定のユーザーが、特定のディレクトリのすべての内容の所有者とグループを再帰的に変更できるようにしたいのですが、そのディレクトリのみ変更できるようにしたいです。ディレクトリは、サービスがファイルやサブディレクトリを書き込む、一種の「受信トレイ」です。

現在、管理者がいますsudo chownが、そのユーザーには必要以上の権限を与えずに、移行先の所有者自身が実行することを希望します。元の所有者が「headsman」で、最終的な所有者が「audience」であるとします。どちらのユーザーも同じグループに属していません。

sudo chown -R audience:watchers /usr/files/pathofdir これは正しくありません。なぜなら、audience に chown を使用する無制限の権限を与えたくないからです。私の最初の考えは、/usr/bin/chown と /usr/bin/chgrp へのアクセス許可を持つ「audience」を /etc/sudoers に追加しようとすることでした。しかし、それは権限が大きすぎます。

視聴者専用のスクリプトを書こうと思ったのですが、そのスクリプトに適切な権限を付与する方法などがわかりません。

これを行う良い方法は何ですか?

答え1

引数と all を含む完全なコマンドを で指定できますsudoers。その場合、ユーザーには指定された引数でのみ指定されたコマンドを実行する権限が与えられます。このsudoersエントリにより、問題は解決するはずです。

audience  ALL=/usr/bin/chown -R audience\:watchers /usr/files/pathofdir

ただし、ディレクトリのデフォルトのACLを使用すると問題がより簡単に処理されると思われるため、ACLを確認することをお勧めします。この郵便受け例えば。

答え2

@Lasek は、おそらく ACLS を使いたいのだろうと指摘しました。これは私の場合はうまくいっているようです:

sudo setfacl -RPdm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPdm group:watchers:rwX /usr/files/pathofdir
sudo setfacl -RPm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPm group:watchers:rwX /usr/files/pathofdir

もっと簡潔な構文もあるかもしれませんが、これが私が初めて使ったものですsetfacl

関連情報