Come posso creare account utente dal Terminale in Mac OS X 10.11?


23

Vorrei essere in grado di creare nuovi utenti in Mac OS X 10.11 in remoto dopo aver inserito la macchina. Su Mountain Lion, questi passaggi sono stati elencati .

In esecuzione

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

Dopo quanto sopra, l'utente non diventa amministratore. Quale prossimo?


Risposte:


6

La documentazione manca di un passaggio importante:

reboot

o

sudo reboot

Dopo il riavvio, l'utente gode dei diritti di amministratore visibili in Preferenze di Sistema -> Utenti e gruppi.

Ma: anche senza riavviare l'utente è già admin - non è visibile nel PrefPane. Se accedi come joeadmin immediatamente dopo aver creato l'account (ad es. Cambio rapido utente), il ruolo di amministratore è visibile dal suo account.


Bella risposta. Stavo per commentare l'OP per chiedere che aspetto ha l'account non come amministratore per scoprire come stavano usando l'utente o testando l'appartenenza al gruppo di amministratori. A seconda di come controllano, una disconnessione potrebbe essere tutto ciò di cui hanno bisogno affinché il loro attuale utente legga il nuovo utente come admin ...
— bmike

13

Se sei qui e il tuo sistema esegue qualcosa dalla 10.10 in poi, il comando sysadminctl è il tuo migliore amico. Fa molta magia che DSCL non può fare.

Ecco l'output per 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.

Quindi ti consigliamo di fare:

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

Per aggiungere / rimuovere utenti utilizzare dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel

il comando sudo createhomedir -c 2>&1 | grep -v "shell-init"crea anche una cartella in /var/setupun'installazione pulita
— Burcardo

@Burcardo va bene finché gli account funzionano e gli utenti possono usare passwd per cambiare le proprie password. In effetti nessuna delle mie macchine ha avuto problemi con la creazione di quella cartella.
— ub3rdud3,

4

Dopo molti test, ho creato questo script per creare account utente dal terminale.

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

puoi sbarazzarti della riga mv / Users / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME # Sposta la cartella home dell'amministratore in / var con una bandiera nel comando sysadminctl -home / var / $ LOCAL_ADMIN_SHORTNAME
— ub3rdud3

0

PrimaryGroupID deve essere impostato su 80 per creare un account amministratore.

dscl . -create /Users/joeadmin PrimaryGroupID 80

controlla questa discussione per maggiori informazioni.

Ho anche scritto una sceneggiatura per questo scopo. Ecco il link gist

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.