Le problème initial
J'ai rencontré un problème sporadique où mon Mac semble "oublier" où se trouve mon répertoire personnel.
Le premier indice (parce que c'est quelque chose que je fais très souvent) est toujours que Google Chrome ne peut pas ouvrir un nouvel onglet. J'obtiens l'écran d'erreur "oh snap". Cela m'amène à quitter Chrome et à le redémarrer, ce qui conduit à son tour à cette boîte de dialogue d'erreur, après quoi Chrome ne démarre pas:
Autres symptômes
Beaucoup d'autres choses qui nécessitent la connaissance du répertoire personnel échouent également:
- Lorsque j'ouvre certaines applications Apple (par exemple, Aperçu, Notes, Messages), je suis invité à afficher une boîte de dialogue qui indique qu'il doit réparer mon répertoire personnel et me demande de m'authentifier. La saisie de mon mot de passe ici provoque
/var/empty/Library
le changement de propriétaire de moi (ce qui est mauvais à long terme, mais permet à certaines choses de commencer à fonctionner). - Safari ne s'ouvre tout simplement pas lorsque vous cliquez dessus - il apparaît brièvement dans le dock puis disparaît, sans boîte de dialogue de rapport de plantage (bien que je ne puisse pas dire si le système dans cet état est conscient de ma préférence pour voir ces boîtes de dialogue).
- Même après avoir "réparé ma bibliothèque", de nombreuses applications ne peuvent pas s'ouvrir:
- Aperçu: une boîte de dialogue du Finder apparaît: L'application "Aperçu" ne peut pas être ouverte.
- Chrome: même boîte de dialogue d'erreur qu'avant, illustrée ci-dessus
- Remarques: l'icône du dock apparaît puis disparaît.
- Après avoir réparé ma bibliothèque, certaines applications qui ne pouvaient pas s'ouvrir auparavant le peuvent, et beaucoup d'entre elles ont oublié mes paramètres:
- Safari (que j'utilise maintenant pour écrire cette question pendant mes recherches)
- BBEdit
- Pixelmator
- Remarques
- Certaines applications ne semblent pas être affectées quelles que soient les autorisations de la bibliothèque:
- Console
- Préférences de système
- Accès au trousseau
- Je ne peux pas prendre de captures d'écran à moins d'utiliser Grab ou de maintenir Control pour écrire la capture d'écran dans le presse-papiers (car il n'a pas accès en écriture à
/var/empty/Desktop
, qui appartient correctement à root). - Dans les boîtes de dialogue Ouvrir et Enregistrer, il n'affiche pas mon répertoire personnel dans la barre latérale, ni aucune des destinations courantes (Bureau, Documents, etc.).
- Lorsque l'économiseur d'écran s'active, le système par défaut (Flurry) apparaît à la place de mon habituel (Classic pointait vers un répertoire de photos que j'ai sélectionné).
- Le terminal utilise les paramètres par défaut pour la couleur / police / etc au lieu de mes paramètres personnalisés.
D'autres choses semblent bien fonctionner:
- Machine à remonter le temps
- Projecteur
- Coins chauds
Cela s'est produit trois fois jusqu'à présent depuis la mise à niveau de ma machine de travail vers High Sierra quelques jours après sa sortie.
La recherche
La recherche semble indiquer que macOS ne pense que mon répertoire est/var/empty
, mais plutôt qu'il ne sait pas que je suis un répertoire personnel , et il y a quelque part logique de repli qui provoque le système à utiliser / var / vide pour tout utilisateur n'a pas de répertoire personnel. (Source: est-il possible de créer un utilisateur sans répertoire personnel? )
Des recherches plus poussées indiquent que / var / empty existe en tant que "prison de sécurité" pour les utilisateurs qui ne devraient avoir accès à rien (c'est pourquoi il est mauvais de modifier les autorisations ou de créer un lien symbolique ailleurs). (Source: /server/116632/what-is-var-empty-and-why-is-this-directory-used-by-sshd )
En fonction des événements passés, le redémarrage résout le problème (jusqu'à la prochaine fois qu'il se produit). Une fois que j'ai soumis cette question, je vais essayer de déconnecter / reconnecter mon câble réseau et de me déconnecter pour voir si l'une de ces aides; Je reviendrai et modifierai ce paragraphe en conséquence. Mise à jour: j'ai déconnecté et reconnecté mon câble réseau, puis redémarré le Finder. Chrome fonctionne à nouveau et tous les autres symptômes semblent également avoir été résolus! Cela réduit certainement la douleur lorsque ce problème se produit, mais j'aimerais toujours beaucoup comprendre et prévenir la cause profonde.
Rien de ce que je peux voir de Terminal ne semble présenter le problème:
Last login: Mon Nov 13 13:21:18 on ttys000
jrobb@oke-jrobb-mb: ~ % pwd
/Users/jrobb
jrobb@oke-jrobb-mb: ~ % cd /var/empty
jrobb@oke-jrobb-mb: /var/empty % ls -la
total 24
drwxr-xr-x 8 jrobb staff 256B Oct 20 16:32 ./
drwxr-xr-x 27 root wheel 864B Oct 20 14:49 ../
-rw-r--r--@ 1 root staff 10K Oct 20 16:32 .DS_Store
drwx------ 2 root staff 64B Oct 14 05:52 .ssh/
drwx------ 4 root staff 128B Oct 9 13:22 Desktop/
drwx------ 3 root staff 96B Sep 25 15:46 Documents/
drwx------ 3 root staff 96B Sep 25 15:46 Downloads/
drwx------+ 28 root staff 896B Nov 13 13:37 Library/
jrobb@oke-jrobb-mb: /var/empty % whoami
jrobb
jrobb@oke-jrobb-mb: /var/empty % echo $HOME
/Users/jrobb
jrobb@oke-jrobb-mb: /var/empty %
La journalisation intégrée de High Sierra fait de Console.app un cauchemar à parcourir, mais j'ai néanmoins passé beaucoup de temps à rechercher des messages pertinents. J'en ai trouvé plusieurs qui semblent être des erreurs causées par le problème, mais aucune qui ne semble être le problème. Je soupçonne que cela est dû au fait que vous ne pouvez pas faire défiler le flux sans fin de tous les messages de tous les sous-systèmes plus tôt qu'à chaque fois que vous avez ouvert la console, et il n'y a également aucun moyen apparent de rechercher plus d'un fichier à la fois, sauf si vous souhaitez rechercher le flux en avant uniquement mentionné ci-dessus. Je n'avais pas de console en cours d'exécution quand les choses ont tourné au sud, donc je suppose que je n'ai pas de chance? (J'apprécierais beaucoup toute aide / conseil ici.)
J'ai vu un certain nombre d'autres cas où les gens ont le même problème depuis 2014 (10,9 Mavericks). Voici quelques liens vers d'autres personnes rencontrant des problèmes identiques ou connexes, pour lesquels aucune solution satisfaisante ne se présente:
- https://www.jamf.com/jamf-nation/discussions/22851/active-directory-user-home-directory-set-to-var-empty
- Au moins un utilisateur Jamf y a trouvé la solution (la case "Exiger une confirmation avant de créer un compte mobile" dans Directory Utility a été cochée et l'utilisateur avait cliqué sur Non quand la boîte de dialogue de confirmation lui avait été présentée). Ces cases à cocher sont cochées sur mon système, mais je n'ai jamais vu (ni refusé) une telle boîte de dialogue de confirmation, donc je ne pense pas que ce soit le cas ici. Néanmoins, ce n'est pas une machine partagée, et donc ces cases ne sont plus cochées.
- https://arstechnica.com/civis/viewtopic.php?f=19&t=1239175
- Il n'y a jamais eu de réponse à ce fil, j'ai donc tenté ma chance et j'ai demandé à cet utilisateur s'il avait déjà trouvé un problème. Pas encore de réponse.
- /superuser/721623/could-not-create-directory-var-empty-ssh
Il semble que, pour ceux qui ont des «solutions», ce sont vraiment des pansements qui exposent des failles de sécurité importantes:
- lien symbolique
/var/empty
vers le répertoire de base correct chown _user_ /var/empty
- etc
Le contexte
J'utilise un iMac fin 2013 (Core i7 3,9 GHz, 32 Go de RAM, SSD 1 To) exécutant High Sierra (toujours la dernière version corrigée; cela a commencé avec 10.13.0 et affecte désormais 10.13.1). C'est un appareil géré par Jamf, et je m'authentifie auprès d'un domaine Active Directory. Mon profil dans la sous-fenêtre Utilisateurs et groupes est intitulé "Admin, Géré, Mobile".
Nous avons commencé à utiliser Jamf où je travaille juste après ma mise à niveau vers High Sierra, donc cela pourrait être un problème Jamf ou un problème High Sierra (ou, vraiment, n'importe quoi d'autre).
Il existe de nombreux autres utilisateurs de Mac, de nombreux autres utilisateurs de High Sierra et de nombreux autres utilisateurs de Jamf; à ma connaissance, aucun autre utilisateur ne rencontre ce problème. Je suis le seul utilisateur d'iMac - tous les autres Mac ici sont des ordinateurs portables. (J'ai du mal à imaginer que mon iMac est le problème - juste être minutieux.)
Ce problème commence à se produire au milieu d'une session utilisateur. Tout va bien, jusqu'à ce que tout à coup ce ne soit pas le cas. En tant que tel, je ne pense pas que cela ait quoi que ce soit à voir avec la connexion ou Active Directory.
Ce que je cherche
Je cherche une réponse qui empêche macOS d'entrer dans cet état en premier lieu, et j'espère que cela explique quand et comment cela se produit.