用户x运行脚本。现在我想将脚本中的用户更改为User y。
#!/bin/sh
whoami
echo password | su y
whoami
但我明白了:
x
su: must be run from a terminal
x
感谢您的帮助。
答案 0 :(得分:7)
这对我来说是一个bash脚本:
whoami;
sudo su $user << BASH
whoami;
BASH
答案 1 :(得分:5)
Su无法在Bash脚本中运行。但是,您可以使用sudo -u <user> <command> &&
。
答案 2 :(得分:-2)
你可以这样做:
su - $ USER -l -m -c $ CMD
-l提供类似于登录环境的环境 -m保留当前环境 -c运行命令
e.g。我用它来运行nohup命令
su - $ USER -l -m -c“nohup $ RUN_CMD&gt;”$ LOG“2&gt;&amp; 1&gt;&gt; / dev / null&amp;”