Et dans un tty pas moyen non plus ? Sinon oui il y a la solution du live-cd.
edit : je n'avais pas vu la partie traitant de grub. Pour obtenir un shell, tu peux mettre un 3 ou un 1 à la fin de la ligne pour changer le runlevel. Mais pourquoi ne pas faire un C-A-F1 par exemple pour obtenir un tty ?
Mmh, je suppose que non, ça ne marche pas non plu, sans son shell de référence...
C'est pour ça, avec le Live CD tu pourras réécrire dans les fichiers qui vont bien, car je ne suis même pas sur qu'un chroot fonctionne dans ces conditions !!
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Ben tu vois je m'en vais tester pour voir. Je pensais (et pense) que de démarrer en init 3 ne va pas bloquer même si mon user n'as pas de shell convenable renseigné. À priori root pourra tout de même se logger.
Si tu as accès à un tty :
- tu te logges en root
- tu édites le fichier /etc/passwd
- à la ligne qui correspond à ton user la fin sera /bin/zsh toi tu mets /bin/bash
- tu sauvegardes le fichier
- tu te «délogges»
Ensuite ça devrait marcher : tu pourras te logger avec ton user.
@ Mr_Men > Oui je suis curieux... parce-que pour moi, quelque soit la couche sur laquelle tu travailles, ton système à besoin de savoir comment interpreter les commandes que tu lui passes... donc sans shell (interpréteur de commandes) ça me parait difficile !!
@ snoogy > démarre sur le live cd, ensuite tu montes ta partition root ("/") dans un répertoire ("/mnt" par exemple...) ensuite tu edites ton fichier (je ne sais pas si /etc/passwd suffit) . Mais Attention ! Le chemin du fichier qui t'interesses est désormais "/mnt/etc/passwd" !! et là, en face de ton user (et peut-être de root), tu remplaces /bin/zsh par /bin/bash .
tu démontes la partition et tu reboot . Là tu devrais à nouveau avoir accès à ta console et à un "pacman -Syu zsh" !!
grillé !!
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
@ widapit
Ben je viens de tenter j'ai mis /bin/blabla dans mon /etc/passwd et j'ai démarré en init 3 et j'ai démarré.
( et j'ai fait la même chose avec un init 5 puis tty)
Peut être qu'on s'est mal compris : pour moi ensuite il faut se logger en root, pas avec son user…
Parce que si c'est possible de se logger en root (et si on accès à la machine physique, ça me parrait bizarre
de pouvoir bloquer le login root en tty), ça fonctionne : j'ai réparer ma machine sans live-cd.
Edit : et j'ai pas pensé non plus que ça pouvait être sur root le soucis dans /etc/passwd, donc dans ce cas live-cd !
snoogy a écrit :La j'aimerai editer l'entrée Grub pour y ajouter init=/bin/sh mais je n'y ai pas acces non plus
Les options de démarrage sont indépendantes de ça, tu dois pouvoir éditer au chargeur de démarrage (quand grub, ou peu importe le chargeur de démarrage, se lance).
«The following statement is not true. The previous statement is true.»
Dans le mien voilà la ligne qui correspond à mon user. Je ne sais pas si le «:blabla:» que j'ai abrégé en :: est utile, mis pour certains user c'est vide. Tente d'ajouter le : supplémentaire avant ton /home/shadow.
Tu ne peux pas faire «e» quand tu es sur la première entrée grub ?
Edit : Tu es sûr de ton mot de passe root ? si ce n'est pas le cas reprend un live-cd et tu fais un chroot. Ensuite avec passwd tu pourras changer ce mot de passe.
Dernière modification par MrMen le ven. 27 avr. 2012, 19:37, modifié 1 fois.