Correction / Correction des autorisations de fichiers du dossier de départ de OS X


4

Bref, j'ai réussi à gâcher les permissions de fichiers dans mon répertoire personnel sous OS X (Lion). Bien que je sois assez familiarisé avec les autorisations de fichiers Linux et que je sois plus à l'aise de les modifier, je ne parviens pas à obtenir la bonne combinaison d'autorisations et / ou de commandes permettant de les modifier de manière appropriée.

Avant de continuer cependant, je dois mentionner que ma configuration est légèrement différente de celle d'une installation standard. Mon disque dur est partitionné en deux lecteurs, Système et Utilisateur.

Mon dossier personnel se trouve dans Utilisateurs / [Nom d'utilisateur] sur le lecteur Utilisateur, c'est-à-dire. lorsque les deux lecteurs sont correctement montés, il est accessible à partir de / Volumes / User / Users / [nom d'utilisateur]. Dans / Utilisateur /, j'ai un lien symbolique [nom d'utilisateur] qui pointe vers // volumes / utilisateur / utilisateurs / [nom d'utilisateur] et cela a fonctionné comme je le voulais

J'ai essayé les deux articles suivants trouvés ici et ici seulement je me suis verrouillé hors de mon propre répertoire personnel. En attendant, je les ai changés pour un accès global complet afin que je puisse les utiliser, mais j'aimerais régler ce problème.


1
Ce message de CNET est probablement assez destructeur. Vous perdez l'accès (indicateur exécutable) à tous les répertoires de votre domicile. Je parie que ce gars n'a jamais essayé de faire ce qu'il a écrit.
Daniel Beck

Réponses:


4

Tout d’abord, assurez-vous que vous possédez votre dossier personnel (note: je suppose que vous utilisez ce dossier à partir de votre propre compte utilisateur et que vous êtes un administrateur):

sudo chown -R $USER:staff ~

Ensuite, donnez-vous un accès correct et n'autorisez aucun autre accès (nous ferons des exceptions plus tard). Notez qu'il s'agit de 2 commandes pour vous assurer que l'accès d'exécution est ajouté aux répertoires, mais pas aux fichiers simples:

chmod -R 600 ~
chmod -R u+rwX ~

Maintenant, accordez aux autres utilisateurs un accès en lecture aux répertoires auxquels ils sont censés avoir accès. Si vous n'avez pas de dossier de sites, vous pouvez laisser cela en dehors de la deuxième commande:

chmod og+rX ~
chmod -R og+rX ~/Public ~/Sites

Apple aime avoir des entrées de contrôle d'accès pour vous empêcher de jouer avec des parties "importantes" de votre dossier personnel. Encore une fois, si vous n'avez pas de site, vous pouvez laisser cela (ne pas laisser la bibliothèque; c'est invisible, mais c'est là):

chmod +a "group:everyone deny delete" ~ ~/Desktop ~/Documents ~/Downloads ~/Library ~/Movies ~/Music ~/Pictures ~/Public ~/Sites

Enfin, corrigez votre boîte de dépôt:

chmod og=wX ~/Public/Drop\ Box
chmod +a "user:$USER allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" ~/Public/Drop\ Box

Notez que cette procédure ne "corrigera" pas correctement les autorisations sur les fichiers de vos différents dossiers, mais cela n'a pas vraiment d'importance car elle vous donne un accès complet à ces fichiers et que personne d'autre ne peut accéder aux dossiers de toute façon ...


4
Faire ce que vous suggérez va casser des choses. Vous retirerez les autorisations d'exécution des fichiers binaires. Widgets de tableau de bord, programmes en ~/Applications, les services vont tous casser. Probablement un peu plus.
Daniel Beck

Je vous suggère d'ignorer le deuxième extrait de code et d'inverser le troisième, c'est-à-dire à retirer (de manière non récursive) go-rwx pour les documents, la musique, etc. (ceux créés par défaut).
Daniel Beck

@Daniel Beck: la plupart des utilisateurs d'OS X n'ont pas de dossier Applications utilisateur (ni de dossier de binaires personnel, ou ...). Je n'avais pas pensé aux services, cependant. Appelez cela un caprice de personnalité, mais je n'aime pas avoir l'autorisation d'exécution sur les non-exécutables, et je préfère avoir à réparer le fichier occasionnel qui en a besoin que de le définir pour tout. Vous pouvez trouver tous les exécutables réels avec find ~ -type f -print0 | xargs -0 file | grep executable puis ajoutez execute pour eux ( chmod u+x /path/to/file ) individuellement.
Gordon Davisson

@Daniel Beck: Pour ce qui est de supprimer le groupe + un autre accès et de l'ajouter sélectivement, ou de le supprimer sélectivement, je ne pense pas qu'il y ait une vraie bonne réponse: effacer les informations d'origine des autorisations détruites, et il n'y a aucun moyen de l'obtenir retour. Votre approche laisse probablement la plupart des fichiers plus proches de leurs autorisations d'origine, mais au risque de donner accès à des éléments qui devraient ne pas être lisible, comme ~ / .ssh
Gordon Davisson

1
Drag & amp; Les programmes de dépôt et par défaut sont tous deux liés aux services de lancement; vérifier ses préférences ( ls -le ~/Library/Preferences/com.apple.LaunchServices* ) et pour les services devant être exécutables (voir le find commande que j'ai donnée ci-dessus). BTW, pour une raison quelconque, l’autorisation d’exécution semble être définie pour les fichiers de verrouillage des préférences. chmod u+x ~/Library/Preferences/*.lockfile aiderait.
Gordon Davisson

4

Pour réinitialiser les autorisations de fichier et les listes de contrôle d'accès (ACL) du répertoire de base de votre utilisateur à leurs paramètres par défaut, procédez comme suit:

  1. Démarrez en mode de récupération en maintenant enfoncées les touches Commande et R pendant le démarrage.
  2. Ouvrez le terminal (sous le menu Utilitaires)
  3. Type resetpassword dans le terminal et appuyez sur Retour.
  4. Dans la fenêtre de l’utilitaire Réinitialiser le mot de passe, choisissez le volume correct. En bas, vous verrez une zone intitulée "Réinitialiser les autorisations des dossiers de base et les ACL". Cliquez sur le bouton Réinitialiser dans cette zone.
  5. Fermez les fenêtres, utilitaires rapides pour OS X, redémarrez.

1

Réparez les autorisations de disque en ouvrant Utilitaire de disque, en sélectionnant le lecteur, puis en cliquant sur Réparer les autorisations de disque.


Depuis l'Utilitaire de disque, je sélectionne la partition "Utilisateur" et je n'ai pas la possibilité de corriger les autorisations (cette option est désactivée).
achinda99

2
Réparer les autorisations du disque ne corrige que les autorisations sur les fichiers système , pas les fichiers utilisateur.
Gordon Davisson

1

Lance ça

cd $HOME
{ sudo chflags -R nouchg,nouappnd ~ $TMPDIR.. ; \
sudo chown -R $UID:staff ~ $_ ; \
sudo chmod -R -N ~ $_ ; \
sudo chmod -R 755 ~ $_ ; \
sudo chmod 700 Desktop Documents Downloads Dropbox Library Movies Music Pictures Sites $_ ; \
sudo chmod 777 Public ; \
sudo chmod 733 Public/Drop\ Box ; \
} 2> /dev/null

Je suppose que vous avez utilisé Linc's procédure standard comme point de départ: discussions.apple.com/thread/5275515?tstart=0
ylluminate

0

Après beaucoup d'efforts et de recherches:

Bien que n'étant pas parfait, je viens d'utiliser la fenêtre Obtenir des informations sur le dossier de départ. Il montrait "lecture / écriture" pour l'utilisateur, * "lecture seule" pour administrateur et "aucun accès" pour tout le monde. M'a semblé assez bien.

J'ai ensuite couru l'option dans le menu d'engrenage à appliquer à tous les éléments inclus.

Accès restauré à tout! Moins d'une minute (sur mon disque SSD).

Alléluia! * standard, pas admin

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.