From 24f32b6d3bdce0920c0ca0ad187b87d78edf7f69 Mon Sep 17 00:00:00 2001
From: parra <parrazam@users.noreply.github.com>
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;