Administración de usuarios en Linux Ubuntu con deluser, adduser, usermod, passwd y otros

En este post vamos a ver cómo crear, eliminar, cambiar datos y listar los usuarios existentes en el sistema operativo Linux Ubuntu. Será algo así como un CRUD, pero esta vez con usuarios del sistema.

Los comandos que se verán son:

  • deluser para eliminar un usuario
  • adduser para crear un usuario
  • usermod para cambiar el nombre de usuario o agregarlo a la lista de usuarios con acceso root
  • passwd para cambiar la contraseña de un usuario
  • chfn para cambiar datos de un usuario

Adicionalmente veremos cómo listar únicamente los nombres de usuario, y cómo ver cuáles usuarios son superusuarios o cuáles tienen privilegios administrativos.

Vamos allá.

Crear un usuario con adduser

Para ilustrar la edición o eliminación de un usuario, primero debemos crear a uno. Para ello se usa adduser. Una pequeña nota es que también existe el useradd, pero adduser es más interactivo y fácil para los principiantes. La sintaxis básica es:

sudo adduser usuario

En donde usuario es el nombre del usuario que se va a crear. Cuando lo ejecutamos nos pide algunos datos extra; como el nombre real o número de habitación. Aquí un ejemplo en imagen:

Crear usuario en Ubuntu con adduser

Crear usuario en Ubuntu con adduser

Como se observa, también pide la contraseña y al final pregunta si los datos son correctos. Cabe mencionar que esto también crea una carpeta para el usuario en /home así que se podría decir que es un asistente para la creación de usuarios.

Obtener usuarios existentes en una lista

Para ver si nuestro usuario ha sido creado con éxito podemos listarlo. En Linux, los usuarios (junto con información adicional) son guardados en el archivo /etc/passwd.

Basta con listar el contenido con cat para obtener una lista de los usuarios del sistema con el siguiente comando:

sudo cat /etc/passwd

Lo que tendrá una salida como la siguiente:

Obtener lista de usuarios en Linux Ubuntu

Obtener lista de usuarios en Linux Ubuntu

Si sólo queremos probar la existencia de un usuario, se me ocurre usar grep:

sudo cat /etc/passwd | grep parzibyte

De ese modo listaría las líneas que tienen la cadena parzibyte; y esas líneas se las estamos pasando desde el archivo.

Listar únicamente los nombres de los usuarios

Otro comando que únicamente lista los nombres de usuario es el siguiente:

sudo cut -d : -f 1 /etc/passwd

Con la siguiente salida:

Listar únicamente los nombres de usuario en Linux Ubuntu

Listar únicamente los nombres de usuario en Linux Ubuntu

Estamos usando a cut, que es algo así como algo que procesa el texto y lo corta. Le decimos que el delimitador (opción -d) para que corte es el símbolo de los dos puntos : y que nos muestre el primer campo o el campo número 1 (opción -f de field)

Ver cuáles usuarios tienen permisos administrativos

El comando es getent; pero más abajo lo usamos junto con cut (bueno, en caso de querer limpiar la salida); esta vez para saber cuáles usuarios pueden ejecutar comandos que requieren privilegios elevados. El comando es:

sudo getent group sudo

Lo que estamos haciendo es obtener información de una base de datos del sistema. Específicamente queremos saber cuáles usuarios pertenecen al grupo sudo, por eso escribimos group sudo.

Aquí se ve un ejemplo (esto fue ejecutado después de darle esos privilegios al usuario con un comando que esta más abajo, por eso aparece):

Saber cuáles usuarios tienen privilegios de superusuario en Linux Ubuntu

Saber cuáles usuarios tienen privilegios de superusuario en Linux Ubuntu

Ya sé que hay dos comandos, pero vamos a explicarlos. El primero pone la lista completa con campos que tal vez no necesitamos; el segundo corta eso y obtiene únicamente el nombre de usuario.

Obviamente el usuario root es un superusuario; aunque no aparezca.

Renombrar un usuario con usermod

En caso de que deseemos renombrar o cambiar el nombre de un usuario, se utiliza el comando usermod. Este comando permite cambiar el nombre de usuario, la sintaxis es:

usermod -l nuevo_nombre nombre_actual

La opción -l es la misma que la opción --login, lo cual permite cambiar el nombre de usuario. Veamos un ejemplo:

sudo usermod -l luis parzibyte

Nota: la opción -l es una ele, no una letra i

Ahí estamos renombrando el usuario parzibyte a luis. Más tarde podemos listar a los usuarios de nuevo y veremos que se ha renombrado con éxito:

Editar nombre de usuario en Linux Ubuntu

Editar nombre de usuario en Linux Ubuntu

Lo que no cambia de nombre es la carpeta ubicada en /home, ya que aunque el usuario es distinto, la carpeta sigue existiendo. Si queremos renombrar la carpeta entonces ejecutamos:

sudo mv /home/usuario_antiguo/ /home/nuevo_usuario/

En mi caso sería así:

Renombrar carpeta home de usuario

Renombrar carpeta home de usuario

No sé cuáles son los efectos que esto traiga; así que no recomiendo mucho renombrar usuarios; pero así se hace.

Cambiar contraseña de un usuario con passwd

Para cambiar la contraseña de un usuario de Linux Ubuntu se usa el comando passwd. Este comando tiene esta sintaxis:

sudo passwd usuario

Al ejecutarlo, nos pregunta la nueva contraseña y pide confirmación de la misma. Aquí el ejemplo:

Cambiar contraseña de usuario en Ubuntu

Cambiar contraseña de usuario en Ubuntu

Editar algún dato del usuario con chfn

Si nos equivocamos, queremos quitar o editar datos personales del usuario (número de habitación, nombre real) utilizamos el comando chfn. La sintaxis es:

sudo chfn usuario

Cuando se ejecuta, se pregunta lo mismo que cuando se crea; y si pusimos datos entonces los muestra como valores por defecto. Una imagen vale más que mil palabras:

Editar otros datos del usuario de Ubuntu con chfn

Editar otros datos del usuario de Ubuntu con chfn

En ese caso agregué mi número de habitación y número de teléfono.

Crear usuario con permisos administrativos usando usermod, de nuevo

Cuando un usuario se crea, no se le añade a la lista de sudoers. Es decir, no puede ejecutar comandos con privilegios elevados. Si queremos darle la posibilidad de que sea superusuario, usamos a nuestro buen comando usermod pero ahora con la opción -a y -G que explicaremos después.

La sintaxis para agregar el usuario al grupo sudo es:

sudo usermod -aG sudo usuario

La opción -a indica que va a agregar (append) al usuario a los grupos o grupo que se proporcionen con G (group). Es decir, añadirá nuestro usuario al grupo que indiquemos después de G. Y el grupo es sudo.

El último argumento es el nombre del usuario, así que en un ejemplo esto se vería así:

Agregar usuario al grupo sudo (dar permisos de administrador) en Linux Ubuntu

Agregar usuario al grupo sudo (dar permisos de administrador) en Linux Ubuntu

Después de agregarlo al grupo sudo, lo listamos como se vio más arriba. Lo digo de nuevo, este comando de agregar al usuario fue ejecutado antes del de arriba en donde listamos a los superusuarios; no es un error ni nada de eso.

Quitar permisos de administrador con deluser

Ahora veamos cómo quitarle los privilegios a un usuario que hayamos añadido al grupo sudo. El comando es deluser; el cual sirve para eliminar un usuario (como veremos más abajo) pero también para quitarlo de un grupo (en este caso el grupo es sudo). La sintaxis es:

sudo deluser usuario sudo

En donde usuario es el nombre del usuario. En este ejemplo le quitamos los privilegios al usuario luis:

Quitar usuario del grupo sudo (eliminar privilegios de superusuario) en Linux Ubuntu

Quitar usuario del grupo sudo (eliminar privilegios de superusuario) en Linux Ubuntu

En realidad no le estamos quitando privilegios, sino eliminándolo de un grupo. Y este grupo es el grupo sudo.

Por cierto, esto no elimina al usuario; simplemente lo quita del grupo.

Eliminar usuario

El comando para eliminar un usuario es igualmente deluser. La sintaxis es la siguiente:

sudo deluser usuario

Se ejecuta así:

Eliminar usuario del sistema en Linux Ubuntu

Eliminar usuario del sistema en Linux Ubuntu

Ahí nos indica que se ha eliminado; también nos dice que el grupo parzibyte ya no tiene miembros (esto es porque al inicio creamos el usuario parzibyte y a su vez se creó el grupo pero después lo renombramos).

Después de eso, listamos los usuarios y vemos que luis ya no aparece. Por cierto, la carpeta del usuario no se ha eliminado, sigue en /home: para eliminarla simplemente ejecuta:

sudo rm -rf /home/usuario

La opción r es para que sea recursivo; es decir, que elimine todo el contenido incluso si hay carpetas o archivos dentro (y dentro de ellas más carpetas o archivos); la f es para forzar. El último argumento es el directorio.

Eso sí, ten cuidado porque no hay forma de recuperar la información. Aquí un ejemplo de la ejecución:

Eliminar carpeta de usuario en home - Linux Ubuntu

Eliminar carpeta de usuario en home – Linux Ubuntu

Primero listamos el contenido de /home, luego eliminamos y volvemos a listarlo. Al final, ya no habrá carpeta del usuario.

Conclusión

Únicamente te invito a ver más tutoriales sobre Linux o Administración de servidores; iré escribiendo más tutoriales sobre ello.

Administración de usuarios en Linux Ubuntu con deluser, adduser, usermod, passwd y otros

Por parzibyte Tiempo de lectura: 6 min
1