10.13 High Sierra Connexion impossible à un compte utilisateur

1k3rk4

Membre confirmé
18 Mars 2014
25
1
Bonjour,

Depuis hier je n'arrive plus à me connecter à partir de mon compte utilisateur principal, pas même en Safe Mode. J'ai créé un autre compte admin à partir du compte invité, les deux marchent sans problème. J'imagine que ça doit être dû à un fichier, mais j'ai vidé le cache et les préférences de ce compte, sans succès.
Je sais qu'au pire je pourrais transférer tous les fichiers vers le nouveau compte mais est ce que quelqu'un aurait une méthode qui m'éviterait de faire ça. Ou une manière rapide de le faire?
Pour info, quand je rentre le mot de passe, j'ai la roue qui commence à tourner et se bloque tout de suite, puis apparait la roue de la mort et c'est tout.

Merci d'avance!
 
<...>J'ai créé un autre compte admin à partir du compte invité, les deux marchent sans problème.
<...>
Ah ? Je ne savais pas que c'était possible... Dit comme ça, c'est le signe d'une faille de sécurité plutôt préoccupante.

As-tu des messages d'erreur lors de l'échec de l'ouverture de session, soit directement, soit inscrits dans les journaux du système (que l'on peut voir avec l'application Console, dans /Applications/Utilitaires).
 
J'imagine que depuis le compte invité il faut tout de même saisir nom et mot de passe du compte admin (celui dont la session ne s'ouvre pas).
 
J'ai quand même dû rentrer mes identifiants du compte admin pour créer le nouveau compte.
Je n'ai pas de message d'erreur, juste le spinner qui se bloque et ensuite la la roue qui tourne sans fin.

J'ai essayé de regarder dans les logs, mais j'avoue que je ne sais pas trop quoi regarder, et je n'arrive pas à insérer le log, c'est trop long (ou je le fais mal)
 
Salut 1k3rk4

Supprimer l'identité d'utilisateur > puis la recréer à l'identique (sans toucher le dossier qui sert à l'ouverture de session) --> résout fréquemment le problème d'une ouverture de session bloquée. Car l'identité d'utilisateur consiste en un fichier plist > dont il arrive (rarement) que les écritures soient corrompues.

  • est-ce que tu es partant pour la manœuvre > qui doit s'exécuter dans la session de ton Admin auxiliaire ?
 
C'est l'idée que j'avais eu mais je ne savais pas trop comment et je ne voulais pas faire de bêtises :)
Suis prêt!
 
Je te suppose dans la session de ton Admin auxiliaire. Va à : Applications > Utilitaires > lance le Terminal.

Dans la fenêtre ouverte > saisis (l'une après l'autre ; en copier-coller direct chaque fois) les 2 commandes informatives -->
Bloc de code:
diskutil listUsers / | grep -v '.*[\^\_\].*'
dscl . -list /Users home | grep -v '.*[\^\_\].*'
et ↩︎ (presse la touche "Entrée" du clavier après chaque commande saisie pour l'exécuter

  • la 1ère retourne un tableau affichant en vis-à-vis Noms Courts et Noms Longs en ce qui concerne les utilisateurs de type "personnel" dans l'OS
  • la 2è retourne un tableau affichant en vis-à-vis Noms Courts et adresses aux dossiers d'ouverture de session pour le même type d'utilisateur.

Poste ces deux tableaux ici en copier-coller (pas de capture) > mais en utilisant le procédé suivant -->

  • dans la page de ce fil de MacGé > presse le bouton (carré avec un + inscrit - juste au milieu de la largeur de la fenêtre totale) dans la barre de menus au-dessus du champ de saisie d'un message > menu  : </> Code > par ⌘V colle dans la fenêtre Code > presse le bouton Insérer (ce procédé permet un affichage fenêtré qui économise l'espace de page en respectant la mise en forme des tableaux du «Terminal» --> d'où une plus grande lisibilité)

Note : j'espère que tu n'es pas gêné d'afficher le Nom Court et le Nom Long de ton utilisateur principal (dont la session est bloquée en ouverture) ? --> c'est que > pour des manipulations qui concernent des comptes d'utilisateurs > j'ai besoin de savoir nominalement qui est qui afin de pouvoir te passer une commande de suppression strictement ciblée.
 
Bloc de code:
USERS
-----

Disk: disk1s1
Volume: SSD
Mountpoint: /

UID       Short Name                      Long Name
------------------------------------------------------------------------
501       ika                             IK
-2        nobody                          Unprivileged User
201       Guest                           Utilisateur invité
503       ikatest                         ikatest
502       ikold                           IKold
0         root                            System Administrator
1         daemon                          System Services

Bloc de code:
daemon                  /var/root
Guest                   /Users/Guest
ika                     /Users/ika
ikatest                 /Users/ikatest
ikold                   /dev/null
nobody                  /var/empty
root                    /var/root

Pour info:
ika = compte bloqué/corrompu
ikatest= nouveau compte admin créé
ikold=compte de partage
 
Il y en a des "ik"-
361608_original.png


Donc l'identité de l'utilisateur IK (Nom complet) = ika (Nom de compte) est constituée par un fichier ika.plist > localisé dans la base de données des utilisateurs du Service d'Annuaire (at: /private/var/db/dslocal/nodes/Default/users/ ika.plist). C'est ce fichier qu'il faut supprimer > pour supprimer l'identité de l'utilisateur. Comme tu t'en doutes > la suppression de ce fichier n'affecte en rien le dossier contenant les données de l'utilisateur > dossier intitulé ika et localisé at: /Users/ika (répertoire des Utilisateurs).

Donc saisis la commande (copier-coller) :
Bloc de code:
sudo rm -f /private/var/db/dslocal/nodes/Default/users/ika.plist

  • à validation une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe d'utilisateur ikatest en aveugle - aucun caractère ne se montrant à la frappe - et valide de nouveau.
  • la commande supprime le fichier-cible ; elle passe sans commentaire

Cela fait > passe la commande informative (copier-coller) -->
Bloc de code:
sudo ls /private/var/db/dslocal/nodes/Default/users | sed '/^_/ d'

  • qui liste > dans la base de données des utilisateurs > les fichiers plist d'utilisateurs dont le nom ne commence pas par un underscore

Poste cette liste ici --> qu'on ait la confirmation de la suppression du fichier ika.plist.
 
Bloc de code:
Guest.plist
daemon.plist
ikatest.plist
ikold.plist
nobody.plist
root.plist

C'est fait.
Il faut recréer le compte maintenant, j'imagine?
 
Parfait !

Phase 2 --> recréation d'une identité d'utilisateur > càd. d'un fichier plist à son Nom Court qui apparaîtra dans la base de données des utilisateurs du Service d'Annuaire.

Quitte le Terminal. Va à : Menu  > Préférences Système > Utilisateurs et groupes > déverrouille le cadenas > presse le bouton + pour créer un nouvel utilisateur.

Dans le panneau de paramétrage qui s'affiche > opère strictement les choix suivants -->

  • Nouveau compte => Administrateur (bascule l'option Standard par défaut pour sélectionner Administrateur)
  • Nom complet => IK
  • Nom du compte => ika (il est décisif que ce soit exactement ika à la lettre près)
  • Mot de passe => le même que celui que tu avais choisi pour ta session IK (il est décisif que ce soit le même pour ne pas désynchroniser le Trousseau de session)
  • Confirmation => idem
  • Indice du mot de passe => ce qui tu avais choisi
  • Presse le bouton => Créer l'utilisateur

Un panneau va se démasquer déclarant -->

Le dossier Utilisateurs contient déjà un dossier du même nom comme dossier de départ pour ce compte.
  • Le nom du compte reprendra celui du dossier de départ de ce nouveau compte utilisateur. Pour que le dossier serve de dossier de départ, cliquez sur « Utiliser le dossier existant ». Cliquez sur « Annuler » pour modifier le nom du compte.

=> presse avec résolution le bouton : Utiliser le dossier existant

Tu devrais voir apparaître un utilisateur Admin IK dans la colonne de gauche du panneau des Utilisateurs et groupes.

Re-démarre > puis logge-toi dans la session IK.
 
Merci beaucoup, ça a marché nickel!
Question accessoire, au début j'avais effacé le cache et les préférences. Il vaut mieux ne pas les restaurer, non?
 
Merci beaucoup, ça a marché nickel!

  • tu confirmes donc > en cas de blocage de l'ouverture de session > la pertinence de cette procédure apparemment drastique : supprimer carrément une identité d'utilisateur (commande de destruction d'un fichier machin.plist dans la base de données users du Service d'Annuaire) > la recréer à l'identique (en utilisant pour cela le panneau commode des Utilisateurs et groupes). Une corruption des écritures du fichier plist d'utilisateur étant régulièrement la cause du blocage.

Question accessoire, au début j'avais effacé le cache et les préférences. Il vaut mieux ne pas les restaurer, non?

  • tu gagnerais à restaurer les préférences d'utilisateur si tu as sauvegardé une copie de ce sous-dossier de la bibliothèque de compte. Le cache : il se recréera bien à l'usage....
 
C'est dommage d'avoir supprimé le fichier initial (/private/var/db/dslocal/nodes/Default/users/ika.plist) j'aurais bien aimé savoir ce qu'il contenait ou au moins le tester avec la commande plutil.
 
Dernière édition:
@ bompi

C'est noté. La prochaine fois je penserai à déplacer plutôt le fichier dans une localisation de quarantaine où il pourra être vérifié.
 
@ bompi

C'est noté. La prochaine fois je penserai à déplacer plutôt le fichier dans une localisation de quarantaine où il pourra être vérifié.
C'est quand même préoccupant que le service d'annuaire corrompe ses fichiers de données. Donc je me demandais si c'était ce fichier qui est corrompu ou un lien vers ce fichier, c'est-à-dire une donnée située dans un autre endroit de l'annuaire.