Linux

Cómo gestionar usuarios en Linux: crear, modificar, borrar

Cómo gestionar usuarios en Linux: crear, modificar, borrar
3.5 (70%) 2 votes

Linux es un sistema operativo multiusuario, lo que significa que más de un usuario puede usar Linux al mismo tiempo. Una de las funciones más importantes de un administrador de sistemas es gestionar los usuarios y grupos en un sistema, esta puede llegar a ser una tarea compleja. Sin embargo, Linux nos proporciona un mecanismo hermoso para gestionar usuarios en el sistema.

Como gestionar usuarios en Linux - crear, modificar, borrar

Gestionar Usuarios en Linux

Un usuario o cuenta de un sistema se identifica de forma única mediante un número denominado UID (número de identificación único). En Linux podremos encontrar básicamente tres tipos de usuarios:

  • Usuario root: también llamado usuario raíz o superusuario, con UID 0 y que cuenta con privilegios de acceso y modificación sobre todo el sistema. Será el encargado de realizar configuraciones importantes, instalar programas, actualizaciones y todo lo relativo a la gestión de cuentas de usuarios.
  • Usuarios especiales: más que usuarios, son cuentas del sistema que se instalan con determinado software o que ya vienen por defecto en el sistema. Ejemplo de ello son bin, mail, apache, sshd, etc. No son usuarios normales, pero tampoco llegarán a tener todos los permisos de root. Solamente tendrán activadas ciertas funciones de root en función del propósito para el que estén creados
  • Usuarios normales: estos será los que comúnmente utilizamos en nuestro sistema para realizar las típicas acciones. Contaremos con acceso a la terminal de comandos para tareas básicas, contaremos con un directorio de trabajo para cada uno en /home, así como una UID.

Ficheros de usuarios en Linux

Antes de comenzar a crear, modificar o borrar nuestros usuarios, conviene que sepamos cuáles son los ficheros en donde se almacena la información relativa a los usuarios en nuestro sistema. Básicamente tendremos dos ficheros principales, por un lado /etc/passwd/ y por otro /etc/shadow. Veamos más en detalle que contienen estos directorios:

/etc/passwd

En el fichero passwd se encuentran absolutamente todos los usuarios que contiene el sistema, root, especiales, y normales. Este fichero se podrá leer por todos los usuarios y solo será modificable por el usuario root. Para buscar dentro de él nuestro usuario podríamos hacer:

# grep “jose” /etc/passwd
jose:x:1000:1000:jose,,,:/home/jose:/bin/bash

De esta forma veríamos la información relativa a nuestro usuario. Si nos fijamos, será una cadena de caracteres que están separados mediante “:” para delimitar los distintos campos:

  • Columna 1: nombre de usuario para login.
  • Columna 2: contraseña del usuario. Si se muestra una “x” la contraseña se sitúa en /etc/shadow. Si se muestra una cadena de números y letras, la contraseña está en /etc/passwd pero encriptada.
  • Columna 3: número de identificado (UID).
  • Columna 4: Numero de identificador del grupo (GID).
  • Columna 5: nombre completo de usuario, si lo hubiera.
  • Columna 6: Directorio de trabajo del usuario.
  • Columna 7: Shell que utilizará el usuario en cuestión. Si es “nologin” significa que no tendrá shell propia.

/etc/shadow

Ya hicimos referencia a él en el apartado anterior. En este fichero se almacenan todas las claves de los usuarios existentes en el sistema, por supuesto encriptadas y con único acceso a él para ver el contenido del usuario root. Hagamos lo mismo que antes para ver la distribución de información sobre nuestro usuario:

# grep “jose” /etc/shadow
jose:$6$d.O7lEiY$h.A5gNBMi95cUrZwxc603Wo5QYEbyCgGgLcP0nrR2l/4oBP/hy0AodEQ8eLyHv3/L7HlE2aEPP.7BX1hbgwFM.:17854:0:99999:7:::
  • Columna 1: Nombre de usuario.
  • Columna 2: Contraseña cifrada. Si se muestra un “*” significa que la cuenta es “nologin”.
  • Columna 3: cuenta los días transcurridos desde el 1/1/1970 hasta que la contraseña ha sido cambiada por última vez.
  • Columna 4: cantidad de días que deben transcurrir para poder cambiar la contraseña. Si está en “0” significa que es modificable en cualquier momento.
  • Columna 5: Número de días que faltan para que tengamos que modificar la contraseña. Si no hay valor, significa que no tenemos este contador activo.
  • Columna 6: Número de días que faltan para que la contraseña expire. Si tenemos el valor “99999” significa que la contraseña nunca caduca.
  • Columna 7: días que falta para que la contraseña sea inhabilitada, tras superar el plazo de cambio de contraseña.
  • Columna 8: Fecha de caducidad de la cuenta de usuario. Si no hay nada, significa que nunca caduca.

Finalmente vamos a ver cómo están reflejados los permisos de usuario par estos dos ficheros:

# ls -l /etc/passwd /etc/shadow
-rw-r--r-- 1 root root 2611 nov 26 15:00 /etc/passwd
-rw-r----- 1 root shadow 1367 nov 26 15:00 /etc/shadow

Vemos que solamente root puede editar passwd, pero todos los usuarios pueden leerlo, en cambio shadow solamente puede ser leído por root y editado por nadie.

Sabiendo esto, ya sí que estamos en disposición de gestionar usuario de Linux debidamente.

Crear usuarios con useradd en Linux

Para la creación de usuarios en el sistema utilizaremos el comando “useradd”, que nos permitirá crear y añadir toda la información que hemos visto contenido en cada línea de /etc/passwd. Para poder ver todas las opciones de las que dispone este comando y su sintaxis escribimos:

useradd --help

Crear un usuario con una configuración predeterminada

Se puede agregar un usuario ejecutando el comando useradd en la terminal del sistema. Después de crear el usuario, configuramos una contraseña usando la utilidad passwd , de la siguiente manera:

 useradd yerita 
 
passwd yerita

Changing password for user yerita.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

El sistema asigna automáticamente un UID al ejecutar useradd, crea el directorio de inicio ( /home /<username> ) y establece el shell predeterminado en /bin /bash . El comando también crea un grupo privado de usuario cada vez que se agrega un nuevo usuario al sistema y nombra el grupo después del usuario.

Especificación del nombre completo de un usuario al crear un usuario

Como administrador de sistemas podemos usar la opción -c con useradd para especificar el nombre completo del usuario, como se muestra a continuación:

 useradd -c "Yeraldine Martinez" yerita 

Creación de un usuario con el UID

También podemos crear un usuario con un UID personalizado con la opción -u, de la siguiente manera:

 useradd -u 1036 yerita 

Crear un usuario con directorio de inicio no predeterminado

Se puede establecer un directorio de inicio no predeterminado si ejecutamos el siguiente comando:

 useradd –d /home/test yerita 

Agregar un usuario a un grupo primario y un grupo suplementario

Un administrador de sistemas puede especificar un grupo primario y uno suplementario especificando la opción -g y -G , respectivamente.

 useradd -g “programadores” -G “frontend” yerita 

Donde, “programadores” es el grupo primario y “frontend” un grupo suplementario, ya ustedes adaptaran el comando según sus necesidades.

Bloquear y desbloquear un usuario

Otra tarea que se puede realizar al gestionar usuarios en Linux es bloquear y desbloquear una cuenta de usuario. Para bloquear una cuenta, necesitamos invocar passwd con la opción -l.

passwd -l yerita
 Locking password for user yerita.
 passwd: Success

La opción -u con passwd desbloquea una cuenta, como vemos a continuación:

passwd -u yerita
 Unlocking password for user yerita.
 passwd: Success

Modificar parámetros de usuarios con usermod

Para poder modificar un usuario que hayamos creado anteriormente utilizaremos el comando “usermod” el cual nos permitirá modificar todos los parámetros acerca del usuario en cuestión, por lo que es un complemento, por así decirlo de “useradd”. Como siempre, convienen mirar antes todas sus opciones para utilizarlo correctamente.

usermod --help

Cambiar un nombre de usuario

la opción -l con el comando usermod cambia el nombre de inicio de sesión (usuario), como se muestra a continuación:

usermod -l “yerita_02” yerita 

Donde el argumento “yerita_02” es el nuevo nombre de usuario.

Cambiar clave de usuario

Para cambiar la clave de una cuenta de usuario, necesitaremos utilizar un comando específico llamado “passwd”. Si queremos modificar la contraseña de nuestro usuario, tendremos que escribir:

# passwd jose
Introduzca la nueva contraseña de UNIX: 
Vuelva a escribir la nueva contraseña de UNIX: 
passwd: contraseña actualizada correctamente

También podremos hacerlo con el propio usuario colocando simplemente:

$ passwd
Cambiando la contraseña de jose.
(actual) contraseña de UNIX: 
Introduzca la nueva contraseña de UNIX: 
Vuelva a escribir la nueva contraseña de UNIX: 
Debe elegir una contraseña más larga
Introduzca la nueva contraseña de UNIX:

Además, nos pedirá que coloquemos una contraseña de determinadas características, algo que no fue necesario si lo hicimos como root.

Eliminar un usuario

Podemos eliminar un usuario combinando userdel con la opción -r, como se muestra a continuación:

 userdel -r yerita 

Comandos pwunconv y pwconv

Ya hemos visto que por defecto las contraseñas de los usuarios se almacenan en un fichero distinto a /etc/passwd. Esto principalmente se debe a que cualquier usuario puede acceder al contenido de passwd y ver, aunque sea encriptada la contraseña. Como podríamos suponer, existen programas que serán capaces de desencriptar esta información invirtiendo una determinada cantidad de tiempo. Por supuesto esto no ocurrirá si colocamos las contraseñas en un fichero aparte en donde solamente puede tener acceso el root.

Pero si no queremos tener ambos campos separados, y queremos introducir información de la contraseña en el passwd con la consiguiente eliminación del fichero /etc/shadow, también podremos hacerlo, y para esto sirven los comandos pwunconv y pwconv. Por supuesto habrá que utilizarlos con permisos de root. Si colocamos:

pwunconv

Estaremos pasando las claves de shadow a passwd y así lo demuestra la información:

# pwunconv

# grep "jose" /etc/passwd
jose:$6$RvpMGxqq$4BUdrCOypct6jMmyNCjtaPvnwPNwrpB0zc986GIgbJpbtvkiH/51.lpj7Q.9rFJ.lsMzOb2noY7ZMe2n9XO6q0:1000:1000:jose,,,:/home/jose:/bin/bash

# grep "jose" /etc/shadow
grep: /etc/shadow: No existe el archivo o el directorio

Para dejarlo todo como estaba colocamos:

# pwconv 

# grep "jose" /etc/passwd
jose:x:1000:1000:jose,,,:/home/jose:/bin/bash

# grep "jose" /etc/shadow
jose:$6$RvpMGxqq$4BUdrCOypct6jMmyNCjtaPvnwPNwrpB0zc986GIgbJpbtvkiH/51.lpj7Q.9rFJ.lsMzOb2noY7ZMe2n9XO6q0:17892:0:99999:7:::

De esta forma podremos tener uno o dos archivos distintos para la gestión y seguridad de los usuarios.

Gestionar Grupos de usuarios en Linux

Ya sabemos como administrar usuarios, pero es necesario que sepan también un poco sobre la administración o gestión de grupos de usuario en Linux. Los grupos son un mecanismo que nos provee Linux para organizar una colección de usuarios. Al igual que el ID de usuario, cada grupo también está asociado con un ID único llamado GID (ID de grupo).

Hay dos tipos de grupos:

  • Grupo primario
  • Grupo suplementario

Cada usuario es miembro de un grupo primario y puede no tener grupos suplementarios o tener más de uno. La información del grupo se almacena en /etc /group y las contraseñas respectivas se almacenan en el archivo /etc /gshadow.

/etc/group y /etc/gshadow

En este fichero tendremos todo lo referente a la configuración de grupos.

grep “root” /etc/group
root:x:0:
  • Columna 1: Nombre de usuario.
  • Columan 2: contraseña del grupo. Si hay una “x” significará que esta se encuentra en el fichero /etc/gshadow.
  • Columna 3: identificador GID del grupo.
  • Columna 4: lista de grupos a los que pertenece el usuario en cuestión.

Por su parte la estrucutra de /etc/gshadow es similar al fichero de contraseñas de usuario, aunque bastante más simple:

grep “jose” /etc/gshadow
jose:!::
  • Columna 1: nombre de usuario.
  • Columna 2: contraseña encriptada. Si vemos una “x” significa que el usuario es nologin, si vemos un “!” significa que el grupo no tienen contraseña configurada.
  • Columna 4: grupo al que pertenecen los usuarios.

Veamos algunas de las operaciones, como crear, eliminar y modificar un grupo:

Crear un grupo con la configuración predeterminada

Para agregar un nuevo grupo con la configuración predeterminada, ejecutamos el comando groupadd como usuario root, como se muestra a continuación:

 groupadd empleados 

Si deseas agregar una contraseña, escribes gpasswd con el nombre del grupo, de la siguiente manera:

 gpasswd empleados&amp;nbsp;

Changing the password for group empleados&amp;nbsp;
 New Password:
 Re-enter new password:

Te solicitara ingresar la contraseña dos veces.

Crear un grupo con un GID especificado

Para especificar explícitamente el GID de un grupo, ejecutas el comando groupadd con la opción -g, de la siguiente manera:

 groupadd -g 1200 "gerentes" 

Eliminar contraseña de grupo

Para eliminar una contraseña de grupo, ejecute gpasswd -r con el nombre del grupo en cuestión, de la siguiente manera:

gpasswd -r empleados 

Cambiar el nombre del grupo

Para cambiar el nombre del grupo, ejecutamos el comando groupmod con la opción -n como superusuario, como se muestra a continuación:

 groupmod -n nuevos_empleados empleados 

Donde los argumentos son el nuevo nombre y el grupo al que se va afectar, respectivamente.

Cambiar el GID del grupo

Para cambiar el GID de un grupo, ejecute el comando groupmod con -g, de la siguiente manera:

 groupmod -g 1050 gerentes 

Eliminar un grupo

Antes de eliminar un grupo primario, debes eliminar los usuarios de ese grupo. Posteriormente, para eliminar el grupo, ejecutamos el comando groupdel con el nombre del grupo, como se muestra a continuación:

 groupdel empleados 

Si desea saber mucho más sobre cómo gestionar usuarios y grupos en Linux, puedes consultar la documentación oficial de la distribución que estés usando.

Pero como has visto en nuestra guía, el proceso no es tan complejo.

Mostrar más

Yeraldine

Lcda. en Computación, Programadora, Apasionada por el Desarrollo Web. A veces Bellydancer, otras veces Yogui. Amo viajar, los libros y la música. En mis RRSS: @yerita02

Publicaciones relacionadas

Deja un comentario

Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar mi política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en ayudalinux2016@gmail.com.

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

Acepto la política de privacidad *

Bloqueador de anuncios detectado

Por favor, considere ayudarnos desactivando su bloqueador de anuncios