hoj*_*oju 7 linux process permissions
我有 userA 和 userB 启动进程:
userA@server:~$ ./some_command.sh &
[1] 30889
Run Code Online (Sandbox Code Playgroud)
然后我希望 userC 能够管理这些进程(挂起、恢复、终止和终止):
userC@server:~$ kill 30889
bash: kill: (30889) - Operation not permitted
userC@server:~$ sudo kill 30889
userC@server:~$
Run Code Online (Sandbox Code Playgroud)
如何在不依赖 sudo 访问的情况下授予 userC 执行此操作的权限?作为最后的手段,我会授予 userC root 权限来执行此操作。
我可以完全控制 userC。一种可能性是将用户 ID 更改为与用户 A 相同,那么用户 B 呢?
更新:
上下文适用于现有的 Web 应用程序。
除非您授予 userC 访问 userA 和 userB 帐户的权限,否则如果不使用 sudo 等授予特殊权限的内容,就无法做到这一点。Linux 内核中没有任何工具可以根据组或访问控制列表授予对进程的访问权限。
但你不应该害怕使用 sudo。您可以将其配置为仅允许特定命令,并且仅允许命令以特定用户身份运行。也就是说,您可以只允许 userA 和 userB 的进程被 userC 杀死,但不允许 userC 杀死其他进程。