多数のユーザーと、含まれるすべてのファイルに対するg+rwx
権限を持つ共有開発ディレクトリを持つグループ(dev
)があるとします。このセットアップは、dev
ユーザーが他のdev
ユーザーによって起動されたプロセスを強制終了できるように十分ですか(プロセスがデフォルトのアクセス許可で開始されたと想定しています)?
たとえば、user1(グループdev
)が所有するファイル/opt/devfolder/bin/foo
にグループID dev
と権限0770があるとします。user2(グループdev
の場合)シェルから「foo」のインスタンスを開始します。user_3(グループdev
)は、それを強制終了できますか?
[編集]
そうでない場合、Sudo
または他の標準的なUNIXユーティリティを使用してこれをどのように実現できますか?
目的の操作を行う最も簡単な方法は、次のように/etc/sudoers
にエントリを作成することです。
%users localhost=(%users) NOPASSWD:/bin/kill
これにより、users
グループのすべてのユーザーがusers
グループの他のユーザーと同じように/bin/kill
を実行できるようになり、パスワードの入力を求められなくなります。これはまさにあなたが求めていたものだと確信しています。
この例では、開発グループのすべてのメンバーが属するusers
という名前のグループが存在すると想定しています。ローカル環境に合わせて、これを変更する必要があることは明らかです。
あなたの問題が何であるかによって、devグループのユーザーが他のユーザーの特定のタイプのプロセスのallを強制終了できるようにする必要がある場合、解決策です。
%users localhost=(%users) NOPASSWD:/bin/killall -u <username>
または
%users localhost=(%users) NOPASSWD:/bin/killall -u <username> Perl
または何でも。あなたはアイデアを得ます。これにより、開発者は特定のユーザーに対して、すべての「Perl」プロセスを強制終了できます。コマンドエイリアスを使用して、アプリの長いリストを簡単に書き出すことができます。また、正規表現を使用することもできます(許可しすぎないように注意してください)。
グループファイルの権限は、実行中のプロセスには適用されません。プロセスを強制終了できるのは、プロセスの所有者だけです。
ただし、制限された方法でユーザーにkillコマンドを許可するようにSudoを構成することを検討する場合があります。
ユーザーにSudo
を使用してプロセスを強制終了することを許可すると、すべてのプロセスを強制終了できます。特定のユーザーのプロセスを強制終了するだけに制限することはできません。