4 votes

Comment puis-je créer un nouvel utilisateur via le terminal macOS 10.14

Je suis en train d'essayer d'écrire un script pour ajouter un utilisateur à un ordinateur. Il ne s'agira pas de comptes administrateurs, mais de comptes du personnel. J'ai exécuté le script suivant et je peux me connecter au compte, mais je ne peux pas accéder à fichiers, créer des fichiers ou enregistrer des fichiers sur l'ordinateur.

En fin de compte, j'aimerais exécuter cela pour supprimer 5 comptes d'utilisateurs et toutes leurs informations, puis créer 5 nouveaux comptes (c'est dans une salle de classe où j'ai 36 ordinateurs), mais j'ai du mal à créer un seul utilisateur correctement avec le script suivant.

Toute aide serait grandement appréciée.

#!/bin/bash

USERNAME=per1
FULLNAME="Période 1"
PASSWORD="test"
GROUPES_SECONDAIRES="staff" 

# ====

if [[ $UID -ne 0 ]]; then echo "Veuillez exécuter $0 en tant que superutilisateur." && exit 1; fi

# Trouver le prochain identifiant d'utilisateur disponible
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))

# Créer le compte utilisateur
dscl . -create /Users/$USERNAME
dscl . -create /Users/$USERNAME UserShell /bin/bash
dscl . -create /Users/$USERNAME RealName "$FULLNAME"
dscl . -create /Users/$USERNAME UniqueID "$USERID"
dscl . -create /Users/$USERNAME PrimaryGroupID 20
dscl . -create /Users/$USERNAME NFSHomeDirectory /Users/$USERNAME

dscl . -passwd /Users/$USERNAME $PASSWORD

# Ajouter l'utilisateur aux groupes spécifiés
for GROUP in $GROUPES_SECONDAIRES ; do
    dseditgroup -o edit -t user -a $USERNAME $GROUP
done

# Créer le répertoire personnel
createhomedir -c > /dev/null

echo "Utilisateur #$USERID créé: $USERNAME ($FULLNAME)"

4voto

John Vincent Points 81
#!/bin/bash

USERNAME=per1
FULLNAME="Période 1"
PASSWORD="test"
SECONDARY_GROUPS="staff" 

# ====

if [[ $UID -ne 0 ]]; then echo "Veuillez exécuter $0 en tant que root." && exit 1; fi

# Trouver le prochain ID utilisateur disponible
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))

# Créer le compte utilisateur
dscl . -create /Users/$USERNAME
dscl . -create /Users/$USERNAME UserShell /bin/bash
dscl . -create /Users/$USERNAME RealName "$FULLNAME"
dscl . -create /Users/$USERNAME UniqueID "$USERID"
dscl . -create /Users/$USERNAME PrimaryGroupID 20
dscl . -create /Users/$USERNAME NFSHomeDirectory /Users/$USERNAME

dscl . -passwd /Users/$USERNAME $PASSWORD

# Ajouter l'utilisateur aux groupes spécifiés
for GROUP in $SECONDARY_GROUPS ; do
    dseditgroup -o edit -t user -a $USERNAME $GROUP
done

# Créer le répertoire personnel
createhomedir -c -u $USERNAME > /dev/null

echo "Utilisateur créé #$USERID : $USERNAME ($FULLNAME)"

0voto

La réponse de John Vincent est très utile car elle peut créer l'utilisateur pour vous via un script...

Vous voudrez également considérer la création du statut secureToken pour le nouvel utilisateur si vous envisagez d'activer FileVault pour l'utilisateur.

Quelques informations importantes concernant SecureToken : https://derflounder.wordpress.com/2018/01/20/secure-token-and-filevault-on-apple-file-system/

Vous pouvez ajouter le secureToken en utilisant la commande suivante avec root :

sysadminctl -adminUser root -adminPassword  -secureTokenOn  -password 

Vous pouvez vérifier l'état du secureToken de cette manière :

sysadminctl -secureTokenStatus username_goes_here

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X