#!/bin/bash
#cogemos el total de lineas del archivo que contiene los usuarios.
#el archivo de los usuarios, contiene un listado de todos los usuarios a agregar
#con la estructura: NumeroUsuario:usuario:password
lineas=`cat /home/pxl/usuarios | wc -l`
let lineas=lineas+1
i=1
#bucle hasta que $i es igual al numero de lineas, es decir, hasta que se ha leido
#todo el fichero
while [ $i -lt $lineas ];do
#obtenemos cada una de las lineas
linea=`head -$i /etc/pxl/usuaris | tail -1`
#obtenemos el identificador del usuario
nuevo_identificador=`echo $linea | cut -d: -f1`
#aumentamos en 1000 el identificador del usurio. Esto lo hacemos, ya que los
#identificadores de nuestro archivo, empiezan por el 1.
nuevo_identificador=`expr $nuevo_identificador + 1000`
#cogemos el nombre del nuevo usuario
nuevo_usuario=`echo $linea | cut -d: -f2`
#cogemos ca contraseña del nuevo usuario
nuevo_password=`echo $linea | cut -d: -f3`
#codificamos el nuevo password utilizando perl
passwordf=`perl -e 'print crypt("'"$nuevo_password"'","SA"), "\n";'`
#Comprovamos si ya existe el identificador que vamos a añadir, para quitarlo
#ante de agregarlo nuevamente
viejo_identificador=`cat /etc/passwd | grep :$nuevo_identificador: | cut -d: -f1`
if [ ! -z "$viejo_identificador" ];then
userdel "$viejo_identificador"
fi
#comprovamos si ya existe el usuario que vamos a agregar.
existeix=`cat /etc/passwd | grep ^"$nuevo_usuario:"`
if [ -z $existeix ];then
#agregamos el usuario y lo asignamos al grupo 100 (users)
useradd -u $nuevo_identificador -g 100 -p $passwordf "$nuevo_usuario"
fi
let i=i+1
done
Comentarios sobre la versión: Versión 1 (2)
Un saludo.