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

18

Mi piacerebbe essere in grado di creare nuovi utenti in Mac OS X 10.11 da remoto dopo l'esecuzione di ssh'ing nella macchina. Su Mountain Lion, questi passaggi sono stati elencati .

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. Cosa succederà?

    
posta lobirkeland 03.02.2016 - 15:01
fonte

4 risposte

5

La documentazione manca di un passaggio importante:

reboot

o

sudo reboot

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

Ma: anche senza riavviare già l'utente è - non è visibile in PrefPane. Se accedi come joeadmin subito dopo aver creato l'account (ad esempio, cambio utente rapido) il ruolo di amministratore è visibile dal suo account.

    
risposta data 03.02.2016 - 15:33
fonte
12

Se sei qui e il tuo sistema esegue qualsiasi cosa a partire dalla 10.10 e successive, il comando sysadminctl è il tuo migliore amico. Fa un sacco di 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.

Allora vorrai fare:

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

Per aggiungere / rimuovere utenti usa dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel
    
risposta data 24.07.2017 - 16:19
fonte
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
    
risposta data 30.03.2017 - 11:30
fonte
0

PrimaryGroupID devono essere impostati su 80 per creare un account amministratore.

dscl . -create /Users/joeadmin PrimaryGroupID 80

controlla questo thread per ulteriori informazioni.

Ho anche scritto uno script per questo scopo. Ecco il link di prova

    
risposta data 16.05.2018 - 11:32
fonte

Leggi altre domande sui tag