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?
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.
gui
wir 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
sudo createhomedir -c 2>&1 | grep -v "shell-init"
erstellt auch einen Ordner in /var/setup
bei einer NeuinstallationNach 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
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
staff
eine 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.
admin
dseditgroup
staff
Fahrrad