O problema é que suser foi criado com /bin/false como seu shell padrão. Portanto, quando você tenta executar comandos como suser a sudo , o sistema tenta executá-los usando /bin/false/ , que não é um shell real e falha. Você pode definir um shell para suser ou pode especificá-lo na linha de comando quando executar sudo . Como alternativa, você pode usar a opção sudo de -u .
-
Use
-u:sudo -u suser mkdir /home/suser/fooIsso funciona porque, por padrão,
sudousa/bin/bash(ou o que você definiu como padrão$SHELL). Portanto, ele executará um comando comosuser, mas usandobash, para que o comando seja executado corretamente. -
Defina o shell padrão de
suser:sudo chsh suserDigite
/bin/bash(ou o que você preferir) no prompt que será exibido. Agora você deve poder iniciar comandos comosuser:sudo su suser -c "mkdir /home/suser/test" -
Defina o shell explicitamente:
sudo su suser -s /bin/bash -c "mkdir /home/suser/test"