El script crea un archivo llamado entrymods con formato ldif para luego importarlo, finalmente lo borra.
Acá el script y luego lo explicaré linea por linea:
#!/bin/bash
if [ $# -ne 3 ]
then
echo "Cantidad de parametros incorrecta"
echo "Uso del Script: $0 [Apellido] [Nombre] [descripcion]"
echo "Ejemplo: $0 Martinez Diego Mi_Descrip"
exit
fi
if [ "$1" != "Cacheuta" -a "$1" != "Perez" -a "$1" != "Martinez" ]
then
echo "Usuario Incorrecto, no tiene permisos o esta mal escrito: (Cacheuta, Perez ó Martinez)"
exit
fi
rm -rf /tmp/entrymods
echo dn: CN=$1 $2,OU=Sistemas,OU=Users,OU=España,OU=Europa,DC=redes,DC=seguridad,DC=com >> /tmp/entrymods
echo changetype: modify >> /tmp/entrymods
echo replace: description >> /tmp/entrymods
echo description: $3 >> /tmp/entrymods
ldapmodify -h mi_domain_controller -D "mi_user@redes.seguridad.com" -w "Clave_de_mi_user" -f /tmp/entrymods
rm -rf /tmp/entrymods
Explicación del script:
El primer if testea si la cantidad de parámetros que recibe el script es igual a 3. Se debe enviar como parámetro el Apellido, Nombre y la Descripción que querémos que le ponga al usuario con el Apellido indicado.
El segundo if verifica si los usuarios a modificar corresponde con alguno de esos 3, es decir sólo a estos 3 usuarios podré modificar su descripción: Cacheuta, Perez y Martinez.
Luego borro el temporal de ldif en caso que exista, a continuación creo uno nuevo, donde le especifico la Unidad Organizativa donde están dichos usuarios a modificar, le especifico que voy a modificar y lo que voy a reemplazar es la descripción del usuario.
Ejecuto el ldapmodify específicandole el nombre ó la ip del domain controller, un usuario con permisos para modificar el Active Directory, la password del usuario para modificar el AD y el archivo LDIF generado previamente.
Al final vuelvo a borrar el archivo temporal.
Le damos permisos al script para que cualquiera pueda ejecutar:
# chmod a+x /ruta/del/script/modifica_descripcion.sh
Ejecutamos el script pasandoles los parámetros:
# /ruta/del/script/modifica_descripcion.sh Cacheuta Diego Administracion
Agregamos al webmin para que pueda ejecutarlo el usuario deseado:
http://redes-seguridad.blogspot.com/2012/11/permisos-script-en-webmin.html