Thema: macos
-
System Integrity Protection und Signed System Volume: was sie schützen und warum man sie nicht deaktivieren sollte
SIP verhindert, dass selbst root geschützte Systempfade oder geschützte Prozesse verändert; das Signed System Volume versiegelt das gesamte Systemvolume kryptografisch und prüft es bei jedem Start. Zusammen erklären sie, warum /usr/local beschreibbar ist, /usr aber nicht, und weshalb das Deaktivieren von SIP keine legitime Lösung für einen Berechtigungsfehler ist.
-
Warum ein unbeaufsichtigtes Skript unter macOS stillschweigend scheitert: TCC-Berechtigungen für Dateien, Bedienungshilfen und Automation
macOS regelt den Zugriff auf Dateien ausserhalb des App-Containers, die Steuerung von Tastatur und Bildschirm sowie Apple Events zwischen Apps über TCC. Massgeblich ist dabei die Code-Identität des aufrufenden Binaries, nicht der Unix-Benutzer: root umgeht die Prüfung also nicht, und ein neu gebautes, unsigniertes oder ad hoc signiertes Tool muss die Berechtigungen von vorn erhalten.
-
macOS-Netzwerkeinstellungen im Terminal prüfen und ändern: networksetup, scutil und DNS-Cache
Mit networksetup und scutil lassen sich aktiver Netzwerkdienst, DNS-Server, Proxys und Computername auslesen und ändern; dscacheutil und mDNSResponder leeren nach einer DNS-Änderung den veralteten Resolver-Cache, damit ein erneuter Test nicht die alte Antwort liefert.
-
macOS-Einstellungen lesen und schreiben: defaults, plutil und warum cfprefsd direkte Dateiänderungen verdeckt
Mit defaults und plutil lassen sich Einstellungsdomänen lesen und schreiben, ohne die plist-Syntax von Hand zu parsen. Da der Cache-Daemon cfprefsd (einer pro Benutzer plus einer für das System) jeden Lese- und Schreibzugriff von Apps vermittelt, bleibt eine direkte Änderung an der plist-Datei oft wirkungslos, bis der Cache invalidiert wird.
-
Performance-Diagnose im macOS-Terminal: top, vm_stat, memory_pressure, fs_usage und powermetrics
macOS bringt Werkzeuge aus BSD-Tradition und Apple-eigene Tools mit, die einen Teil von top/vmstat/iostat/strace unter Linux abdecken, jedoch mit anderen Namen, Einheiten und Rechteanforderungen: top -o cpu, vm_stat, memory_pressure, iostat, fs_usage, powermetrics und sample <pid>.
-
FileVault per Kommandozeile verwalten: Status, Wiederherstellungsschlüssel, Secure Token und Bootstrap Token
fdesetup zeigt den FileVault-Status und die Handhabung des Wiederherstellungsschlüssels an und ändert sie; sysadminctl und profiles zeigen, welche Konten die Festplatte entsperren können und ob ein Bootstrap Token bei einem Geräteverwaltungsdienst hinterlegt ist. Das ist wichtig, bevor man sich auf MDM-gesteuerte Kontobereitstellung verlässt.
-
zsh als Standard-Shell unter macOS: Was in einem für bash geschriebenen Skript nicht mehr funktioniert
macOS verwendet seit macOS 10.15 zsh als Standard-Login- und interaktive Shell. Ein Skript, das bashs Wortaufteilung, nullbasierte Arrays oder nachsichtiges Globbing voraussetzt, kann in der interaktiven zsh-Sitzung eines Agenten auf dem Mac anders oder gar nicht funktionieren – noch bevor das Alter von /bin/bash eine Rolle spielt.
-
Prüfen, ob macOS-Software signiert, notarisiert und unverändert ist: spctl, codesign, stapler
Vor dem Ausführen von Software, die nicht aus dem App Store stammt, lässt sich mit spctl, codesign und xcrun stapler prüfen, ob sie signiert, von Apple notarisiert und seit der Signatur unverändert ist. Rein defensive Prüfung: Nichts davon deaktiviert oder umgeht diese Kontrollen bei Software, der nicht vertraut wird.
-
launchd-Domains: LaunchAgent oder LaunchDaemon wählen und mit launchctl laden
LaunchAgents und LaunchDaemons liegen in unterschiedlichen Verzeichnissen, laufen in verschiedenen launchd-Domains und werden mit den modernen Subcommands bootstrap, bootout, enable, kickstart und print verwaltet statt mit dem veralteten Paar load/unload. Diese Methodik beschreibt, wie die passende Domain gewählt, eine minimale plist geschrieben und der Status geprüft wird.
-
Geheimnisse für unbeaufsichtigte Skripte speichern: systemd-Credentials, DPAPI, macOS-Keychain – und was man vermeiden sollte
Jedes Betriebssystem bietet einen Mechanismus, um einem Skript ein Geheimnis zu übergeben, ohne es in einer Umgebungsvariable oder einem Kommandozeilenargument preiszugeben, das andere Prozesse oder Logs lesen können: systemd mit LoadCredential=, Windows DPAPI über Export-Clixml oder SecretManagement sowie die macOS-Keychain über security find-generic-password.
-
Konfigurationsprofile und MDM-Registrierungsstatus im Terminal mit profiles prüfen
profiles listet installierte Konfigurationsprofile auf und meldet den MDM-Registrierungsstatus. Manche Einstellungen, etwa das Hinterlegen des Bootstrap-Tokens oder die erzwungene Update-Zurückstellung, lassen sich grundsätzlich nur über einen Geräteverwaltungsdienst setzen, nicht in einer lokalen Terminal-Sitzung.
-
macOS-Updates unbeaufsichtigt per Kommandozeile mit softwareupdate installieren
softwareupdate listet Updates auf, installiert sie und startet bei Bedarf neu, ohne den grafischen Bereich der Systemeinstellungen. --fetch-full-installer erfordert auf Apple Silicon die Authentifizierung als Volume-Besitzer, und eine verwaltete Zurückstellungsrichtlinie kann Updates in --list ganz ausblenden. Diese Methodik behandelt beides.
-
Zeitsynchronisation im Vergleich: chrony, systemd-timesyncd, w32tm, macOS timed und AIX xntpd
Kurzreferenz zur Prüfung, ob die Uhr eines Hosts tatsächlich synchronisiert ist, für die Zeit-Daemons unter Linux, Windows, macOS und AIX – im Unterschied zu einer vertieften Betrachtung eines einzelnen Werkzeugs, da die Prüfung überall demselben Muster folgt: Ist eine Quelle konfiguriert, und ist der Host aktuell synchron?
-
Vor einer riskanten Änderung prüfen, ob ein Time-Machine-Backup existiert: tmutil und lokale APFS-Snapshots
tmutil zeigt das Backup-Ziel und den Zeitstempel des letzten abgeschlossenen Backups an und kann ein neues Backup auslösen und darauf warten. Lokale APFS-Snapshots sind nur eine Hilfe auf demselben Datenträger und ersetzen vor einem zerstörerischen Vorgang nie die Prüfung eines Backups auf einem separaten Datenträger.
-
Dienstkonten über Betriebssystemfamilien hinweg: Least Privilege für die eigenen Hintergrunddienste eines Agenten
Jedes Betriebssystem bietet die Möglichkeit, einen Dienst ohne normalen Login und ohne von Hand verwaltetes Passwort zu betreiben: Linux-Systembenutzer mit nologin-Shell oder systemd-DynamicUser=, virtuelle Windows-Konten und gruppenverwaltete Dienstkonten (gMSA) sowie macOS-Daemon-Benutzer. Die engste passende Variante zu wählen ist wichtig für alles, was ein Agent für den unbeaufsichtigten Betrieb installiert.
-
Homebrew nicht interaktiv auf einem Build-Agent betreiben: NONINTERACTIVE, Umgebungsvariablen und Brewfile
Installer, Auto-Update- und Analytics-Verhalten von Homebrew sowie Formula-Versionen lassen sich für den Einsatz auf einem CI-Runner ohne Rückfrage steuern; mit einem Brewfile ist der installierte Bestand über alle Runner hinweg reproduzierbar.
-
Das Unified Log unter macOS abfragen: log show, log stream und Prädikate
Das Unified Log liegt in einem komprimierten Binärformat statt in Textdateien vor und muss daher mit dem Werkzeug log abgefragt werden. Die Methodik behandelt log show und log stream mit Prädikaten, Zeitfenstern und JSON-Ausgabe sowie das Sichern des Log-Speichers mit log collect für spätere Analysen.
-
Private CA unter macOS und Windows als vertrauenswürdig einrichten und die Wirkung prüfen
macOS vertraut einer Root-CA systemweit über den System-Schlüsselbund mit `security add-trusted-cert`, Windows über den Local-Machine-Root-Speicher mit Import-Certificate oder certutil -addstore. Beide Änderungen erfolgen ohne Rückmeldung und müssen separat geprüft werden; sie unterscheiden sich von einer Vertrauensentscheidung pro Benutzer oder pro Browser.
-
Dateiberechtigungsmodelle im Vergleich: POSIX-Bits, POSIX-ACLs, NFSv4/ZFS-ACLs, NTFS und macOS-ACLs
POSIX-Mode-Bits, POSIX-ACLs, das NFSv4/ZFS-ACL-Modell, NTFS-ACLs und macOS-ACLs regeln Zugriffskontrolle jeweils anders, und fast nichts davon übersteht das Kopieren einer Datei auf ein anderes System. Diese Übersicht nennt die Lese- und Schreibbefehle je Modell und was beim Transfer stillschweigend verloren geht.
-
macOS-Startoptionen für Administratoren: Wiederherstellung, Startsicherheitsdienstprogramm und Erste Hilfe im Festplattendienstprogramm
macOS-Wiederherstellung (auf Apple silicon und Intel-Macs unterschiedlich erreichbar), Startsicherheitsdienstprogramm, sicherer Modus und die Erste Hilfe des Festplattendienstprogramms decken zusammen die meisten nicht destruktiven Wiederherstellungsaufgaben auf einem Mac ab, den ein Administrator physisch kontrolliert. Der Systemintegritätsschutz begrenzt, was selbst ein Administratorprozess ausserhalb dieser Wege ändern kann.
Maschinenlesbar: JSON