You are not logged in.
Hi everybody. This is an script for deleting users in GLPI that have been deleted or changed from OU in Active Directory. I hope it may help someone.
##############################################
##############################################
#!/bin/bash
# Ficheros temporales. TEMP FILES
ftmp=./tmp/listado-usuarios
uborrar=./tmp/usuarios-borrados
ftmp2=./tmp/usuarios-borrados3
# Borramos fichero de log. DELETE LOG FILES
> $uborrar
# Si el directorio ./tmp no existe, lo crea. IF /tmp DOES NOT EXISTS, CREATE IT
if [ -e ./tmp ]
then
echo "El directorio existe"
else
mkdir -p ./tmp
fi
# Busqueda de usuarios en la Base de Datos local. SEARCH USERS AT LOCAL DATABASE
/opt/lampp/bin/mysql -h localhost -u USER -p -s -e "use DATABASE_NAME;" -e "select A.name, B.ldap_basedn from glpi_users A, glpi_auth_ldap B where A.id_auth = B.ID;" > $ftmp
# Sustituimos las enhes por enes. THIS IS AN SCRIPT FOR REPLACE SPECIAL CHARACTERS (SEE BELOW)
. /opt/lampp/htdocs/glpi/scripts/tmp/cambio.sh
# Comparamos cada resultado con los del directorio Activo, y los almacenamos en un fichero temporal. COMPARE RESULTS WITH A.DIRECTORY AND SAVE IN A TEMP FILE
IFS=">"
cat $ftmp2 | while read user_glpi basedn
do
user_domain=`ldapsearch -x -w PASSWORD -D "CN=USER-ADMINISTRATOR-A.D.,CN=Users,DC=XX,DC=XX" -h SERVER.DOMAIN -b dc=XX,dc=XX -LLL -b$basedn "(&(sAMAccountName=$user_glpi)(objectClass=user))" | grep -v 'refldap' `
if [ "$user_domain" == "" ]
then
echo "Usuario no encontrado: "$user_glpi >> $uborrar
fi
done
# Borramos el fichero temporal de los usuarios de la base de datos DELETE TEMP USERS FILE
rm -f $ftmp $ftmp2
# Buscamos en el fichero temporal los usuarios que deben ser borrados. SEARCH USERS TO BE DELETED
if [ -s $uborrar ]
then
IFS=$'\n'
for i in `cat $uborrar | awk '{if($5=="") print $4; else print $4" "$5 } '`
do
echo "¿Deseas borrar al usuario $i?"
read op
case $op in
"n")
echo "El usuario" $i "no va a ser borrado"
sleep 1
;;
"s")
# Ejecutamos la sentencia sql de borrado. EXECUTE DELETE
/opt/lampp/bin/mysql -h localhost -u USER -p --password=PASSWORD -s -e "use DATABASE_NAME;" -e "delete from glpi_users where name = '"$i"';"
echo "El usuario" $i "ha sido borrado de la base de datos de mysql".
;;
*)
echo "No has introducido una respuesta valida"
esac
done
else
echo "No hay usuarios que borrar"
fi
##############################################
##############################################
SCRIPT cambio.sh
##############################################
##############################################
# ONE: CHANGE SPANISH SPECIAL CHARACTERS
cat /opt/lampp/htdocs/glpi/scripts/tmp/listado-usuarios | tr áéíóúüñÑ aeiouunN > /opt/lampp/htdocs/glpi/scripts/tmp/usuarios-borrados2
# TWO: REPLACE TAB WITH '>' FOR SEPARATE FIELDS NAME AND OU
sed 's/\t/>/g' /opt/lampp/htdocs/glpi/scripts/tmp/usuarios-borrados2 > /opt/lampp/htdocs/glpi/scripts/tmp/usuarios-borrados3
##############################################
##############################################
Offline