2013-11-14 3 views
0

Я пытаюсь выяснить, где выход следующей команды направлено:Командного выход расположение

Суды -i -u someuser /home/someuser/test.sh

Содержание test.sh сценария:

echo "test" 

Команда вызывается из домашнего каталога другого пользователя.

+0

http://linux.die.net/man/8/sudo - проверьте опцию -i. вы попробовали запустить команду как someuser? это среда, созданная странным образом? – x29a

+0

'echo' просто печатает на стандартный вывод, и ничего здесь не указывает, что он перенаправляется. Если вы не укажете важную информацию, вывод будет на вызывающий пользовательский терминал. – tripleee

+0

Команда ведет себя так, как ожидалось, при запуске как someuser. Я проверил эту команду на своем локальном ПК, и все в порядке. Однако на удаленном сервере это другое. Я заметил эту команду: sudo -i -u someuser /home/someuser/test.sh ничего не печатает. Однако команда sudo -i -u someuser ./test.sh печатает ожидаемый текст 'test'. – user882027

ответ

1

Самый простой способ узнать это - запустить pwd (1) с помощью sudo, хотя я испорчу удовольствие и покажу, что, когда sudo (1) выполняется с помощью переключателя '-i', рабочий каталог будет установлен на эффективный идентификатор пользователя (= независимо от того, что указано в «-u» или «root», когда оно не указано), и без «-i» это будет текущий каталог.

Пример:

[email protected]:~/work/linux-3.11.7$ sudo -i -u games pwd 
[sudo] password for user: 
/usr/games 
[email protected]:~/work/linux-3.11.7$ sudo -u games pwd 
/home/user/work/linux-3.11.7 

Таким образом, в случае, если вы будете перенаправлены вывод Судо (1) в какой-то файл без полного пути указано, что, как вы знаете, где будет создан файл.

Смежные вопросы