LINUX.ORG.RU

Запустить приложение от имени другого пользователя по ssh

 ,


0

1

Приложение устанавливается если запустить скрипт на самом сервере. Если запускать скрипт по ssh, выполняются все команды кроме установки glassfish.

Сам скрипт:

#!/bin/bash

cat > node.sh <<EOF
#!/bin/bash
#some script
rm -rf /home/openesb/glassfish

su openesb -s /bin/sh -c '/home/openesb/install/glassfish-installer-linux.sh --silent --state /home/openesb/install/state.xml;'
su openesb -c 'mkdir /home/openesb/backup
echo -e 'AS_ADMIN_PASSWORD=onepasswd\nAS_ADMIN_MASTERPASSWORD=changepasswd' > /opt/openesb/adminpassword.txt
/opt/openesb/bin/asadmin create-node-agent --user admin --passwordfile /opt/openesb/adminpassword.txt --host das09.example.kz node348
/opt/openesb/bin/asadmin start-node-agent --user admin --passwordfile /opt/openesb/adminpassword.txt'

#some script
exit 0
EOF

ssh root@node348.example.kz 'bash -s' < node.sh

exit 0



Последнее исправление: Nurzhan_B (всего исправлений: 1)

Во втором случае не указан шелл (-s /bin/sh), если шелл пользователя opensb /sbin/nologin то ничего не произойдет.

А ещё: лучше разделить команды точкой с запятой

И вообще — пора бы закрывать доступ к руту через ssh, ато сейчас почувствуется ЛОР-эффект на этой вашей ноде.

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

Не работает команда

su openesb -s /bin/sh -c '/home/openesb/install/glassfish-installer-linux.sh --silent --state /home/openesb/install/state.xml;'
Остальные выполняются верно

Nurzhan_B
() автор топика
Ответ на: комментарий от Nurzhan_B

Ну тогда даже не знаю. Может сам шелл на консоль что-нибудь значимое выводит?

/home/openesb/install/state.xml

Этот файлик существует?

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

Файл существует. После запуска скрипта, команда ничего не отображает. Остальные команды выдают ошибку что не установлен glassfish.

KennyMinigun, спасибо за ответы.

Nurzhan_B
() автор топика
Ответ на: комментарий от KennyMinigun

Надо было вызывать оболочку, как оболочку регистрации пользователя в системе. Параметр -l

/bin/su -l openesb -s /bin/sh -c 'glassfish-installer-linux.sh --silent --state state.xml'

Nurzhan_B
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.