23 votes

Supprimer les applications des services de localisation dans Sécurité et confidentialité sur Mac OS X 10.8

Je voulais supprimer les applications des services de localisation dans les paramètres de sécurité et de confidentialité sur MaC OS X 10.8 Mountain Lion. (Les applications étaient toujours répertoriées alors qu'elles avaient été désinstallées). Supprimer l'application des services de localisation dans Sécurité et confidentialité sur Mac OS X 10.7 et ça m'a fait avancer dans la bonne direction. Voici l'équivalent OS X 10.8.2 Mountain Lion qui a fonctionné pour moi. La principale différence est l'emplacement du fichier clients.plist. J'ai également voulu fournir un processus étape par étape.

DISCLAIMER : Cela a fonctionné pour moi. Assurez-vous d'avoir une bonne sauvegarde de votre système. Ce processus inclut une sauvegarde du fichier clients.plist, mais on n'est jamais trop prudent.

1. Démarrer le terminal et ensuite sudo à un root Shell.
sudo -s

2. Allez dans /var/db/locationd
cd /var/db/locationd

3. Faites une sauvegarde du fichier clients.plist.
cp -p clients.plist clients.plist.save

4. Convertir clients.plist en xml (format modifiable)
plutil -convert xml1 clients.plist

5. Utilisez vi (vim) pour modifier le fichier clients.plist et supprimer l'application.
vi clients.plist

Le fichier contiendra probablement de nombreuses entrées d'application. Voici le format d'une seule entrée d'application (Safari dans ce cas). L'entrée entière doit être supprimée.

    <key>com.apple.Safari</key>
    <dict>
        <key>Authorized</key>
        <true/>
        <key>BundleId</key>
        <string>com.apple.Safari</string>
        <key>Executable</key>
        <string>/Applications/Safari.app/Contents/MacOS/Safari</string>
        <key>LocationTimeStopped</key>
        <real>376348187.80421197</real>
        <key>Registered</key>
        <string>/Applications/Safari.app/Contents/MacOS/Safari</string>
        <key>RequirementString</key>
        <string>identifier "com.apple.Safari" and anchor apple</string>
        <key>Whitelisted</key>
        <false/>
    </dict>

6. Reconvertir le fichier clients.plist en binaire
plutil -convert binary1 clients.plist

7. Redémarrez locationd
killall locationd

Si les applications sont toujours là, recommencez le processus, sauf que vous redémarrez locationd en utilisant kill -9 après avoir déterminé le PID comme suit. Le PID est le deuxième champ de la sortie ps.

ps -ef | grep locationd | grep -v grep
Ausgabe: 205 427 1 0 6:31PM ?? 0:00.07 /usr/libexec/locationd
kill -9 427

J'ai lancé le processus deux fois pour supprimer une application à la fois. La première fois, killall était suffisant. La deuxième fois, ce n'était pas le cas. Je ne sais pas pourquoi. On aurait dit que Locationd gardait un cache et reconstruisait le fichier clients.plist. Je dis cela parce que les entrées ont été ajoutées à clients.plist après l'exécution de killall -- et même après un redémarrage. Quelle que soit la cause profonde, l'utilisation de kill -9 a résolu le problème pour moi.

Si les choses se passent mal, recopiez le fichier original et redémarrez Locationd.
cp -p clients.plist.save clients.plist
killall locationd (ou la méthode kill -9)

J'espère que cela vous aidera. A la vôtre !

5voto

Stefan Hendriks Points 1077

L'éditeur de liste de propriétés de Xcode peut également être utilisé pour supprimer les entrées des anciennes applications, mais comme le fichier est difficile à atteindre, les autorisations doivent être ouvertes temporairement :

mini-nevie:~ root# chmod o+rwx /var/db/locationd/ /var/db/locationd/clients.plist

afin que le répertoire et le fichier puissent être lus et écrits par tous les utilisateurs. Ensuite, pour plus de commodité, su à votre identifiant de connexion :

mini-nevie:~ root# su - nevinwilliams
mini-nevie:~ nevinwilliams$ open /var/db/locationd/clients.plist 

Cela suppose que Xcode est l'application par défaut pour ouvrir les fichiers *.plist, et que vous êtes familier avec l'éditeur de liste de propriétés. Sous la propriété Root, il y a 3 entrées de dictionnaire par défaut :

com.appl
com.appl.locationd.executable-/usr/libexec/UserEventAgent
com.appl.aosnotifyd

Il ne faut pas les supprimer. Pour les entrées qui appartiennent à des applications disparues depuis longtemps, vous pouvez passer la souris juste à gauche de la colonne Dictionnaire de la ligne de l'application correspondante, où un "-" gris inversé apparaîtra. En cliquant dessus, vous supprimez l'élément et tous ses enfants. Si vous préférez d'abord inspecter l'entrée, cliquez sur le triangle gris (familier aux utilisateurs de la vue en liste du Finder) à gauche de la chaîne clé pour développer le dictionnaire et afficher ses éléments.

Une fois que vous avez supprimé ou désactivé les clés à votre satisfaction, enregistrez le fichier et quittez Xcode. Ensuite, de retour dans le Terminal, faites :

mini-nevie:~ nevinwilliams$ exit
logout
mini-nevie:~ root# 

appuyez deux fois sur la flèche du haut pour rappeler la commande chmod, ctrl-A pour aller au début de la ligne, cursor-right environ huit fois, remplacez le '+' par un '-', ou entrez ce qui suit comme indiqué pour rétablir les autorisations telles qu'elles étaient :

mini-nevie:~ root# chmod o-rwx /var/db/locationd /var/db/locationd/clients.plist 

puis HUP le démon de localisation :

 mini-nevie:~ root# killall -HUP locationd

une vérification rapide de l'onglet Confidentialité de Security.PrefPane devrait confirmer vos modifications.

Les avertissements habituels, les récits de malheur, les réprimandes, les gloussements et les réflexions du type "Ce voyage est-il vraiment nécessaire ?

4voto

Andreas Points 51

Utilisation de tccutil (utilitaire de ligne de commande OS X)

Je pense que la façon la plus rapide et la plus sûre de le faire est d'utiliser l'utilitaire de ligne de commande OS X. tccutil

  • Ouvrir une nouvelle fenêtre de terminal
  • Fermez toutes les fenêtres préfabriquées "Sécurité et confidentialité" ouvertes.
  • Tapez ou collez les commandes suivantes en surbrillance

Réinitialiser les services de localisation

tccutil reset CoreLocationAgent

Réinitialisation de l'accès aux contacts/carnet d'adresses :

tccutil reset AddressBook

Réinitialiser l'accès aux rappels

tccutil reset Reminders

Réinitialiser l'accès aux calendriers

tccutil reset Calendar

Et c'est tout ce qu'il y a à faire. Pas besoin de Sudo, d'ailleurs.

3voto

sbeskur Points 1194

C'est l'ancien et la solution que je propose n'est pas techniquement différente de la solution du post et de celle acceptée, mais elle est beaucoup moins contraignante et beaucoup plus facile à automatiser (utile pour le débogage). Il suffit de faire

/usr/libexec/PlistBuddy -c 'Delete <bundle-id>' /var/db/locationd/clients.plist
killall -HUP locationd

comme racine.

0voto

T. Gil Points 1

En plus des réponses précédentes, ce problème n'a disparu pour moi qu'après avoir corrigé la propriété des fichiers :

# chown -R _locationd:_locationd /var/db/locationd/
# chmod 750 /var/db/locationd/
# chmod 644 /var/db/locationd/clients.plist

Puis redémarrez l'ordinateur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X