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.