在linux脚本中更改用户

时间:2012-04-19 12:00:50

标签: linux sh

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

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

但我明白了:

x
su: must be run from a terminal
x

感谢您的帮助。

3 个答案:

答案 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;”