J'ai essayé de changer le shell de connexion.
Voici à quoi ressemble la première ligne /etc/passwd(sur une installation Debian Wheezy):
rootx:0:0:root:/root:/:zsh
Lorsque j'essaye de me connecter en tant que root:
Cannot execute zsh: No such file or directory
Je sais zshest disponible:
$ which zsh
/usr/bin/zsh
D'accord, il semble logique de remplacer zshpar son chemin complet. Mais comment faire?
J'ai un autre utilisateur sur le système ( user), mais il n'a pas de privilèges root et sudon'est pas installé sur le système.
Supposons que pour une raison quelconque (cryptage, accès physique, ...) je ne peux pas démarrer sur un CD live pour modifier le fichier.
Je connais cependant les informations d'identification du rootcompte.
Ma question est: existe-t-il un moyen, même par programme, de lancer un processus avec le rootcompte sans lancer son shell de connexion au préalable?
su -c "<commands>") fonctionne ... ne pourrions-nous pas alors simplement utiliser su -c "/bin/bash"pour accéder à un bash de travail avec la racine utilisateur ?
-cest exécutée via le shell de connexion de l'utilisateur. -speut être utilisé pour utiliser un autre shell ... uniquement si le shell de connexion existant est valide ou si l'invocateur est root.

su? ougksu? quelque chose commesu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'