Estoy tratando de escribir un script para agregar un usuario a una computadora. Estas no serán cuentas de administrador y deberían ser cuentas de personal. Ejecuté el siguiente script y puedo iniciar sesión en la cuenta, pero no puedo acceder a ningún archivo, crear ningún archivo ni guardar ningún archivo en la computadora.
En última instancia, me gustaría ejecutar esto para eliminar 5 cuentas de usuario y toda su información y luego crear 5 cuentas nuevas (esto es en un salón de clases donde tengo 36 computadoras), pero estoy luchando para crear un solo usuario correctamente con el siguiente script.
Cualquier ayuda sería muy apreciada.
#!/bin/bash
USERNAME=per1
FULLNAME="Period 1"
PASSWORD="test"
SECONDARY_GROUPS="staff"
# ====
if [[ $UID -ne 0 ]]; then echo "Please run $0 as root." && exit 1; fi
# Find out the next available user ID
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))
# Create the user account
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
# Add use to any specified groups
for GROUP in $SECONDARY_GROUPS ; do
dseditgroup -o edit -t user -a $USERNAME $GROUP
done
# Create the home directory
createhomedir -c > /dev/null
echo "Created user #$USERID: $USERNAME ($FULLNAME)"
#!/bin/bash
USERNAME=per1
FULLNAME="Period 1"
PASSWORD="test"
SECONDARY_GROUPS="staff"
# ====
if [[ $UID -ne 0 ]]; then echo "Please run $0 as root." && exit 1; fi
# Find out the next available user ID
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))
# Create the user account
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
# Add use to any specified groups
for GROUP in $SECONDARY_GROUPS ; do
dseditgroup -o edit -t user -a $USERNAME $GROUP
done
# Create the home directory
createhomedir -c -u $USERNAME > /dev/null
echo "Created user #$USERID: $USERNAME ($FULLNAME)"
-u $USERNAME
al createhomedir
comando.La respuesta de John Vincent es muy útil ya que puede crear el usuario para usted a través de un script ...
También querrá considerar la creación de estado de token seguro para el nuevo usuario si planea activar FileVault para el usuario.
Más información importante sobre SecureToken: https://derflounder.wordpress.com/2018/01/20/secure-token-and-filevault-on-apple-file-system/
Puede agregar el token seguro usando lo siguiente con la raíz:
sysadminctl -adminUser root -adminPassword <rootPassword> -secureTokenOn <user> -password <userPassword>
Puede verificar el estado del token seguro de esta manera:
sysadminctl -secureTokenStatus username_goes_here
sin ladera
Juan Vicente
Juan Vicente
sin ladera
createhomedir
saber para qué usuario debe crear un directorio de inicio?Juan Vicente
gordon davisson
staff
como un grupo secundario, ya que ya se está configurando como el grupo principal de los usuarios (el personal es el grupo n.º 20). Además, recomiendo usar minúsculas o mayúsculas y minúsculas para las variables de entorno y de shell, ya que hay un montón de variables en mayúsculas (como$PATH
,$USER
,$UID
, etc.) que tienen significados especiales, y si accidentalmente reutiliza una de ellas para algo de lo contrario, puede causar problemas.