User/Groups anlegen (MacOS X Leopard)

Diesen Beitrag schrieb ich 14 Jahre und 3 Monate zuvor; die nachfolgenden Ausführungen müssen heute nicht unbedingt noch genau so funktionieren. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 1 Minute

Ziemliche Pfriemelei: da möchte man einen bestimmten Dienst auf dem Mac ans Laufen bringen, doch useradd und adduser sind nicht auf dem System vorhanden bzw. verhalten sich völlig Banane… Nun, MacOS ist nun einmal kein Linux – deshalb hier in Kürze, wie User und Gruppen (unter anderem) angelegt werden können.

$ sudo dscl .
Password:
> cd Groups
/Groups > list . ##Auflistung aller aktuell im System vorhandenen Gruppen
/Groups > list . PrimaryGroupID ##Auflistung incl. Group-IDs, freie Group-ID suchen
/Groups > create _nagcmd ##neue Gruppe namens _nagcmd anlegen
/Groups > append _nagcmd RecordName nagcmd ##Gruppe _nagcmd Alias nagcmd zuweisen
/Groups > create _nagcmd PrimaryGroupID 701 ##Gruppe _nagcmd ID 701 zuweisen
/Groups > create _nagcmd RealName "nagios control group" ##Gruppe _nagcmd etwas Blabla zuweisen
/Groups > cd ../Users ##zu den Usern hüpfen
/Users > list . UniqueID ##User nebst IDs anzeigen und freie ID suchen
/Users > create _nagios ##User _nagios anlegen
/Users > append _nagios RecordName nagios ##User _nagios erhält Alias nagios
<main> attribute status: eDSRecordAlreadyExists
<dscl_cmd> DS Error: -14135 (eDSRecordAlreadyExists) ##Hoppla, den gibt's schon!
/Users > delete nagios ##Raus damit.
/Users > append _nagios RecordName nagios ##Jetzt aber...
/Users > create _nagios RealName "nagios control user" ##Kommentar zum User
/Users > create _nagios UniqueID 701 ##User-ID
/Users > create _nagios PrimaryGroupID 701 ##Primärgruppe für _nagios
/Users > create _nagios UserShell /usr/bin/false ##Shell für _nagios
/Users > append /Groups/_nagcmd GroupMembership _www ##siehe unten
/Users > quit

Zum letzten Schritt sei noch kurz erwähnt: er ändert nicht die primäre Gruppenzugehörigkeit, er fügt den User _www (dessen Primärgruppe ebenfalls _www heißt) lediglich zusätzlich in die Gruppe _nagcmd ein. Auf diese Art funktioniert es erst ab MacOS X Leopard; ältere Versionen setzen auf NetInfo (wie auch schon NeXT, BTW), wohingegen Leopard Directory Services nutzt (dscl steht für Directory Service Command Line Utility).