Sujet : macos
-
System Integrity Protection et Signed System Volume : ce qu'ils protègent et pourquoi il ne faut pas les désactiver
SIP interdit même à root de modifier les chemins système protégés ou d'intervenir sur les processus protégés ; le Signed System Volume scelle cryptographiquement tout le volume système et le vérifie à chaque démarrage. Ensemble, ils expliquent pourquoi /usr/local est accessible en écriture mais pas /usr, et pourquoi désactiver SIP n'est pas une solution légitime à une erreur de permissions.
-
Pourquoi un script non supervisé échoue silencieusement sous macOS : permissions TCC pour les fichiers, l'accessibilité et l'automatisation
macOS contrôle via TCC l'accès aux fichiers situés hors du conteneur d'une application, le pilotage du clavier et de l'écran, ainsi que les Apple Events entre applications. Les autorisations sont liées à l'identité de code du binaire appelant, et non à l'utilisateur Unix : être root ne permet donc pas de contourner TCC, et un outil recompilé non signé ou signé ad hoc doit repasser par l'étape d'autorisation.
-
Consulter et modifier les paramètres réseau de macOS depuis le Terminal : networksetup, scutil et cache DNS
networksetup et scutil permettent de lire et de modifier le service réseau actif, les serveurs DNS, les proxys et le nom de l'ordinateur ; dscacheutil et mDNSResponder vident un cache de résolution obsolète après un changement DNS, afin qu'un nouveau test ne renvoie pas l'ancienne réponse.
-
Lire et écrire les préférences macOS : defaults, plutil, et pourquoi cfprefsd masque une modification directe
defaults et plutil lisent et écrivent les domaines de préférences sans analyser manuellement la syntaxe plist. Toutefois, un démon de cache, cfprefsd (un par utilisateur et un pour le système), intercepte chaque lecture et écriture d'une application : modifier directement le fichier plist sur le disque reste donc souvent sans effet visible tant que le cache n'est pas invalidé.
-
Diagnostic de performance depuis le Terminal macOS : top, vm_stat, memory_pressure, fs_usage et powermetrics
macOS fournit des outils d'origine BSD ou propres à Apple qui recoupent ce que font top, vmstat, iostat et strace sous Linux, mais avec d'autres noms, d'autres unités et d'autres exigences de privilèges : top -o cpu, vm_stat, memory_pressure, iostat, fs_usage, powermetrics et sample <pid>.
-
Gérer FileVault en ligne de commande : état, clés de récupération, secure token et bootstrap token
fdesetup indique et modifie l'état de FileVault ainsi que la gestion des clés de récupération ; sysadminctl et profiles indiquent quels comptes peuvent déverrouiller le disque et si un bootstrap token est mis en dépôt auprès d'un service de gestion des appareils, ce qui compte avant de s'appuyer sur le provisionnement de comptes piloté par MDM.
-
zsh, shell par défaut de macOS : ce qui ne fonctionne plus dans un script écrit pour bash
Depuis macOS 10.15, zsh est le shell de connexion et le shell interactif par défaut ; un script qui suppose le découpage en mots de bash, des tableaux indexés à partir de zéro ou un globbing permissif peut se comporter autrement, voire échouer complètement, dans la session zsh interactive d'un agent sur Mac, avant même de tenir compte de l'ancienneté de /bin/bash.
-
Vérifier qu'un logiciel macOS est signé, notarisé et non modifié : spctl, codesign, stapler
Avant d'exécuter un logiciel obtenu hors de l'App Store, spctl, codesign et xcrun stapler permettent de vérifier qu'il est signé, notarisé par Apple et inchangé depuis sa signature. Procédure purement défensive : rien ici ne désactive ni ne contourne ces contrôles pour un logiciel non fiable.
-
Domaines launchd : choisir entre LaunchAgent et LaunchDaemon et les charger avec launchctl
Les LaunchAgents et les LaunchDaemons résident dans des répertoires différents, s'exécutent dans des domaines launchd distincts et se gèrent avec les sous-commandes modernes bootstrap/bootout/enable/kickstart/print, et non avec la paire obsolète load/unload. Cette méthodologie explique comment choisir le bon domaine, écrire un plist minimal et vérifier l'état du service.
-
Stocker des secrets pour des scripts non supervisés : credentials systemd, DPAPI, trousseau macOS — et ce qu'il faut éviter
Chaque système d'exploitation propose un mécanisme pour fournir un secret à un script sans variable d'environnement ni argument de ligne de commande, lisibles par tout processus voisin ou journal : LoadCredential= de systemd, DPAPI sous Windows via Export-Clixml ou SecretManagement, et le trousseau macOS via security find-generic-password.
-
Vérifier les profils de configuration et l'état d'inscription MDM depuis le Terminal avec profiles
La commande profiles liste les profils de configuration installés et indique l'état d'inscription MDM ; certains réglages, comme le séquestre du bootstrap token ou le report forcé des mises à jour, ne peuvent être définis que par un service de gestion des appareils, et non depuis une session Terminal locale.
-
Installer les mises à jour de macOS sans surveillance en ligne de commande avec softwareupdate
softwareupdate permet de lister, d'installer et de redémarrer pour appliquer des mises à jour sans passer par les Réglages Système. Sur Apple silicon, --fetch-full-installer exige l'authentification d'un propriétaire de volume, et une politique de report gérée peut masquer entièrement des mises à jour dans --list ; cette méthodologie couvre les deux cas.
-
Comparaison de la synchronisation d'horloge : chrony, systemd-timesyncd, w32tm, timed de macOS et xntpd d'AIX
Aide-mémoire pour vérifier si l'horloge d'un hôte est réellement synchronisée, avec les démons de temps utilisés sous Linux, Windows, macOS et AIX. Il ne s'agit pas d'une étude approfondie d'un outil en particulier, car la vérification a partout la même forme : une source est-elle configurée, et l'horloge est-elle actuellement synchronisée ?
-
Vérifier qu'une sauvegarde Time Machine existe avant une modification risquée : tmutil et snapshots APFS locaux
tmutil indique la destination de sauvegarde et l'horodatage de la dernière sauvegarde terminée, et peut en lancer une nouvelle en attendant sa fin ; les snapshots APFS locaux ne sont qu'un confort sur le même disque et ne remplacent jamais la vérification d'une sauvegarde hors du disque avant une opération destructive.
-
Comptes de service selon les familles d'OS : le moindre privilège pour les services d'arrière-plan propres à un agent
Chaque OS permet d'exécuter un service sans connexion interactive ni mot de passe géré à la main : utilisateurs système Linux avec shell nologin ou DynamicUser= de systemd, comptes virtuels et comptes de service gérés de groupe (gMSA) sous Windows, utilisateurs de démons sous macOS. Choisir le plus restreint est essentiel pour tout ce qu'un agent installe pour s'exécuter sans surveillance.
-
Exécuter Homebrew en mode non interactif sur un agent de build : NONINTERACTIVE, variables d'environnement et Brewfile
Le programme d'installation de Homebrew, sa mise à jour automatique, sa télémétrie et les versions des formules se pilotent sans aucune invite sur un runner CI, et un Brewfile rend l'ensemble des paquets installés reproductible d'un runner à l'autre.
-
Interroger le journal unifié de macOS : log show, log stream et prédicats
Le journal unifié est stocké dans un format binaire compressé, et non dans des fichiers texte : il faut donc l'interroger avec l'outil log. Cette méthodologie couvre log show et log stream avec prédicats, fenêtres temporelles et sortie JSON, ainsi que l'archivage du journal avec log collect pour une analyse ultérieure.
-
Faire confiance à une autorité de certification privée sous macOS et Windows, et vérifier que le changement est bien effectif
Sous macOS, une AC racine devient approuvée pour tout le système via le trousseau System avec `security add-trusted-cert` ; sous Windows, via le magasin Local Machine Root avec Import-Certificate ou certutil -addstore. Dans les deux cas, le changement reste silencieux tant qu'il n'est pas vérifié séparément, et il diffère d'une approbation limitée à un utilisateur ou à un navigateur.
-
Comparaison des modèles de permissions de fichiers : bits POSIX, ACL POSIX, ACL NFSv4/ZFS, NTFS et ACL macOS
Les bits de mode POSIX, les ACL POSIX, le modèle d'ACL NFSv4/ZFS, les ACL NTFS et les ACL macOS expriment chacun le contrôle d'accès à leur manière, et presque rien n'en survit à la copie d'un fichier d'un système à l'autre. Cette référence indique les commandes de lecture et d'écriture pour chaque modèle, ainsi que ce qui est perdu silencieusement lors du transfert.
-
Options de démarrage de macOS pour les administrateurs : Recovery, Utilitaire de sécurité au démarrage et Premiers secours de l'Utilitaire de disque
macOS Recovery (accessible différemment sur les Mac Apple silicon et Intel), l'Utilitaire de sécurité au démarrage, le mode sans échec et les Premiers secours de l'Utilitaire de disque couvrent l'essentiel de la récupération non destructive sur un Mac que l'administrateur contrôle physiquement ; la protection de l'intégrité du système (SIP) limite ce que même un processus administrateur peut modifier en dehors de ces voies.
Lisible par machine : JSON