4 votos

¿Cómo puedo crear un nuevo usuario a través de la terminal en macOS 10.14?

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 archivos, crear archivos ni guardar archivos 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 aula 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 "Por favor, ejecuta $0 como root." && exit 1; fi

# Descubrir el próximo ID de usuario disponible
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))

# Crear la cuenta de usuario
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

# Agregar usuario a los grupos especificados
for GROUP in $SECONDARY_GROUPS ; do
    dseditgroup -o edit -t user -a $USERNAME $GROUP
done

# Crear el directorio de inicio
createhomedir -c > /dev/null

echo "Usuario creado #$USERID: $USERNAME ($FULLNAME)"

0 votos

¿Dónde / cómo exactamente el script no hace lo que quieres que haga?

0 votos

Esto está creando un usuario pero creo que hay un problema con la creación del directorio de inicio. Tal vez sea un problema de permisos. Por ejemplo, no puedo ver ninguna carpeta en Finder.

0 votos

Recibo este error mientras estoy conectado a la cuenta creada: La carpeta "Escritorio" no se puede abrir porque no tienes permiso para ver su contenido.

4voto

John Vincent Puntos 1
#!/bin/bash

USERNAME=per1
FULLNAME="Period 1"
PASSWORD="test"
SECONDARY_GROUPS="staff" 

# ====

if [[ $UID -ne 0 ]]; then echo "Por favor ejecuta $0 como root." && exit 1; fi

# Encuentra el próximo ID de usuario disponible
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))

# Crea la cuenta de usuario
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

# Agregar usuario a cualquier grupo específico
for GROUP in $SECONDARY_GROUPS ; do
    dseditgroup -o edit -t user -a $USERNAME $GROUP
done

# Crea el directorio home
createhomedir -c -u $USERNAME > /dev/null

echo "Usuario creado #$USERID: $USERNAME ($FULLNAME)"

1 votos

La diferencia entre el guion original y este aquí es la adición de -u $USERNAME al comando createhomedir.

0voto

La respuesta de John Vincent es muy útil ya que puede crear el usuario para ti a través de un script...

También querrás considerar la creación del estado de secureToken para el nuevo usuario si planeas activar FileVault para el usuario.

Alguna información importante sobre SecureToken: https://derflounder.wordpress.com/2018/01/20/secure-token-and-filevault-on-apple-file-system/

Puedes añadir el secureToken usando lo siguiente con root:

sysadminctl -adminUser root -adminPassword  -secureTokenOn  -password 

Puedes verificar el estado de secureToken de la siguiente manera:

sysadminctl -secureTokenStatus username_goes_here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X