web-dev-qa-db-fra.com

Boucle de connexion 14.04 mais le compte invité est accessible

Après la mise à niveau de la version 13.10 à la version 14.04, ce qui a bien fonctionné, je ne peux plus accéder à la connexion car celle-ci revient en boucle. Compte invité fonctionne bien. Je peux me connecter à la console en appuyant sur Ctrl+Alt+F1 en utilisant username et password. Pas sûr de ce qui cause le problème.

Mise à jour:

  • La carte vidéo est N9500GT

  • Essayé chown username:username .Xauthority mais maintenant obtenir seulement écran de démarrage à la connexion avec mot de passe. La même chose se passe dans GDM.

  • Aussi essayé Sudo mv .Xauthority .Xauthority.bak pas de changement.

  • Essayé cat ~/.xsession-errors mais un message qui commence par ne peut pas enregistrer les répertoires utilisateur-dirs.dirs, puis donne plus de msgs et d'arrêts.

Comment voir ce qui est dans le fichier .xsession-errors.

2
user270904

Comme je rencontrais la boucle de connexion il y a deux jours, j'ai pensé que je devrais partager. Quoi qu'il en soit, ceci est destiné aux personnes novices sous Linux.

En recherchant une solution dans d'autres threads, vous constaterez qu'il existe une solution dominante: les privilèges d'accès aux deux fichiers, .Xauthority et .IDEauthority.

Comment savoir si vous "possédez" ces fichiers?

Connectez-vous en tant qu'invité, ce que vous avez probablement déjà fait pour utiliser Internet.

Ouvrez un terminal de connexion avec Ctrl + Alt + F2ou bien + F3, + F4et ainsi de suite jusqu'à F6.

Ctrl + Alt + F7 vous ramène à votre bureau, de sorte que vous pouvez basculer.

(Je vais utiliser la version 14.04 d’Ubuntu sur un ASUS-S400CA.) Vous verrez quelque chose comme:

Ubuntu 14.04.2 ASUS-S400CA tty2
ASUS-S400CA login:

Tapez votre nom d'utilisateur. (Votre nom d'utilisateur correspond au pseudo que vous avez choisi lors de l'installation et non à votre nom complet que vous pouvez voir sur votre écran de connexion actuel.), Puis tapez votre mot de passe.

Ubuntu 14.04.2 ASUS-S400CA tty2
ASUS-S400CA login: yourusername
Password:

Vous devriez maintenant voir:

yourusername@ASUS-S400CA:~$

Si votre boucle de connexion est due à des privilèges d'accès manquants pour les fichiers mentionnés précédemment, nous pouvons le vérifier comme suit:

ls  -ld  ~/.*authority

Si vous obtenez alors

-rw------- 1 root root 2015 May  24 12:38 .ICEauthority
-rw------- 1 root root 2015 May  24 12:38 .Xauthority

au lieu de

-rw------- 1 yourusername yourusername 2015 May  24 12:38 .ICEauthority
-rw------- 1 yourusername yourusername 2015 May  24 12:38 .Xauthority

vous devez utiliser la commande chown pour récupérer vos privilèges d'accès:

Sudo  chown  yourusername:yourusername  ~/.Xauthority

et si nécessaire la même chose pour .IDEauthority. Notez que vous devrez vérifier le résultat à nouveau avec la commande ls. Aucun message d'erreur n'est un bon signe, cependant.

Votre shell ne reconnaît aucune des commandes que vous tapez?

Cela pourrait être la cause principale de la boucle de connexion car login n'est lui-même qu'une commande.

Comment utiliser les commandes dans ces circonstances?

Le shell vous fournit deux informations: premièrement, la commande n'est pas accessible. Deuxièmement, il se trouve dans, par exemple.

/usr/bin

Dans ce cas, le code mentionné ci-dessus ressemble - en fonction de l'emplacement de "l'exécutable" de la commande dans votre système - quelque chose comme ceci:

/usr/bin/ls -ld ~/.*authority
/usr/bin/Sudo  /bin/chown   yourusername:yourusername   ~/.Xauthority
/usr/bin/Sudo  /bin/chown   yourusername:yourusername   ~/.IDEauthority

La raison pour laquelle votre invite de commande (shell, terminal, ligne de commande) reconnaît et exécute des commandes - y compris la commande de connexion - est due au fait que les chemins d'accès à leurs répertoires, tels que/usr/bin,/bin,/sbin, etc. enregistré dans un fichier. Là, ils sont donnés comme valeur à une variable appelée PATH. (Pour des explications faciles à comprendre sur les conditions de Linux, consultez linfo.org. Dans ce cas linfo.org/path_env_var.html )

Pour vérifier quels chemins sont enregistrés dans PATH, tapez

echo $PATH

ou sa commande équivalente avec une structure de répertoire.

Cela vous donnera probablement quelque chose comme

/usr/local

Cependant, cela devrait ressembler à:

/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/:/usr/local/bin:/usr/local/sbin

Les différents répertoires entre les deux points peuvent être organisés dans n'importe quel ordre.

Pour les sauvegarder temporairement et pouvoir utiliser les commandes, tapez

export PATH=$PATH:/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/:/usr/local/bin:/usr/local/sbin

Pour rendre ces modifications permanentes, vous devez l’enregistrer dans le fichier correspondant, dans lequel votre variable PATH est définie.

Selon votre type de shell de connexion, il peut s’agir d’un fichier différent, car différents shells de connexion lisent d’abord certains fichiers. Pour connaître le shell que vous utilisez, tapez echo $Shell dans votre ligne de commande. Il est fort probable que vous récupériez /bin/bash de toute façon. (En outre, les indications données par le terminal sur l'emplacement des commandes ont probablement commencé par -bash.) (Pour plus d'informations, consultez Quel est le meilleur moyen agnostique distro/Shell de définir des variables d'environnement? et Différence entre Shell de connexion et Shell autre que de connexion/46856 # 46856 )

Si votre shell est bash, l’option la plus simple est d’éditer votre fichier .profile dans votre répertoire personnel ~, ce qui équivaut à /home/yourusername. Si vous avez temporairement sauvegardé vos répertoires dans vos commandes, vous pouvez ouvrir ce fichier en tapant

gedit ~/.profile

Cela ouvre le fichier avec l'éditeur de texte respectif gedit. (Juste au cas où vous n'auriez pas gedit pour une raison quelconque, utilisez la commande aptitude ou apt-get en combinaison avec Sudo et installez gedit ou tout éditeur de texte de votre choix: Sudo apt-get install gedit.)

À la fin de ce fichier, vous trouvez probablement quelque chose comme:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

PATH=usr/local

Cependant, PATH doit être défini comme décrit ci-dessus. Ajoutez simplement les autres répertoires:

PATH=/usr/local:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

sauvegardez le fichier, redémarrez votre système et vous devriez (espérons-le) pouvoir continuer.

loginboucle14.04ne peut paslogin-screen

1
Sekin

J'ai eu le même problème. Lorsque je me suis connecté à mon compte via tty (en appuyant sur ctrl+alt+F1, il y avait une erreur dans le fichier ~/.profile (je m'amusais dedans). Après avoir corrigé l'erreur, j'ai pu me connecter.

Recherchez les messages d'erreur et essayez de les corriger.

1
sotrh

J'ai aussi eu ce problème, mais j'ai fini par le régler.

Il n'est pas nécessaire de supprimer votre ~/.profile, mais c'est ce fichier qui est à l'origine du problème. Assurez-vous simplement que cela n’imprime pas quoi que ce soit sur STDOUT (et éventuellement sur STDERR également).

Une fois que j'ai supprimé l'impression de mon fichier ~/.profile, j'ai pu me connecter à l'aide de GDM.

1
Scimonster

J'ai eu le même problème de boucle de connexion et j'ai essayé tout ce que j'ai trouvé en ligne, mais la seule chose qui a fonctionné a été la suppression de gros fichiers que j'avais. Je suppose que je viens de manquer d'espace libre.

0
user413360

J'ai eu exactement le même problème lors de la mise à niveau de 14.04 à 16.04. C'est ce qui a fonctionné pour moi:

Ctrl + Alt + F1

fournir les identifiants de connexion, puis exécuter

Sudo service lightdm stop     
Sudo service lightdm start    
Sudo startx
0
Southy82

Allez au terminal en frappant Ctrl + Alt + F1. et lancez la commande suivante.

Sudo chown -R $USER:$USER /home/$USER

Je suppose que les autorisations sur votre dossier/home ont été modifiées d'une manière ou d'une autre.

0
Dhiresh Jain