Quando você usa a opção -i
de sudo, isso significa que o sudo tentará usar o shell e o ambiente de login designados para esse usuário. Isso será um problema para a conta www-data
, já que essa conta normalmente terá um shell desativado.
root@srv:# getent passwd www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
O que você precisa descobrir é se realmente precisa do ambiente / shell desse usuário. Você não precisa da opção -i
e pode simplesmente executar o comando sem ela. Isso executará o comando com o mesmo tipo de shell que o usuário que está executando o comando.
Então use isso.
sudo -u www-root <command>
Se, por algum motivo, você realmente precisar de -i
, precisará fornecer a essa conta um shell (/ bin / sh, / bin / bash ou seu favorito).