SUDOERSを介して特定のディレクトリで実行されているコマンドを制限する方法は?

SUDOERSを介して特定のディレクトリで実行されているコマンドを制限する方法は?

ユーザーがシステム上のすべてのファイルまたはディレクトリからchownコマンドを実行できるように、sudoersファイルを介してsudoを設定できます。しかし、私はそのディレクトリにあるファイルに対してこれらのコマンドを実行する権限chmodだけをユーザーに与えたいと思います。/var/www/html

ユーザーが事前に指定されたディレクトリでのみ実行できるように特権コマンドを制限する方法は?

例: 次のコマンドはindex.htmlファイルに 777 権限を付与します。

sudo chmod 777 /var/www/html/index.html

今2つのことをしたいと思います。

  1. sudoユーザーが内部chmodで実行されるように制限するchown/var/www/html

  2. ユーザーがシステムの他の場所でこれらのコマンドを実行することを禁止します(たとえば、または/var/wwwでコマンドを実行することはできません/var/ftp)。

ベストアンサー1

あなたが尋ねる質問は不可能ではなくても難しいです。アプリケーションを特定のディレクトリ内のファイルに制限しても、chown誰かchmodがまだシンボリックリンクを渡して目的の場所のファイルに影響を与える可能性があります。

幸いなことに、現在やろうとしていることが実際の問題を解決する正しい方法ではない可能性が高く、動作する他の方法があります。

通常、ファイルを作成および変更するために追加の権限を必要とするユーザーはグループに追加されます/var/www(通常、www-dataサイトの各部分に異なるグループがある可能性があります)。 setgid ディレクトリでグループ所有権を使用できます。グループ内の誰もがディレクトリに書き込むchgrp www-data /var/www/html; chmod g+ws /var/www/htmlことができ、ディレクトリに作成されたファイルはファイルを作成したユーザーのデフォルトグループではなくそのグループが所有します。しかし、これはあまり柔軟ではありません。www-data/var/www/htmlwww-data

あなたがしなければならないことが決まっていますアクセス制御リストの場合は、/var/wwwまずACLが有効になっていることを確認してください。開いたファイルシステムは、/var/wwwこのオプションを使用してマウントする必要があります。aclバラよりディレクトリ内のすべての新しいファイルがグループからアクセスできるようにする助けを求める。 ACLユーティリティ(getfaclおよびsetfacl)もインストールします。次に、/var/www/htmlその権限が必要なユーザーにツリーに対する追加の権限を付与します。ユーザー固有の ACL を設定できますが、通常、ファイルシステムの一部に対して同じ権限を持つユーザーをグループに配置し、そのグループの ACL を設定する方が簡単です。たとえば、グループのユーザーがhtml-writers次のツリーに対する読み取りおよび書き込みアクセス権を持っている必要がある場合/var/www/html

setfacl -d -m group:html-writers:rwx /var/www/html
setfacl -m group:html-writers:rwx /var/www/html

おすすめ記事