我必须以不同于我当前登录的用户的身份执行命令列表。
我尝试了下面的脚本,它工作得很好,但是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
上失败。您可以通过更改访问权限来解决此问题。