Diferencias entre userdel y deluser

Eliminar usuarios en Linux desde la línea de comandos

 
 

En este artículo, veremos como eliminar usuarios en Linux utilizando la línea de comando (CLI) con los comandos userdel y deluser.

Índice General

  1. Introducción
  2. Eliminar usuarios con userdel
  3. Eliminar usuarios con deluser

 

  1. Introducción (Volver al índice General)
    En este artículo, veremos como eliminar usuarios en Linux desde la línea de comando (CLI). Para hacerlo, utilizaremos las siguientes herramientas:
     

  2.  

  3. Eliminar usuarios en Linux con userdel (Volver al índice General)
    Veamos todas las opciones que tiene este comando:

    • -f, – -force : Esta opción fuerza la eliminación de la cuenta de usuario incluso si el usuario todavía está conectado. También obliga a userdel a eliminar el directorio de inicio del usuario y la cola de correo, incluso si otro usuario usa el mismo directorio de inicio o si la cola de correo no es propiedad del usuario especificado. Si USERGROUPS_ENAB se define como en /etc/login.defs y si existe un grupo con el mismo nombre que el usuario eliminado, este grupo se eliminará, incluso si sigue siendo el grupo principal de otro usuario.
      Nota: Esta opción es peligrosa ya que puede dejar a nuestro sistema en un estado de inconsistencia.
    • -h, – -help : Muestra unas instrucciones cortas.
    • -r, – -remove : Los archivos del directorio de inicio del usuario se eliminarán junto con el directorio de inicio y la cola de correo del usuario. Los archivos ubicados en otros sistemas de archivos deberán buscarse y eliminarse manualmente. La cola de correo está definida por la variable MAIL_DIR en el archivo login.defs.
    • -Z, – -selinux-user : Elimina al usuario de SELinux asignado al inicio de sesión del usuario de la asignación de inicio de sesión de SELinux.

    Para ver todas las opciones, puedes usar el comando de ayuda man userdel.

    A continuación veremos los usos más comunes del comando userdel.
     

    • Eliminar un usuario (Volver al índice General)
      El siguiente comando elimina al usuario mortadelo del sistema pero no borra ni su directorio de inicio /home/mortadelo ni su cola de correo. Además, los archivos ubicados en otros sistemas de archivos deberán buscarse y eliminarse manualmente.

      $ sudo userdel mortadelo
    •  

    • Eliminar un usuario y sus datos (Volver al índice General)
      En el siguiente comando utilizaremos la opción -r. Eliminará al usuario filemon del sistema, borrará el directorio de inicio del usuario /home/filemon y la cola de correo del usuario. Los archivos ubicados en otros sistemas de archivos deberán buscarse y eliminarse manualmente.

      $ sudo userdel -r filemon
  4.  

  5. Eliminar usuarios en Linux con deluser (Volver al índice General)
    Veamos todas las opciones que tiene este comando:

    • – -conf FICHERO : Usa FICHERO en lugar de los ficheros predeterminados /etc/deluser.conf y /etc/adduser.conf.
    • – -group : Elimina un grupo.
    • – -system : Sólo elimina si el usuario o grupo es un usuario o grupo de sistema. Esto evita borrar accidentalmente usuarios o grupos que no sean de sistema. Además, si el usuario no existe, no se devuelve ningún valor de error. Esta opción está diseñada para su uso en los scripts de desarrollador de paquetes de Debian.
    • – -backup : Crea una copia de respaldo de todos los ficheros contenidos en el directorio de inicio del usuario y el fichero de cola de correo a un fichero llamado ./$USER.tar.bz2 o ./$USER.tar.gz.
    • – -backup-to DIRECTORIO : No ubica las copias de respaldo en el directorio raíz (/), sino en el directorio definido por el parámetro DIRECTORIO.
    • – -remove-home : Elimina el directorio de inicio del usuario y su cola de correo. Si se define – -backup, los ficheros se eliminarán después de realizar la copia de respaldo.
    • – -remove-all-files : Elimina todos los ficheros del sistema propiedad de este usuario. En este caso, – -remove-home ya no tiene efecto. Si se define – -backup, se eliminarán los ficheros después de realizar la copia de respaldo.
    • – -quiet : Suprime mensajes indicadores de progreso.
    • – -help : Muestra instrucciones cortas.
    • – -version : Muestra la versión e información acerca del copyright.

    Para ver todas las opciones, puedes usar el comando de ayuda man deluser.
     

    • Eliminar un usuario (Volver al índice General)
      El siguiente comando elimina al usuario anacleto del sistema pero no borra ni su directorio de inicio /home/mortadelo ni su cola de correo. Además, los archivos ubicados en otros sistemas de archivos deberán buscarse y eliminarse manualmente.

      $ sudo deluser anacleto
    •  

    • Eliminar un usuario y sus datos (Volver al índice General)
      En este punto veremos dos formas de eliminar una cuenta de usuario y sus datos.

      • En el siguiente comando utilizaremos la opción – -remove-home. Eliminará al usuario carpanta del sistema, borrará el directorio de inicio del usuario /home/carpanta y la cola de correo del usuario. Los archivos ubicados en otros sistemas de archivos deberán buscarse y eliminarse manualmente.
        $ sudo deluser --remove-home carpanta

        Si se define la opción – -backup, los ficheros se eliminarán después de realizar la copia de respaldo en ./carpanta.tar.bz2, salvo que se especifique otra ruta con la opción – -backup-to DIRECTORIO.

        Nota: Observese el punto delante de / en la ubiccación del archivo de respaldo ./carpanta.tar.bz2. El punto indica que se guardará en el directorio de trabajo desde donde se ejecutó el comando.

        $ sudo deluser --remove-home --backup carpanta
      • En el siguiente comando utilizaremos la opción – -remove-all-files. Elimina todos los ficheros del sistema propiedad de carpanta. En este caso, – -remove-home ya no tiene efecto.
        $ sudo deluser --remove-all-files carpanta

        Si se define la opción – -backup, los ficheros se eliminarán después de realizar la copia de respaldo en ./carpanta.tar.bz2, salvo que se especifique otra ruta con la opción – -backup-to DIRECTORIO.

        Nota: Observese el punto delante de / en la ubiccación del archivo de respaldo ./carpanta.tar.bz2. El punto indica que se guardará en el directorio de trabajo desde donde se ejecutó el comando.

        $ sudo deluser --remove-all-files --backup carpanta
    •  

    • Eliminar un usuario de sistema (Volver al índice General)
      En el siguiente comando utilizaremos la opción – -system. Eliminará al usuario sysuser, que se creó como usuario de sistema y su directorio de inicio:

      $ sudo deluser --system --remove-home sysuser


eliminar usuarios en linux
 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
 
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

6 comentarios

  1. Juan

    Si quisiera eliminar varias cuentas de correo al mismo tiempo a través de SSH, como podría hacerlo?

    • J. Carlos

      Hola Juan,
      Si cuando te refieres a eliminar varias cuentas de correo al mismo tiempo te refieres a varias cuentas de usuario, si se puede hacer, pero utilizando un script. A continuación te indico una forma sencilla de hacerlo:

      1. Con tu editor de texto favorito, yo utilizaré nano en mi ejemplo, crea un archivo y le das el nombre que quieras, yo lo llamaré borrar_usuarios.sh:
        $ nano borrar_usuarios.sh
      2. Añade al archivo las líneas siguientes:
        #!/bin/bash
         
        ####################################################################################
        # Script para borrar varios usuarios y todos sus datos del sistema de una sola vez #
        # con el comando deluser                                                           #
        ####################################################################################
         
        #Si eres root entonces entramos en el IF y se ejecuta el borrado de usuarios
        if [ $UID = 0 ]; then
         
        	#Guarda en la variable $USUARIOS la lista de usuarios a borrar.
        	read -p "Introduce el/los nombre/s de usuarios separados por espacios:" USUARIOS
         
        	# Elimina todos los usuarios guardados en la variable $USUARIOS
        	for USUARIO in $USUARIOS; do
        		deluser --remove-all-files $USUARIO
        	done
        else
        	#Mensaje avisando que si no eres root no puedes ejecutar el script
            clear
            echo " "
            echo "Si no eres root no puedes ejecutar este script."
            echo "Ahora eres $USER."
            echo " "
            echo " "
        fi
      3. Modifica los permisos de propiedad y ejecución para que solo el root pueda ejecutarlos:
        $ sudo chown root.root borrar_usuarios.sh
        $ sudo chmod 700 borrar_usuarios.sh
      4. Ejecuta el script:
        $ sudo ./borrar_usuarios.sh

      Para ejecutarlo con SSH, imagino que desde otra máquina distinta a la que alberga las cuentas de usuario a borrar, pueden plantearse distintos escenarios. Te muestro el más fácil:

      Si el script está en la máquina que alberga las cuentas de usuario, la orden a ejecutar será del tipo:

      $ ssh -t usuario@ip_equipo_remoto "script_a_ejecutar"

      En nuestro caso:

      $ ssh -t usuario@ip_equipo_remoto "sudo su root -c '/ruta/al/script/./borrar_usuarios.sh'"

      La opción -t es para poder interactuar con el script.

      Espero que te haya servido de ayuda, un saludo y gracias por visitar ZeppelinuX

    • J. Carlos

      Gracias Daniel por tu comentario y por visitar ZeppelinuX.
      PD: Perdón por la tardanza. Mucho trabajo y responsabilidades han conseguido que no contestase a vuestros comentarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.