2
更改用户并在Shell脚本中加载整个环境
我在使用我们的新贵脚本时遇到了麻烦,该脚本更改了用户并启动了一些ruby守护进程。 在过去,我只会bash -c "do the business" -l someuser确保使用该-l标志来模拟登录。 到目前为止,这一直很好,我们的ruby进程一直抛出以下错误:require: no such file to load -- rubygems (LoadError)经过调查后,我发现此错误仅在以root用户身份运行脚本时(即,当我sudo su或当被新贵运行时)发生。 我认为这是一个PATH问题,因为当我首先手动设置路径时,它可以解决问题。 有没有办法改变用户并加载整个环境? 我也曾尝试su user -c和sudo。 为了使测试更容易,我正在“扎根”(sudo su)并运行which bundle(捆绑是一件红宝石的东西)。 这是我得到的: sudo -i -u webuser which bundle #=>没有输出 su -l webuser -c which bundle #=>没有输出 sudo su - webuser -c which bundle #=>没有输出 但是以Webuser的身份登录 …