Wie erstelle ich Benutzerkonten über das Terminal in Mac OS X 10.11?

Ich möchte in der Lage sein, neue Benutzer in Mac OS X 10.11 aus der Ferne zu erstellen, nachdem ich mich per SSH in die Maschine eingeloggt habe. Auf Mountain Lion wurden diese Schritte aufgelistet .

Betrieb

dscl . -create /Users/joeadmin
dscl . -create /Users/joeadmin UserShell /bin/bash
dscl . -create /Users/joeadmin RealName "Joe Admin" 
dscl . -create /Users/joeadmin UniqueID "510"
dscl . -create /Users/joeadmin PrimaryGroupID 20
dscl . -create /Users/joeadmin NFSHomeDirectory /Users/joeadmin
dscl . -passwd /Users/joeadmin password 

dscl . -append /Groups/admin GroupMembership joeadmin

Danach wird der Benutzer kein Administrator. Was nun?

Antworten (4)

Der Dokumentation fehlt ein wichtiger Schritt:

reboot

oder

sudo reboot

Nach dem Neustart genießt der Benutzer sichtbare Admin-Rechte in Systemeinstellungen -> Benutzer und Gruppen.

Aber: Auch ohne Neustart ist der Benutzer bereits admin - er ist nur nicht im PrefPane sichtbar. Wenn Sie sich sofort nach dem Erstellen des Kontos als joeadmin anmelden (z. B. schneller Benutzerwechsel), ist die Admin-Rolle in seinem Konto sichtbar.

Gute Antwort. Ich wollte das OP kommentieren, um zu fragen , wie das Konto nicht als Administrator aussieht, um herauszufinden, wie sie den Benutzer verwendet oder die Mitgliedschaft in der Administratorgruppe getestet haben. Je nachdem, wie sie prüfen, reicht möglicherweise ein Abmelden aus, damit ihr aktueller Benutzer den neuen Benutzer als Administrator lesen kann ...
@klanomath, also können wir ohne Neustart keinen neuen Benutzer über die Befehlszeile hinzufügen? Mit können guiwir jedoch einen neuen Benutzer ohne Systemneustart hinzufügen.

Wenn Sie hier sind und auf Ihrem System etwas von 10.10 und neuer läuft, ist der Befehl sysadminctl Ihr bester Freund. Es macht eine Menge Magie, die DSCL nicht kann.

Hier ist die Ausgabe für sysadminctl:

sysadminctl[21233:29122637] Usage: sysadminctl
    -deleteUser <user name> [-secure || -keepHome]
    -newPassword <new password> -oldPassword <old password> [-passwordHint <password hint>]
    -resetPasswordFor <local user name> -newPassword <new password> [-passwordHint <password hint>]
    -addUser <user name> [-fullName <full name>] [-UID <user ID>] [-password <user password>] [-hint <user hint>] [-home <full path to home>] [-admin] [-picture <full path to user image>]

Pass '-' instead of password in commands above to request prompt.

Dann möchten Sie Folgendes tun:

sudo createhomedir -c 2>&1 | grep -v "shell-init"

Um Benutzer hinzuzufügen/zu entfernen, verwenden Sie dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel
Der Befehl sudo createhomedir -c 2>&1 | grep -v "shell-init"erstellt auch einen Ordner in /var/setupbei einer Neuinstallation
@Burcardo das ist in Ordnung, solange die Konten funktionieren und Benutzer passwd verwenden können, um ihre eigenen Passwörter zu ändern. Tatsächlich hatte keiner meiner Computer Probleme mit der Erstellung dieses Ordners.

Nach vielen Tests habe ich dieses Skript erstellt, um Benutzerkonten vom Terminal aus zu erstellen.

LOCAL_ADMIN_FULLNAME="Joe Admin"     # The local admin user's full name
LOCAL_ADMIN_SHORTNAME="joeadmin"     # The local admin user's shortname
LOCAL_ADMIN_PASSWORD="password"      # The local admin user's password

# Create a local admin user account
sysadminctl -addUser $LOCAL_ADMIN_SHORTNAME -fullName "$LOCAL_ADMIN_FULLNAME" -password "$LOCAL_ADMIN_PASSWORD"  -admin
dscl . create /Users/$LOCAL_ADMIN_SHORTNAME IsHidden 1  # Hides the account (10.10 and above)
mv /Users/$LOCAL_ADMIN_SHORTNAME /var/$LOCAL_ADMIN_SHORTNAME # Moves the admin home folder to /var
dscl . -create /Users/$LOCAL_ADMIN_SHORTNAME NFSHomeDirectory /var/$LOCAL_ADMIN_SHORTNAME # Create new home dir attribute
dscl . -delete "/SharePoints/$LOCAL_ADMIN_FULLNAME's Public Folder" # Removes the public folder sharepoint for the local admin
Sie können die Zeile mv /Users/$LOCAL_ADMIN_SHORTNAME /var/$LOCAL_ADMIN_SHORTNAME # entfernen. Verschiebt den Admin-Home-Ordner nach /var mit einem Flag in Ihrem sysadminctl-Befehl -home /var/$LOCAL_ADMIN_SHORTNAME

PrimaryGroupID muss auf 80 gesetzt werden , um ein Administratorkonto zu erstellen.

dscl . -create /Users/joeadmin PrimaryGroupID 80

Weitere Informationen finden Sie in diesem Thread .

Dazu habe ich auch ein Skript geschrieben. Hier ist der Hauptlink

Es ist besser, die Administratorkonten auf 20 (die Gruppe) festzulegen und dann mit dem Befehl staffeine sekundäre Mitgliedschaft hinzuzufügen . Es gibt einige Teile von macOS, die davon ausgehen, dass alle Benutzerkonten Mitglieder von sind , und ohne diese Mitgliedschaft kann Ihr Administratorkonto möglicherweise einige Dinge nicht tun, die selbst Standardkonten (Nicht-Administratoren) können. admindseditgroupstaff