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

23

Ich möchte in der Lage sein, neue Benutzer in Mac OS X 10.11 aus der Ferne zu erstellen, nachdem ich sie in den Computer eingelesen habe. Auf Mountain Lion wurden diese Schritte aufgelistet .

Laufen

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

Nach dem oben Gesagten wird der Benutzer nicht zum Administrator. Was nun?

Lobirkeland
quelle

Antworten:

6

Der Dokumentation fehlt ein wichtiger Schritt:

reboot

oder

sudo reboot

Nach dem Neustart hat der Benutzer sichtbare Administratorrechte in den Systemeinstellungen -> Benutzer und Gruppen.

Aber: auch ohne Neustart der Benutzer ist Admin schon - es ist einfach nicht sichtbar in der prefpane. Wenn Sie sich unmittelbar nach dem Erstellen des Kontos als joeadmin anmelden (z. B. schneller Benutzerwechsel), ist die Administratorrolle in seinem Konto sichtbar.

klanomath
quelle
Gute Antwort. Ich wollte dem OP einen Kommentar geben, um zu fragen, wie das Konto aussieht, als sei es nicht der Administrator, um herauszufinden, wie sie den Benutzer verwendeten oder die Mitgliedschaft in der Administratorgruppe testeten. Abhängig davon, wie sie prüfen, ist möglicherweise nur eine Abmeldung erforderlich, damit der aktuelle Benutzer den neuen Benutzer als Administrator
liest
13

Wenn Sie hier sind und auf Ihrem System eine Version ab 10.10 ausgeführt wird, 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 wirst du machen wollen:

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

Zum Hinzufügen / Entfernen von Benutzern verwenden Sie dseditgroup:

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

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
Lobirkeland
quelle
Sie können die Linie loswerden Hause mv / Users / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME # Verschiebt den Admin - Ordner / var mit einer Fahne in Ihrem sysadminctl Befehl -home / var / $ LOCAL_ADMIN_SHORTNAME
ub3rdud3
0

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

dscl . -create /Users/joeadmin PrimaryGroupID 80

Weitere Informationen finden Sie in diesem Thread .

Zu diesem Zweck habe ich auch ein Skript geschrieben. Hier ist der Hauptlink

Igor Voltaic
quelle