Estou tendo alguns problemas com um script inicial que altera o usuário e inicia alguns processos do daemon de ruby.
No passado, eu simplesmente bash -c "do the business" -l someuser
certificava-me de usar a -l
bandeira para emular um login.
Isso funcionou muito bem até agora, nosso processo ruby gerou o seguinte erro: require: no such file to load -- rubygems (LoadError)
após alguma investigação, encontrei esse erro apenas quando executo o script como usuário root, ou seja (quando eu sudo su
ou quando estou sendo executado pelo iniciante).
Acho que esse é um problema do PATH, pois quando eu defino manualmente o caminho, ele resolve o problema.
Existe uma maneira de mudar de usuário e carregar todo o ambiente?
Eu também tentei su user -c
e sudo
.
Para facilitar o teste, eu estou " sudo su
rodando " ( ) e executando which bundle
(o pacote é uma coisa de rubi).
Aqui está o que eu recebo:
sudo -i -u webuser which bundle
# => sem saídasu -l webuser -c which bundle
# => sem saídasudo su - webuser -c which bundle
# => sem saída
Mas ssh'd como usuário da web
which bundle
# => / opt / ruby / bin / pacote
/etc/profile
~/.bash_profile
~/.bash_login
e ~/.profile
. Para shells de login, o bash os avalia na ordem especificada.
su - user -c
?