UNIX 权限允许组用户终止彼此的进程

UNIX 权限允许组用户终止彼此的进程

假设我们有一个组 ( dev),其中有许多用户和一个共享的开发目录,并且g+rwx对其中的所有文件都具有权限。此设置是否足以让任何dev用户都可以终止由任何其他用户启动的进程dev(假设该进程以默认权限启动)?

举例来说,假设我们有一个文件,/opt/devfolder/bin/foo所有者是用户1(在组中dev),其组 IDdev和权限为 0770。如果用户2(在组中dev)从他的shell启动“foo”的一个实例,那么用户3(在组中dev)可以终止它吗?

[编辑]

如果没有,我们如何使用sudo或其他一些标准 UNIX 实用程序来实现这一点?

答案1

做你想做的事的最简单的方法是创建一个/etc/sudoers这样的条目:

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

这将允许组中的任何人以组中任何其他用户的users身份运行,并且不会提示输入密码。我很确定这正是您所要求的。/bin/killusers

在此示例中,我假设存在一个名为的组,users您的开发组的所有成员都属于该组。您显然需要修改它以匹配您的本地环境。

答案2

取决于你的问题是什么,如果你需要开发组能够杀死全部那么可能存在解决方案。

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

或者

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

或者其他。你明白了。这将允许开发人员为一个特定用户终止所有“perl”进程。请记住,您可以使用命令别名来简写出长长的应用程序列表,也可以使用正则表达式(注意不要允许太多)

答案3

组文件权限不适用于正在运行的进程。只有进程的所有者才能终止该进程。

但是,您可以考虑配置 sudo 以允许用户以有限的方式使用 kill 命令。

答案4

授予用户终止进程的权限sudo将允许他们终止任何进程。不能限制仅终止特定用户的进程。

相关内容