From 24f32b6d3bdce0920c0ca0ad187b87d78edf7f69 Mon Sep 17 00:00:00 2001 From: parra Date: Wed, 18 May 2016 15:00:14 +0200 Subject: [PATCH] Baja de usuarios MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit En este script tan sólo necesitamos hacer uso de la función Linux::usermod->del, la cual elimina el usuario pasado por parámetro en la variable $usuario. Previamente eliminamos todo su directorio home con la orden rmtree, la cual elimina todos los ficheros y directorios (de forma recursiva) que se encuentren por debajo de la raíz que le pasamos como parámetro.. Los parámetros que se le pasan son: - $ruta -> Raíz del directorio que queremos eliminar (en nuestro caso, el directorio home del usuario, p.e. para el usuario prueba sería: /home/prueba el contenido de dicha variable. - El segundo parámetro (booleano) si se encuentra a true nos irá listando los archivos y directorios que se irán borrando a medida que se vaya ejecutando la orden. - El tercer valor pasado a dicha función es también un boolean que, a true, garantiza que no se borrarán aquellos ficheros para los cuales no tenemos permisos (en el caso de ejecutar el script como root obviamente siempre tendremos permiso). --- baja_usuarios.pl | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 baja_usuarios.pl diff --git a/baja_usuarios.pl b/baja_usuarios.pl new file mode 100644 index 0000000..75d44b6 --- /dev/null +++ b/baja_usuarios.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl + +# Script que permite dar de baja un usuario. + +# Author: Víctor Parra [parra@usal.es] + +# AVISO: Requiere permisos de root +# Es necesario instalar el File::Path y el Linux::usermod +# ># perl -MCPAN -e 'install File::Path' +# ># perl -MCPAN -e 'install Linux::usermod' + +# Parámetros: +# - [nombre_del_usuario] -> Nombre del usuario + +$args=@ARGV; + +if ($args < 1) +{ + print "\n"; + print "Uso: $0 [nombre_del_usuario]\n"; + print "\n"; + print "\n"; + die "Abortando"; +} + +$ruta="/home/" . $ARGV[0] . "/"; + +$usuario=$ARGV[0]; +use Linux::usermod; +use File::Path; + +print "Borrando el directorio $ruta...\n"; +rmtree($ruta, 1, 1 ) or die "rmtree: $!\n"; + +Linux::usermod->del($usuario) or die "Deluser: $!\n"; + +print "\nUsuario $usuario borrado con éxito\n"; +print "\n"; +exit;