如何以不同的用户身份运行linux命令列表

时间:2014-08-16 01:05:18

标签: linux shell unix ubuntu

我必须以与我当前登录的用户不同的用户执行命令列表。 我尝试了下面的脚本,它工作正常,但捆绑安装卡住了,并没有出来。

sudo -u maneesh bash -c : && RUNAS="sudo -u maneesh"
$RUNAS bash<<_
cd /opt/maneesh/

unicorn_config="/opt/maneesh/config/unicorn.rb"

bundle install

bundle exec unicorn_rails -D -p 9001  -c $unicorn_config

_

任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

为了以不同的用户身份运行命令,您只需使用逗号点击列出命令并以bash模式运行它们:

sudo -u maneesh bash -c 'cd /opt/maneesh/; unicorn_config="/opt/maneesh/config/unicorn.rb"; bundle install; bundle exec unicorn_rails -D -p 9001  -c $unicorn_config'

或者您只需编写一个shell脚本:

list.sh (或其他名称):

cd /opt/maneesh/
unicorn_config="/opt/maneesh/config/unicorn.rb"
bundle install
bundle exec unicorn_rails -D -p 9001  -c $unicorn_config

以另一个用户身份运行:

sudo -u maneesh bash list.sh

我认为您的脚本可能在只有指定用户有权访问的cd /opt/maneesh上失败。您可以通过更改访问权限来解决此问题。