Eu tentei mudar o shell de login.
Aqui está a /etc/passwdaparência da primeira linha (em uma instalação do Debian Wheezy):
rootx:0:0:root:/root:/:zsh
Quando tento fazer login como root:
Cannot execute zsh: No such file or directory
Eu sei que zshestá disponível:
$ which zsh
/usr/bin/zsh
Ok, parece lógico substituir zshpor seu caminho completo. Mas como posso fazer isso?
Eu tenho outro usuário no sistema ( user), no entanto, ele não possui privilégios de root e sudonão está instalado no sistema.
Suponha que, por qualquer motivo (criptografia, acesso físico, ...), não seja possível inicializar em um CD ao vivo para modificar o arquivo.
Eu sei, no entanto, as credenciais da rootconta.
Minha pergunta é: existe alguma maneira, mesmo programaticamente, de iniciar um processo com a rootconta sem iniciar primeiro o shell de logon?
su -c "<commands>") funcionar ... não poderíamos simplesmente usar su -c "/bin/bash"para chegar a uma base de trabalho com o usuário root ?
-cé executado através do shell de login do usuário. -spode ser usado para usar outro shell ... apenas se o shell de login existente for válido ou o invocador for root.

su? ougksu? algo comosu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'