3

用户 x 运行脚本。现在我想将脚本中的用户更改为用户 y。

#!/bin/sh
whoami
echo password | su y
whoami

但我明白了:

x
su: must be run from a terminal
x

谢谢你的帮助。

4

3 回答 3

14

这在 bash 脚本中为我工作:

whoami;
sudo su $user << BASH
  whoami;
BASH
于 2013-09-16T23:45:18.157 回答
5

Su 不能在 Bash 脚本中运行。但是,您可以使用sudo -u <user> <command> &&

于 2012-04-19T12:07:47.067 回答
-2

你可以做:

su - $USER -l -m -c $CMD

-l 提供类似于登录 env 的环境 -m 保留当前环境 -c 运行命令

例如,我也使用它来运行 nohup 命令

su - $USER -l -m -c "nohup $RUN_CMD > "$LOG" 2>&1 >> /dev/null&"

于 2013-06-06T10:51:26.310 回答