Eu tentei mudar o shell de login.
Aqui está a /etc/passwd
aparê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 zsh
está disponível:
$ which zsh
/usr/bin/zsh
Ok, parece lógico substituir zsh
por 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 sudo
nã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 root
conta.
Minha pergunta é: existe alguma maneira, mesmo programaticamente, de iniciar um processo com a root
conta 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. -s
pode 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'