Я подключаюсь к root через ssh на сервере debian squeeze. Если я выполню команду:
/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 у меня нет проблемы, обе команды дают одинаковый результат.
Я думаю, что то, что вы видите, является результатом того, что объем командной строки возвращается базовой командой ps, которая используется check_procs.
В случае sudo blah ... blah возможно, что вся команда sudo blah .... blah отображается как один процесс, а также просто как один процесс.
Это похоже на то, почему, когда вы используете конвейерные команды, такие как grep, обычно нужно включать команду, чтобы избавиться от самой команды grep.
Например:
ps -aef | grep -v grep | grep xinetd