我想像下面这样运行 pkill。
sudo pkill -u 11002
我无法多次提供 sudo 密码,因此我想在没有 sudo 用户的情况下运行 pkill。为此,我将 pkill 复制到主目录中,命名为 bkill,然后运行以下命令。
sudo setcap "cap_kill+epi" /home/rajesh/bkill
这将赋予该二进制文件终止功能。但每次运行时我都会收到以下消息。
/home/rajesh/bkill -u 11002
result: 31270
我使用以下命令检查该用户正在运行的进程。
ps -u 11002
PID TTY TIME CMD
340 pts/26 00:00:00 ncserver
这表明进程 pid 340 仍在运行。我猜想 cap_kill 不起作用。
所以我尝试了不同的方法。我使用以下命令授予了 sudo 访问权限。
sudo chown root /home/rajesh/bkill
sudo chmod u+s /home/rajesh/bkill
即使这样也行不通。
有人能帮我解决这个问题吗?
答案1
为什么你不授予自己无需密码即可运行 pkill 的权限:
sudo visudo
添加
rajesh ALL = NOPASSWD: /usr/bin/pkill
您仍然需要sudo pkill
,但不必输入密码。