我必须以不同于我当前登录的用户的身份执行命令列表。
我尝试了下面的脚本,它工作得很好,但是bundle安装被卡住了,没有出来。

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

_
任何帮助都将不胜感激

最佳答案

为了以不同的用户身份运行命令,您可以简单地用逗号点列出Comand并在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上失败。您可以通过更改访问权限来解决此问题。

10-01 07:55