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.
0 votos
Bueno, sin mirar todo en detalle: ¿Cómo esperas que
createhomedir
sepa para qué usuario debe crear un directorio de inicio?0 votos
¡Gracias! Añadí al usuario y ahora el script funciona
0 votos
Un par de recomendaciones adicionales para el script: No es necesario agregar
staff
como un grupo secundario, ya que ya se está estableciendo como el grupo principal de los usuarios (staff es el grupo #20). Además, recomiendo utilizar minúsculas o mayúsculas mixtas para su shell y variables de entorno, ya que hay muchas variables en mayúsculas (como$PATH
,$USER
,$UID
, etc) que tienen significados especiales, y si accidentalmente reutiliza una de esas para otra cosa, puede causar problemas.