使给定用户的所有进程都可以被任何人杀死

Asl*_*986 15 users not-root-user privileges

在共享服务器上,我希望有一些非常低优先级的用户,这样每当其他用户(也没有 root 权限)需要资源时,他们可以杀死任何低优先级用户的进程。

是否有可能允许这样的事情?

Kus*_*nda 24

给其他用户的权限杀死进程通过低优先级用户

sudo -u lowpriouser /bin/kill PID
Run Code Online (Sandbox Code Playgroud)

用户只能发信号给他们自己的进程,除非他们有 root 权限。通过sudo -usudoers文件中使用具有正确设置的用户,可以假定低优先级用户的身份并终止进程。

例如:

%killers ALL = (lowpriouser) /bin/kill
Run Code Online (Sandbox Code Playgroud)

这将允许该组中的所有用户killers来运行/bin/killlowpriouser

另请参阅sudoers系统手册。


在 OpenBSD 系统上,同样可以通过doas具有类似配置的本机实用程序完成

permit :killers as lowpriouser cmd /bin/kill
Run Code Online (Sandbox Code Playgroud)

然后

doas -u lowpriouser /bin/kill PID
Run Code Online (Sandbox Code Playgroud)

请参阅手册doasdoas.conf


Aln*_*tak 5

您不应该终止进程,如果它们的优先级较低,它们将消耗很少的资源。

要真正将它们设置为低优先级,请手动更改它们的优先级,或者使用autonice我多年前(约 1994 年)为 DEC OSF/1 编写的守护程序,它会寻找长时间运行的作业并随着它们运行的​​时间越长逐渐降低它们的优先级.

编辑有一个名为的包and,为现代 Unices 提供此功能。