无需 sudo 权限运行 pkill

Raj*_*rri 1 permissions command-line bash 14.04

我想像下面一样运行 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)

即使这样也行不通。

有人可以帮我解决这个问题吗?

gle*_*man 5

为什么不授予自己在没有密码的情况下运行 pkill 的权限:

sudo visudo
Run Code Online (Sandbox Code Playgroud)

添加

rajesh ALL = NOPASSWD: /usr/bin/pkill
Run Code Online (Sandbox Code Playgroud)

您仍然需要sudo pkill,但不必输入密码。