2016-02-10 4 views
2

У меня есть пользователь «Чаде»Изменить пользователь из Баша скрипта

Я вход в Linux машину с пользовательским «сервером»

я создаю скрипт и попытаться добавить ниже команды

sudo su -s /bin/bash chad 

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

Ниже мой сценарий

#!/bin/bash 

    exec /bin/su -s /bin/bash chad - << 'EOF' 

    echo "pwd" 
    pwd 

    cd /home/chad/py2.0/test/py_it/ 


    echo "git branch" 
    git branch 



    read -p "Are you sure about branch? (yes/no)" reply 

    choice=$(echo $reply|sed 's/\(.*\)/\L\1/') 

    if [ "$choice" = 'yes' ] 
    then 
    echo "Welcome you selected yes, wait for 3 seconds to get output"; 
    sleep 3; 
    echo "git pull for py2.0"; 
    "git pull origin integration/py2.0"; 

    elif [ "$choice" = 'no' ] 
    then 

    echo "You selected 'no', hence exiting in 3 seconds"; 
    sleep 3 
    exit 0 
    else 
    echo "invalid answer, type yes or no"; 
    fi 
    EOF 

Ниже Выход

git branch 
    * integration/py2.0 
    master 
    invalid answer, type yes or no 
+0

Не работает ли это? – 123

+0

Если это не работает, попытались ли вы экспортировать пользователя в свой скрипт? 'export $ USER = chad', или вы можете использовать' setenv' – SriniV

ответ

3

Вы должны добавить следующую строку в скрипте:
exec sudo -u chad /bin/sh - << 'EOF'

Все команды после этой линии будет под пользователем chad

Проверьте это:

id 
exec sudo -u chad /bin/sh - << 'EOF' 
id 
id 
id 
EOF 
+0

не работает. Когда я использую exec sudo -u/bin/bash chad - << eof он меняет пользователя, но никакие другие команды не работают в скриптах –

+0

не могли бы вы дать мы больше деталей – Arseniy

+0

, например вставка: идентификатора ID идентификатора сразу после команды – Arseniy

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