使用 sudo 运行命令会产生不同的结果

使用 sudo 运行命令会产生不同的结果

我在 Debian Squeeze 服务器上通过 ssh 与 root 建立连接。如果我执行以下命令:

 /usr/lib/nagios/plugins/check_procs -w 1:1 -c 1:1 -a '/usr/local/freeswitch/bin/freeswitch'

我得到的结果:

PROCS OK: 1 process with args '/usr/local/freeswitch/bin/freeswitch'

如果我执行:

sudo /usr/lib/nagios/plugins/check_procs -w 1:1 -c 1:1 -a '/usr/local/freeswitch/bin/freeswitch'

我得到:

PROCS CRITICAL: 2 processes with args '/usr/local/freeswitch/bin/freeswitch'

这是我的 /etc/sudoers:

Defaults    env_reset
root    ALL=(ALL) ALL
nagios      ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/

但是 sudo 也以 root 身份执行该命令,我得到了另一个结果。怎么会这样?在另一台装有 debian lenny 的机器上,我没有遇到这个问题,两个命令都给出了相同的结果。

答案1

我认为您所看到的是 check_procs 使用的底层‘ps’命令返回的命令行数量的结果。

在 sudo blah...blah 的情况下,整个命令 sudo blah....blah 可能显示为一个进程,也可能只显示一个 blah 进程。

这类似于为什么当您使用管道命令(例如 grep)时,通常必须包含一个命令来摆脱 grep 命令本身。

例如:

     ps -aef | grep -v grep | grep xinetd

相关内容