Comment créer des comptes d'utilisateurs à partir du terminal dans Mac OS X 10.11?


23

Je souhaiterais pouvoir créer de nouveaux utilisateurs sous Mac OS X 10.11 à distance après m'être installé sur la machine. Sur Mountain Lion, ces étapes ont été répertoriées .

Fonctionnement

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

Après ce qui précède, l'utilisateur ne devient pas administrateur. Et ensuite?


Réponses:


6

La documentation manque d'une étape importante:

reboot

ou

sudo reboot

Après le redémarrage, l'utilisateur bénéficie de droits d'administrateur visibles dans Préférences Système -> Utilisateurs et groupes.

Mais: même sans redémarrer, l'utilisateur est déjà administrateur - il n'est tout simplement pas visible dans le PrefPane. Si vous vous connectez en tant que joeadmin immédiatement après la création du compte (par exemple, changement rapide d'utilisateur), le rôle d'administrateur est visible depuis son compte.


Bonne réponse. J'allais faire un commentaire au PO pour lui demander à quoi ressemble le compte n'est pas administrateur pour creuser comment ils utilisaient l'utilisateur ou testaient l'appartenance au groupe administrateur. Selon la façon dont ils vérifient, une déconnexion peut être tout ce dont ils ont besoin pour que leur utilisateur actuel lise le nouvel utilisateur en tant qu'administrateur ...
bmike

13

Si vous êtes ici et que votre système exécute quelque chose de 10.10 et plus récent, la commande sysadminctl est votre meilleur ami. Il fait beaucoup de magie que DSCL ne peut pas faire.

Voici la sortie pour 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.

Ensuite, vous voudrez faire:

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

Pour ajouter / supprimer des utilisateurs, utilisez dseditgroup:

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

la commande sudo createhomedir -c 2>&1 | grep -v "shell-init"crée également un dossier dans /var/setupune installation propre
Burcardo

@Burcardo, ça va tant que les comptes fonctionnent, et les utilisateurs peuvent utiliser passwd pour changer leurs propres mots de passe. En fait, aucune de mes machines n'a rencontré de problème avec la création de ce dossier.
ub3rdud3

4

Après de nombreux tests, j'ai créé ce script pour créer des comptes d'utilisateurs à partir du terminal.

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

vous pouvez vous débarrasser de la ligne mv / Users / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME # Déplace le dossier de départ admin vers / var avec un indicateur dans votre commande sysadminctl -home / var / $ LOCAL_ADMIN_SHORTNAME
ub3rdud3

0

PrimaryGroupID doit être défini sur 80 pour créer un compte administrateur.

dscl . -create /Users/joeadmin PrimaryGroupID 80

consultez ce fil pour plus d'informations.

J'ai également écrit un script à cet effet. Voici le lien essentiel

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.