Traté de cambiar el shell de inicio de sesión.
Así /etc/passwd
es como se ve la primera línea (en una instalación de Debian Wheezy):
rootx:0:0:root:/root:/:zsh
Cuando intento iniciar sesión como root
:
Cannot execute zsh: No such file or directory
Sé que zsh
está disponible:
$ which zsh
/usr/bin/zsh
De acuerdo, parece lógico reemplazarlo zsh
por su ruta completa. ¿Pero cómo puedo hacerlo?
Tengo otro usuario en el sistema ( user
), sin embargo, no tiene privilegios de root y sudo
no está instalado en el sistema.
Suponga que por cualquier razón (encriptación, acceso físico, ...) no puedo arrancar en un CD en vivo para modificar el archivo.
Sin embargo, sí sé las credenciales de la root
cuenta.
Mi pregunta es: ¿hay alguna forma, incluso programáticamente, de iniciar un proceso con la root
cuenta sin iniciar primero su shell de inicio de sesión?
su -c "<commands>"
) funciona ... ¿no podríamos simplemente usarla su -c "/bin/bash"
para llegar a una fiesta que funcione con la raíz del usuario ?
-c
se ejecuta a través del shell de inicio de sesión del usuario. -s
se puede usar para usar otro shell ... solo si el shell de inicio de sesión existente es válido o el invocador es root.
su
? ogksu
? algo así comosu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'