Creación de un usuario con contraseña en script

Creación desatendida de usuario con contraseña

Posted by JA-Gonz on January 21, 2015

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