Ouvrir le menu principal

MacGeneration

Recherche

Le bac à sable de macOS peut gêner les commandes « defaults write »

Nicolas Furno

mardi 29 septembre 2020 à 09:51 • 14

macOS

Avec la généralisation du sandboxing sur macOS, on ne peut plus aussi facilement modifier les réglages cachés de certaines apps en utilisant l’outil en ligne de commande defaults write. C’est ce qu’a découvert Dan Moren de Six Colors quand il a voulu activer le menu « Debug » de Safari, en utilisant cette commande qui fonctionnait depuis des années :

defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
Le menu Debug de Safari 14.

Cette commande existe pourtant toujours et elle devrait fonctionner pour activer le menu supplémentaire de Safari, un menu utile surtout aux développeurs qui doivent optimiser un site web ou comprendre pourquoi un élément ne fonctionne pas normalement dans le navigateur d’Apple. Le sandboxing et les mesures de sécurité régulièrement renforcées viennent toutefois la perturber à deux niveaux, comme le détaille le développeur Jeff Johnson.

Quand une app est mise à jour pour gérer le bac à sable de macOS, ses réglages sont déplacés de leur emplacement historique (dans le dossier ‌~/Library/Preferences) à un sous-dossier dans ‌~/Library/Containers/. Dans le cas de Safari, la transition a eu lieu l’an dernier avec Safari 13 et son fichier de préférences est désormais accessible à cet endroit : ~/Library/Containers/com.apple.Safari/Data/Library/Preferences/com.apple.Safari.plist.

En théorie, la commande default writes devrait être suffisamment maligne pour le savoir et modifier le bon fichier. Mais deux problèmes peuvent se poser : d’une part, Apple ne supprime jamais les anciens fichiers de préférences, si bien qu’il y a un doublon dans le système pour chaque app sandboxée. Il y a ainsi deux fichiers de réglages de Safari, celui indiqué précédemment et la version historique est conservée à cet autre emplacement : ~/Library/Preferences/com.apple.Safari.plist.

D’autre part, si votre application de terminal n’est pas configurée pour avoir un accès complet aux données (une nouveauté de macOS Mojave), la ligne de commande va modifier le fichier historique et non le nouveau. L’explication est simple : sans cet accès complet, le terminal ne peut pas lire ou écrire dans le dossier ‌~/Library/Containers et la ligne de commande se rabat sur l’ancien fichier qui est toujours accessible.

Pour vérifier ce paramètre, ouvrez les Préférences système, puis le panneau « Sécurité et confidentialité » et enfin l’onglet « Confidentialité ». Cliquez sur le cadenas en bas à gauche et saisissez le mot de passe de votre session, puis cliquez sur « Accès complet au disque » dans la barre de gauche et vérifiez que l’app Terminal soit dans la liste. Si ce n’est pas le cas, ajoutez-la en touchant le bouton +.

L’app Terminal doit avoir accès au disque complet pour que le bon fichier de préférences soit modifié par la ligne de commande.

Cet exemple lié à Safari met en avant un problème qui se pose de plus en plus et qui va se poser encore plus à l’avenir. Cette ligne de commande historique de macOS fonctionne toujours, mais les restrictions de sécurité de ces dernières années peuvent imposer des étapes supplémentaires à connaître pour bien l’utiliser.

Si la commande defaults write ne semble pas fonctionner, vérifiez que vous n’êtes pas dans le cas d’une app qui est passée dans le bac à sable et de l’app Terminal qui n’a pas accès à toutes les données.

Soutenez MacGeneration sur Tipeee

Précommandez le livre et rejoignez la fête

Un livre pour raconter 50 ans d'Apple, une journée à Lyon pour les célébrer ensemble.

Participez sur Ulule

Anthropic, réticent à ouvrir les vannes au Pentagone, sommée de sortir des administrations US 🆕x2

27/02/2026 à 23:30

• 40


Taxes douanières US : FedEx promet de rembourser ses clients une fois que le gouvernement l’aura indemnisée

27/02/2026 à 21:30

• 8


Astuce : si des touches se bloquent pendant une partie, désactivez le mode jeu de macOS

27/02/2026 à 18:30

• 7


Mac OS X : le pari le plus fou de l’histoire moderne d’Apple ?

27/02/2026 à 18:05

• 38


Apple pourrait lancer deux nouveaux Studio Display différents

27/02/2026 à 17:41

• 25


Il y a 25 ans, Steve Jobs présentait la GeForce 3 en avant première sur la scène du Macworld

27/02/2026 à 16:59

• 4


Steve Jobs in Exile : un livre promet des coulisses inédites de la période NeXT

27/02/2026 à 13:07

• 10


Piratage du fichier national des comptes bancaires : la DGFiP commence à contacter les personnes concernées

27/02/2026 à 12:21

• 22


Hue commercialise un ruban décoratif « Essential » : 100 € pour 5 mètres

27/02/2026 à 11:30

• 9


Fuite chez un éditeur de logiciels médicaux : les données de 11 à 15 millions de personnes compromises

27/02/2026 à 10:25

• 80


RAMpocalypse : pourquoi il est (peut-être) urgent d’acheter un Mac aujourd’hui

27/02/2026 à 09:34

• 47


Huawei GT Runner 2 : un nouveau système d’antenne qui change la donne pour le GPS ?

27/02/2026 à 08:56

• 11


RAMpocalypse : le marché des smartphones va entrer en récession

27/02/2026 à 08:10

• 49


Razer lance une housse pour MacBook Pro qui recharge aussi votre iPhone et vos AirPods

27/02/2026 à 07:14

• 3


Ouverture de l’iPhone aux montres tierces : ce qu’en pensent Garmin, Withings, Suunto et les autres

27/02/2026 à 06:51

• 4


F1 : Apple passe un accord avec Netflix pour diffuser Drive to Survive aux US, et dévoile une partie des services impliqués

27/02/2026 à 06:37

• 11