Debian

使用 sudo 執行命令會產生不同的結果

  • October 25, 2011

我在 debian 擠壓伺服器上通過 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 的機器上我沒有問題,兩個命令給出相同的結果。

我認為您所看到的是 check_procs 使用的底層“ps”命令返回的命令行數量的結果。

在 sudo blah…blah 的情況下,整個命令 sudo blah….blah 可能顯示為一個程序,也可能只是一個僅帶有 blah 的程序。

這與為什麼當您流水線命令(例如 grep)時,通常必須包含一個命令來擺脫 grep 命令本身。

例如:

    ps -aef | grep -v grep | grep xinetd

引用自:https://serverfault.com/questions/324530