ZSH supprimé, impossible de se reconnecter

14

J'ai donc installé zshet je n'ai pas aimé. donc je l'ai faitapt-get remove zsh

À partir de ce moment, je ne peux pas me reconnecter, je clique sur mon utilisateur .. puis il revient simplement à l'écran de connexion. Je ne peux me connecter qu'avec le Guest session.

Je pense que le problème est dû au fait que le shell defualt sur mon utilisateur est zsh et qu'il n'existe plus.

Comment puis-je le réinstaller à partir de la session invité de modifier le shell par défaut de mes utilisateurs pour l'utilisateur invité?

Même en essayant de me connecter avec ctrl+alt+f2/6je tape mon utilisateur et mon mot de passe. la connexion est un succès, mais je suis renvoyé à la connexion.

Des idées?

tubu13
la source
Après une seconde réflexion, le problème des obus n'avait probablement aucune incidence. Aucun shell utilisateur n'est généré après le chargement du DM avant le chargement du DE (et cela n'aurait probablement pas été un problème non plus). Et je ne suis pas sûr non plus de la boucle ~/.bashrc- ~/.profile: j'ai testé à la fois la purge du shell de l'utilisateur et la création de la boucle ~/.bashrc- ~/.profiledans une machine virtuelle et j'ai toujours pu me connecter via LightDM, même si je n'ai pas pu me connecter via la console avec la boucle ~/.bashrc- ~/.profile(mais quand même, LightDM a plutôt fonctionné). Dans tous les cas, vous devez refuser ma réponse.
kos

Réponses:

16

L'utilisateur invité n'est pas autorisé à exécuter sudoou pkexec, qui (sauf si vous êtes root, ce que vous n'êtes pas) sont nécessaires pour changer le shell d'un autre utilisateur.

Donc, la seule solution qui m'est venue est de démarrer dans un shell root et de changer le shell de l'utilisateur en root:

chsh -s /bin/bash user

userest le nom d'utilisateur de votre utilisateur.

kos
la source
On se demande comment résoudre ce problème lorsque le shell de root est également zsh ... LiveCD?
Kevin
@Kevin Cette réponse est probablement fausse. Le shell n'a aucune incidence sur l'utilisateur non connecté au DE, car aucun shell utilisateur n'est généré après le chargement du DM avant le chargement du DE. Je ne sais pas s'il existe de meilleures options au cas où l'on parviendrait à se verrouiller de cette façon, mais je suppose que l'utilisation d'un Live DVD et la modification /etc/passwdmanuelle devraient fonctionner.
kos
4
@Kevin Peut-être avec une option de démarrage comme init=/bin/bash.
user253751
2

Connectez-vous en tant que root ou démarrez dans le shell racine et modifiez l'entrée du shell dans / etc / passwd sur "/ bin / sh". Ensuite, vous pouvez vous reconnecter en tant que vous-même et changer les choses à partir de là.

Ted Cahall
la source
1

Donc, en plus de ce que @kos a dit ..

Pour une raison quelconque, j'ai ajouté source ~/.profileà mon fichier .bashrc (je ne sais pas pourquoi .. lisez-le quelque part) Et mon .profilefichier a chargé ce .bashrcqui provoque un chargement circulaire !.

La suppression de la source..solution + @kos a fait l'affaire!

tubu13
la source
Les postes de travail Linux ont en quelque sorte brisé le paradigme .profile-for-env-vars et one-per-login stuff / .bashrc-for-aliases. Puisque vous avez besoin env vars parfois défini pour des choses au travail, je ne vois pas pourquoi on pourrait penser qu'il est une bonne idée de source ~/.profilepartir .bashrc. (La connexion à une session de bureau peut ne pas générer votre profil pour définir des variables d'environnement pour tous les enfants de la session.)
Peter Cordes
1

Pour ceux qui ont le problème de la désinstallation de zsh. Essayez ceci, suivez les étapes.

  1. Connectez-vous en tant que root via le mode de récupération. Vous pouvez voir comment le faire à cette réponse. /ubuntu//a/92558/104228
  2. Après vous être connecté en tant que root. Ouvrez /etc/passwd. Recherchez votre entrée utilisateur et passez de /usr/bin/zshà /bin/sh. Enregistrez le fichier et redémarrez comme étape normale. Vous devez vous connecter normalement.
  3. Après avoir redémarré votre ubuntu. Vous trouverez votre coque si mauvaise. Exécutez cette commande chsh -s /bin/bash. Tapez votre mot de passe et entrez. Votre coquille sera belle en ce moment.
  4. Tapez sudo apt-get purge --auto-remove zshpour nettoyer un autre package de dépendance de zsh.

J'espère que cette étape en aidera une autre qui a le même problème que moi.

PS. Mon anglais n'est pas la langue principale. J'espère que vous pouvez me comprendre.

EThaizone Jo
la source