用户 x 运行脚本。现在我想将脚本中的用户更改为用户 y。
#!/bin/sh
whoami
echo password | su y
whoami
但我明白了:
x
su: must be run from a terminal
x
谢谢你的帮助。
这在 bash 脚本中为我工作:
whoami;
sudo su $user << BASH
whoami;
BASH
Su 不能在 Bash 脚本中运行。但是,您可以使用sudo -u <user> <command> &&
。
你可以做:
su - $USER -l -m -c $CMD
-l 提供类似于登录 env 的环境 -m 保留当前环境 -c 运行命令
例如,我也使用它来运行 nohup 命令
su - $USER -l -m -c "nohup $RUN_CMD > "$LOG" 2>&1 >> /dev/null&"