我想像下面一样运行 pkill 。
sudo pkill -u 11002
Run Code Online (Sandbox Code Playgroud)
我无法多次提供 sudo 密码,因此我想在没有 sudo 用户的情况下运行 pkill 。为此,我将 pkill 复制到名为 bkill 的主目录,然后运行以下命令。
sudo setcap "cap_kill+epi" /home/rajesh/bkill
Run Code Online (Sandbox Code Playgroud)
这将为该二进制文件提供终止功能。但每当我跑步时,我都会收到以下消息。
/home/rajesh/bkill -u 11002
result: 31270
Run Code Online (Sandbox Code Playgroud)
我使用以下命令检查该用户的运行进程。
PS -u 11002
PID TTY TIME CMD
340 pts/26 00:00:00 ncserver
Run Code Online (Sandbox Code Playgroud)
这表明进程 pid 340 仍在运行。我认为 cap_kill 不起作用。
所以我尝试了一种不同的方法。我已使用以下命令授予 sudo 访问权限。
sudo chown root /home/rajesh/bkill
sudo chmod u+s /home/rajesh/bkill
Run Code Online (Sandbox Code Playgroud)
即使这样也行不通。
有人可以帮我解决这个问题吗?