Traté de cambiar el shell de inicio de sesión.
Así /etc/passwdes 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 zshestá disponible:
$ which zsh
/usr/bin/zsh
De acuerdo, parece lógico reemplazarlo zshpor su ruta completa. ¿Pero cómo puedo hacerlo?
Tengo otro usuario en el sistema ( user), sin embargo, no tiene privilegios de root y sudono 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 rootcuenta.
Mi pregunta es: ¿hay alguna forma, incluso programáticamente, de iniciar un proceso con la rootcuenta 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 ?
-cse ejecuta a través del shell de inicio de sesión del usuario. -sse 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'