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.
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
.
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.
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.
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.
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.
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
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.