Как я могу переключиться на пользователя jenkins в середине скрипта ssh? - PullRequest
3 голосов
/ 08 августа 2011

Я запускаю

ssh root@myhost "sh -x" < myremotecommands.sh

, где myremotecommands.sh содержит:

#!/bin/sh
sudo su
apt-get update
sudo su -l -p jenkins
whoami

, однако команда whoami возвращает root.Мне нужно быть пользователем jenkins для выполнения некоторых установок.

Как я могу переключиться на пользователя jenkins в середине скрипта?

Ответы [ 3 ]

6 голосов
/ 12 марта 2014

Вам просто нужно использовать команду "su" с аргументом "-s / bin / bash".Это необходимо, потому что пользователь jenkins не должен был использоваться в интерактивном режиме, поэтому он не определил bash.

su jenkins -s /bin/bash

После этого команда whoami сообщит о вас как о пользователе jenkins..

2 голосов
/ 08 августа 2011

Используйте $USER.Это даст вам имя пользователя, который вы вошли как.Whoami возвращает пользователя, с которым вы сейчас работаете.

1 голос
/ 08 августа 2011

Решенная проблема:

#!/bin/sh
sudo su
apt-get update
su jenkins <<HERE
whoami
echo usr=$USER
HERE

выдаст:
jenkins
usr = root

Источник: http://www.daniweb.com/software-development/shell-scripting/threads/14498

...