En la automatización del despliegue de LDT, necesitamos que se creen en los hosts usuarios de forma automática y desatendida.
Para eso se utiliza el siguiente script, en el que detallamos el funcionamiento:
#!/bin/bash
# Script para agregar un usuario al sistema
if [ $(id -u) -eq 0 ]; then
username="ansibleUser"
password="1234"
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username ya existe!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass $username
echo "ansibleUser ALL=(ALL) ALL" | cat >> /etc/sudoers
fi
else
exit 2
fi
Con la orden egrep buscamos el usuario ansibleUser en el archivo /etc/passwd, y si existe, el programa sale con código 1.
Si no existe, primero encripta la contraseña almacenada en la variable password, y dicha cadena cifrada la guarda en “pass”. Usando la orden useradd con la opción -p, añadimos la cadena cifrada como contraseña a la hora de crear el usuario (por lo que la contraseña real será la que queremos, y está contenida en la variable password). La última línea modifica el archivo sudoers para que el usuario tenga permisos de administrador