从bash脚本更改用户
我有一个用户“chad” 我正在使用用户“server”登录linux计算机 我正在创建一个脚本,并尝试添加下面的命令从bash脚本更改用户,bash,shell,Bash,Shell,我有一个用户“chad” 我正在使用用户“server”登录linux计算机 我正在创建一个脚本,并尝试添加下面的命令 sudo su -s /bin/bash chad 因此,我可以进入用户chad并从该脚本执行其余命令 我该怎么做 下面是我的剧本 #!/bin/bash exec /bin/su -s /bin/bash chad - << 'EOF' echo "pwd" pwd cd /home/chad/py2.0/test/py_i
sudo su -s /bin/bash chad
因此,我可以进入用户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
您必须在脚本中添加以下行:
exec sudo-u chad/bin/sh-不起作用吗?如果不起作用,您是否尝试将用户导出到脚本中export$USER=chad
或者您可以使用setenv
不工作。当我使用exec sudo-u/bin/bash chad时,您能否提供更多详细信息,例如在commandScript=#之后插入:id/bin/bash exec su-s/bin/bash chad-output=sudo./test.sh./test.sh:第35行:警告:此处第3行的文档由文件结尾分隔(通缉eof')pwd git branch*集成/py2.0主bash:line 14:cho:未找到命令bash:line 15:预期的条件二进制运算符bash:line 15:附近的语法错误
^[Yy]$'bash:第15行:`if[=~^[Yy]$]'
git branch
* integration/py2.0
master
invalid answer, type yes or no
id
exec sudo -u chad /bin/sh - << 'EOF'
id
id
id
EOF