2014-02-18 10 views
4

У меня есть два файла:Запуск сценария оболочки внутри другого сценария оболочки с другим пользователем

one.sh

echo "hello" 
su - oracle -c "sh /tmp/two.sh" 
echo "good bye" 

two.sh

echo "bla bla bla" 

я хочу для запуска «one.sh» как «root» и см. этот вывод:

hello 
bla bla bla 
good bye 

Как это возможно?

+0

вы хотите войти в систему в качестве другого пользователя от Баш скрипт? – MLSC

+0

Да, также хочу получить выход оттуда. – AloneInTheDark

+1

try: 'su - oracle -c/tmp/two.sh' и сказать, что вывод – MLSC

ответ

1

Первый набор chmod +x к вашим скриптам

попробовать:

echo "hello" 
su - oracle -c /tmp/two.sh 
echo "good bye" 
+0

Мне не нужен пароль при регистрации от пользователя root от oracle. – AloneInTheDark

+0

Хорошо, как вы видели верхнюю часть моего ответа? – MLSC

+0

Да, это работает пока. – AloneInTheDark

2

В строке

su - oracle -c "sh two.sh" 

переводчик не знает путь файла "two.sh".

Попробуйте с абсолютным путем ... (например, ш /tmp/two.sh ")

Итак:.

[email protected]:/tmp# ./one.sh 
hello 
bla bla bla 
good bye 

UPDATE

Пожалуйста, проверьте также, что" sh "может быть найден пользователем oracle ... В противном случае укажите абсолютный путь для« sh », тоже ...

+0

Я уже пробовал этот путь, но он не работал. также я сожалею, что не упомянул об этом в вопросе. Я отредактировал его. моя проблема в том, что когда я запускаю этот скрипт, я не вижу «bla bla bla» в моей консоли. – AloneInTheDark

+0

Странно, это работает на меня ... – MarcoS

+0

Очевидно, что комментарии в оболочке должны начинаться с «#», «// эта команда не показывает мне какой-либо вывод» является незаконным комментарием, а создает синтаксическую ошибку ... :-) – MarcoS

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