Executando um comando como um usuário nologin


43

Recentemente, configurei meu servidor para que os usuários 'virtuais' do suPHP não possam fazer login usando este artigo

Meu problema agora é que antes, quando eu corri um rakecomando para o meu aplicativo Ruby on Rails em execução no servidor, eu usei supara ir para www-datae executar o comando de lá - obviamente, eu não posso mais fazer isso por causa da nologin.

Então, como usuário root, como posso executar comandos como outros usuários, mesmo se eles estiverem em processo de digitação?


Uma maneira é lançar um shell para o usuário (especificando explicitamente o shell): sudo -u www-data bashexecutar o seu comando (s) e sair
cyberx86

@ cyberx86 Sua solução funciona bem, você poderia enviá-la como resposta para mim?

Respostas:


50

Uma maneira é iniciar um shell para esse usuário (especificando explicitamente o shell):

sudo -u www-data bash 

Isso iniciará um shell (bash) como o usuário especificado. Você pode executar seu (s) comando (s) e sair (para retornar ao seu shell anterior)


39

Como root, você pode usar su -s /bin/sh $user - a -sopção substitui o shell configurado para o usuário.


1
Isso sempre parece erro para mim.

Funciona muito bem para mim, nunca tive um problema. Quando a execução de scripts com necessidades de sintaxe bash / bin / bash em vez de / bin / sh
ekerner
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.