dscl — Verzeichnisdienste und Benutzer verwalten
Praxis-Guide zu dscl — lokale Nutzer und Gruppen unter macOS über die Directory-Service-Kommandozeile abfragen, anlegen, ändern und löschen.
dscl ist das Kommandozeilenwerkzeug für den Directory Service unter macOS – damit fragst du lokale Nutzer, Gruppen und deren Attribute ab und verwaltest sie direkt im Terminal. Der erste Parameter benennt den Verzeichnisknoten; der Punkt . steht dabei für den lokalen Knoten deines Macs. Anders als useradd/usermod unter Linux arbeitet dscl auf der Verzeichnisdatenbank von macOS und ist das richtige Werkzeug, um Konten skriptgesteuert anzulegen oder zu reparieren. Dieser Guide zeigt dir die wichtigsten Befehle vom reinen Abfragen bis zum vollständigen Anlegen eines neuen Benutzers.
Auflisten & Auslesen
dscl . -list /Users — Listet alle lokalen Nutzer auf.
dscl . -list /Usersdscl . -list /Users UniqueID — Listet alle Nutzer mit ihren UIDs auf.
dscl . -list /Users UniqueIDdscl . -list /Groups — Listet alle lokalen Gruppen auf.
dscl . -list /Groupsdscl . -read /Users/<user> — Zeigt alle Attribute eines Nutzers an.
dscl . -read /Users/admindscl . -read /Users/<user> UserShell — Zeigt ein einzelnes Nutzer-Attribut an.
dscl . -read /Users/admin UserShelldscl . -read /Groups/<group> GroupMembership — Zeigt die Mitglieder einer Gruppe an.
dscl . -read /Groups/admin GroupMembershipNutzer anlegen
dscl . -create /Users/<user> — Legt einen neuen Nutzer-Datensatz an.
sudo dscl . -create /Users/newuserdscl . -create /Users/<user> UserShell /bin/zsh — Setzt die Login-Shell des Nutzers.
sudo dscl . -create /Users/newuser UserShell /bin/zshdscl . -create /Users/<user> RealName '<name>' — Setzt den vollständigen Namen des Nutzers.
sudo dscl . -create /Users/newuser RealName 'John Doe'dscl . -create /Users/<user> UniqueID <uid> — Setzt die UID des Nutzers.
sudo dscl . -create /Users/newuser UniqueID 550dscl . -create /Users/<user> PrimaryGroupID <gid> — Setzt die primäre Gruppen-ID des Nutzers.
sudo dscl . -create /Users/newuser PrimaryGroupID 20dscl . -create /Users/<user> NFSHomeDirectory /Users/<user> — Setzt den Pfad zum Home-Verzeichnis.
sudo dscl . -create /Users/newuser NFSHomeDirectory /Users/newuserdscl . -passwd /Users/<user> '<password>' — Setzt das Passwort des Nutzers.
sudo dscl . -passwd /Users/newuser 'secretpass'Ändern & Löschen
dscl . -change /Users/<user> UserShell <old> <new> — Ändert ein Nutzer-Attribut.
sudo dscl . -change /Users/admin UserShell /bin/bash /bin/zshdscl . -append /Groups/<group> GroupMembership <user> — Fügt einen Nutzer zu einer Gruppe hinzu.
sudo dscl . -append /Groups/admin GroupMembership newuserdscl . -delete /Groups/<group> GroupMembership <user> — Entfernt einen Nutzer aus einer Gruppe.
sudo dscl . -delete /Groups/admin GroupMembership newuserdscl . -delete /Users/<user> — Löscht ein Nutzerkonto.
sudo dscl . -delete /Users/olduserGruppen
dscl . -create /Groups/<group> — Legt eine neue Gruppe an.
sudo dscl . -create /Groups/developersdscl . -create /Groups/<group> PrimaryGroupID <gid> — Setzt die GID der Gruppe.
sudo dscl . -create /Groups/developers PrimaryGroupID 600dscl . -delete /Groups/<group> — Löscht eine Gruppe.
sudo dscl . -delete /Groups/developersHäufige Muster
dscl . -list /Users | grep -v '^_' — Listet nur echte Nutzer auf (System-Nutzer mit _ am Anfang ausgeschlossen).
dscl . -list /Users | grep -v '^_'dscl . -list /Users UniqueID | sort -nk2 — Listet Nutzer nach UID sortiert auf.
dscl . -list /Users UniqueID | sort -nk2id <user> — Schneller Weg, UID, GID und Gruppen eines Nutzers zu prüfen.
id admindscacheutil -flushcache — Leert den Cache des Directory Service.
sudo dscacheutil -flushcache Fazit
dscl ist unter macOS das direkteste Werkzeug, um lokale Konten skriptgesteuert zu inspizieren und zu pflegen – vom schnellen -read bis zum vollständigen Anlegen eines Nutzers mit UID, Shell, Gruppe und Home-Verzeichnis. Sei dir bewusst, dass jeder schreibende Aufruf (-create, -change, -append, -delete, -passwd) sudo benötigt und die Verzeichnisdatenbank unmittelbar verändert. Gerade -delete und -passwd solltest du mit Bedacht einsetzen: Ein falscher Pfad oder eine vergessene Pflicht-Eigenschaft (etwa eine UID) kann Logins sperren oder ein Konto unbrauchbar machen. Teste neue Befehle nach Möglichkeit zuerst an einem Wegwerf-Konto, bevor du sie auf produktive Nutzer loslässt.
Weiterführende Links
- dscl(1) — macOS Manual Page — vollständige Optionsreferenz (englisch)
- Apple Developer Documentation — offizielle Dokumentation zu macOS und seinen Diensten (englisch)
Verwandte Kommandos
- caffeinate – verhindert, dass der Mac in den Ruhezustand wechselt
- defaults – liest und schreibt Einstellungen in macOS-Property-Lists
- diskutil – verwaltet Festplatten, Volumes und Partitionen