假设我们有一个组 ( 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/kill
users
在此示例中,我假设存在一个名为的组,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
将允许他们终止任何进程。不能限制仅终止特定用户的进程。