UNIX bash来回切换用户
我正在测试是否可以以user1的身份运行脚本,然后以user2的身份运行sudo,以user的身份执行脚本的一部分,然后再恢复到user1 显然,我的脚本在第一次sudo之后就卡住了,不会执行后续的行。如何解决这个问题 抱歉,因为我对shell脚本编写没有太多经验UNIX bash来回切换用户,bash,unix,sudo,Bash,Unix,Sudo,我正在测试是否可以以user1的身份运行脚本,然后以user2的身份运行sudo,以user的身份执行脚本的一部分,然后再恢复到user1 显然,我的脚本在第一次sudo之后就卡住了,不会执行后续的行。如何解决这个问题 抱歉,因为我对shell脚本编写没有太多经验 #!/bin/bash whoami ls -lrt /myfolder sudo -i -u user2 whoami sftp ${othersvr} <<EOF cd /tgtpath lcd /myfolder
#!/bin/bash
whoami
ls -lrt /myfolder
sudo -i -u user2
whoami
sftp ${othersvr} <<EOF
cd /tgtpath
lcd /myfolder
get -p *.txt
exit
EOF
sudo -i -u user1
whoami
ls -lrt /myfolder
#/bin/bash
哇
ls-轻轨/我的文件夹
sudo-i-u用户2
哇
sftp${othersvr}您应该找到一种更好的方法来做您想做的事情,比如使用s或其他什么
但是,如果您想这样做,请考虑sudo
可以接收命令
sudo -i -u user2 'whoami; ls -lrt /myfolder'
sudo -i -u user1 'whoami; ls -lrt /myfolder'
每次调用sudo
,您都必须退出(我很确定)。祝你好运。在第一次sudo之后,仍然与user2纠缠在一起。在sudo to user2之后的命令没有被执行如果我想要执行的命令是一个sftp,我怎样才能正确地执行呢。我已经更新了下面的示例供您参考,只需创建一个脚本,执行您想要执行的所有步骤(并简化转义),然后从sudo-I-u用户脚本调用它即可