web-dev-qa-db-ja.com

グループユーザーがお互いのプロセスを強制終了できるUNIXのアクセス許可

多数のユーザーと、含まれるすべてのファイルに対するg+rwx権限を持つ共有開発ディレクトリを持つグループ(dev)があるとします。このセットアップは、devユーザーが他のdevユーザーによって起動されたプロセスを強制終了できるように十分ですか(プロセスがデフォルトのアクセス許可で開始されたと想定しています)?

たとえば、user1(グループdev)が所有するファイル/opt/devfolder/bin/fooにグループID devと権限0770があるとします。user2(グループdevの場合)シェルから「foo」のインスタンスを開始します。user_3(グループdev)は、それを強制終了できますか?

[編集]

そうでない場合、Sudoまたは他の標準的なUNIXユーティリティを使用してこれをどのように実現できますか?

7
maerics

目的の操作を行う最も簡単な方法は、次のように/etc/sudoersにエントリを作成することです。

%users localhost=(%users) NOPASSWD:/bin/kill

これにより、usersグループのすべてのユーザーがusersグループの他のユーザーと同じように/bin/killを実行できるようになり、パスワードの入力を求められなくなります。これはまさにあなたが求めていたものだと確信しています。

この例では、開発グループのすべてのメンバーが属するusersという名前のグループが存在すると想定しています。ローカル環境に合わせて、これを変更する必要があることは明らかです。

9
larsks

あなたの問題が何であるかによって、devグループのユーザーが他のユーザーの特定のタイプのプロセスのallを強制終了できるようにする必要がある場合、解決策です。

%users localhost=(%users) NOPASSWD:/bin/killall -u <username>

または

%users localhost=(%users) NOPASSWD:/bin/killall -u <username> Perl

または何でも。あなたはアイデアを得ます。これにより、開発者は特定のユーザーに対して、すべての「Perl」プロセスを強制終了できます。コマンドエイリアスを使用して、アプリの長いリストを簡単に書き出すことができます。また、正規表現を使用することもできます(許可しすぎないように注意してください)。

3
Allan Jude

グループファイルの権限は、実行中のプロセスには適用されません。プロセスを強制終了できるのは、プロセスの所有者だけです。

ただし、制限された方法でユーザーにkillコマンドを許可するようにSudoを構成することを検討する場合があります。

2
mdpc

ユーザーにSudoを使用してプロセスを強制終了することを許可すると、すべてのプロセスを強制終了できます。特定のユーザーのプロセスを強制終了するだけに制限することはできません。

0
mailq