En este tutorial aprenderemos cómo crear y gestionar usuarios y grupos en Linux.
Vamos a ver algunas de las dudas más frecuentes acerca de usuarios y grupos en Linux, como por ejemplo cómo listar usuarios en Linux por medio de la terminal (nos valdremos de varios comandos), cómo listar los grupos en Linux, cómo borrar usuarios, cómo crear usuarios en Linux, y muchas opciones más que seguro te serán útiles.
En este artículo:
- Cuestiones importantes sobre usuarios y grupos Linux
- Comandos y archivos importantes en la creación y gestión de usuarios y grupos en Linux
- CREAR USUARIOS EN LINUX
- opciones del comando useradd
- Ejemplo de Crear usuarios Linux (con useradd)
- Cómo ver los usuarios Linux por consola
- Cómo ver las contraseñas de usuarios (y cambiar contraseña)
- Modificar usuarios con usermod
- Eliminar usuarios en Linux
Cuestiones importantes sobre usuarios y grupos Linux
—> La organización de usuarios de Linux en grupos de usuarios, permite otorgar diferentes permisos a cada grupo, y de esta forma gestionar “en bloque” qué grupos tienen permiso y para qué.
En Linux los usuarios pertenecen a un grupo primario y un grupo secundario. Podemos modificar los grupos a los que pertenece un usuario si es necesario. De hecho en algunas ocasiones, por cuestión de permisos (para modificar o acceder a ficheros/directorios) será necesario añadir un usuario a un grupo, o añadir a un usuario como miembro de un grupo secundario.
Relacionado : Usuarios y grupos Samba en Linux
- Es importante conocer los términos UID (User ID o Identificador de Usuario) y GID (Group ID o Identificador de grupo).
- El usuario root siempre tiene asignado el UID 0.
- Los UID del 0 al 99 se reservan para usos administrativos.
Comandos y archivos importantes para crear y gestionar usuarios y grupos en Linux:
- useradd : Añadir un usuario
- usermod : Modificar un usuario
- userdel : Eliminar un usuario
- groupadd : Añadir un grupo.
- groupmod : Modificar un grupo.
- groupdel : Eliminar un grupo.
- el archivo /etc/passwd : en este archivo podemos ver todos los usuarios creados, sus UID y sus GID.
- el archivo /etc/group : En este archivo podemos ver los GID de los grupos existentes en el sistema, y los usuarios pertenecientes a cada grupo.
- el archivo /etc/shadow : En este archivo se encuentran cifradas las contraseñas de los usuarios.
CREAR USUARIOS LINUX
Al crear un usuario en Linux, este recibe un UID (Identificador de Usuario Unico)
Es un ID, un código único para el usuario. Al crear un usuario, a su vez se crea un grupo para ese usuario y un GID (Identificador Único de Grupo) para ese grupo del nuevo usuario.
Comando para crear usuarios: useradd
opciones del comando useradd:
-m crea automáticamente el directorio personal del usuario
-g grupo principal al que añadimos el usuario
-G grupo secundario
-d permite especificar el directorio personal del usuario, que será creado a la vez que el usuario
-s especifica el shell por defecto que utilizará el usuario
Crear usuarios Linux por terminal (Ejemplo de uso de useradd)
Crear usuario, asignarlo a un grupo, especificar su directorio personal y el shell a utilizar:
useradd -g grupo1 -d /home/usuario1 -m -s /bin/bash usuario1 |
Evidentemente, antes de realizar este paso hemos creado el grupo1, de esta forma:
groupadd grupo1 |
Después asignamos un password a esa nueva cuenta de usuario Linux:
passwd usuario1 |
Y después de crear el usuario y asignarlo al grupo1 con el comando anterior (useradd -g grupo1), ejecutamos cat /etc/passwd para ver los GID de los grupos en los que se encuentra el nuevo usuario creado:
cat /etc/passwd |
Podemos ver que el usuario1 se encuentra en el grupo que tiene asignado el GID 1004 (tanto el grupo primario como el secundario).
Y después ejecutamos cat /etc/group para ver qué grupos corresponden a los GID´s en los que se encuentra el nuevo usuario:
cat /etc/group |
Cómo ver los usuarios en Linux por consola
Para listar los usuarios en Linux, podremos hacerlo mostrando el contenido del fichero /etc/passwd, que es el archivo donde se encuentran los usuarios que pueden acceder al sistema. Podemos mostrar el contenido del fichero /etc/passwd con el comando “cat” o el comando “more“.
cat /etc/passwd |
OTRAS FORMAS DE VER LOS USUARIOS EN LINUX
También podríamos utilizar los comandos Linux more y less que nos muestran el resultado de forma paginada, más agradable de ver:
more /etc/passwd |
less /etc/passwd |
Aunque aún podemos mejorar el resultado mostrado por pantalla, seleccionando solamente los campos deseados (en este caso el campo username o nombre de usuario), usando también una tubería (grep) y el comando cut, así:
cat /etc/passwd | cut -d":" -f1 |
ver usuarios linux con el comando awk
awk -F':' '{ print $1}' /etc/passwd |
ver usuarios linux con el comando getent
getent passwd |
ver usuarios linux con el comando compgen
compgen -u |
Al visualizar el contenido completo del archivo /etc/passwd, veremos varios datos que debemos conocer:
- El nombre de la cuenta
- El UID de la cuenta de usuario.
- el GID del grupo principal del usuario.
- el directorio de trabajo del usuario
- el interprete de comando del usuario
Aquí vemos el resultado del comando anterior:
—> Se puede apreciar que muchos usuarios tienen al final:
/usr/sbin/nologin |
esto significa que estos usuarios que tienen configurada esta ruta como shell, realmente no pueden iniciar sesión; recibirán un mensaje avisando de ello:
This account is currently not available |
Esto suele ser porque son usuarios del sistema, para varios procesos Linux o software del sistema.
Cómo ver las contraseñas de usuarios en Linux
Las contraseñas de los usuarios en Linux se almacenan cifradas en el archivo
/etc/passwd |
Así que no podemos averiguar las contraseñas de los usuarios, pero podemos cambiar la contraseña de un usuario si no la recordamos.
Cómo cambiar contraseñas de usuario
Podemos cambiar la contraseña de un usuario con el comando passwd y el nombre de usuario.
así:
passwd test |
Modificar Usuarios con el comando usermod
Podemos modificar usuarios en Linux con el comando usermod
Vamos a ver varios ejemplos de cómo modificar usuarios.
- Modificar el directorio de trabajo de un usuario:
usermod -d /var/www test |
El nuevo directorio de trabajo del usuario test será /var/www
- Renombrar un usuario
usermod -l test nuevotest |
Ahora el usuario test se llamará nuevotest
- Modificar el grupo primario de un usuario
usermod -g apache test |
Ahora el grupo primario del usuario test será el grupo apache
- Modifica el grupo suplementario de un usuario existente (sustituyendo el grupo anterior)
usermod -G nuevogrupo test |
- Añadir un grupo suplementario de un usuario existente (añadiendo el grupo sin sustituir el primario en el que ya está el usuario)
usermod -a -G nuevogrupo test |
- Modificar la fecha de expiración de una cuenta de usuario:
usermod -e 2021-03-15 test |
Ahora la cuenta de usuario expirará el 15 de marzo de 2021
- Bloquear una cuenta de usuario:
usermod -L test |
- Desbloquear una cuenta de usuario
usermod -U test |
Borrar usuarios linux con userdel
userdel -r test |
El usuario test ha sido eliminado.
CREAR GRUPOS DE USUARIOS EN LINUX
Creamos diversos grupos de usuarios con el comando groupadd:
groupadd grupo1 groupadd grupo2 groupadd grupo3 |
Con el comando cat /etc/group
comprobamos el GID de los nuevos grupos de usuarios creados (visualizando el contenido del archivo /etc/group):
¿ Cómo listar los grupos en Linux?
Podremos ver los grupos que existen dentro de un sistema linux con:
cat /etc/group |
De esta forma mostramos todos los grupos que existen en el sistema.
Usando “more” el contenido del fichero se mostrará permitiendo la paginación (muestra las páginas una a una, y pasamos a la siguiente pulsando la tecla de espacio.
more /etc/group |
Ver los grupos a los que pertenecen los usuarios
Otra forma de ver los grupos a los que pertenecen los usuarios es usando el comando cut con el archivo /etc/passwd
así:
cut -d: -f1,4 /etc/passwd |
Aquí vemos la salida del comando:
Ver Usuarios de un grupo Linux
Podremos ver los usuarios que hay dentro de un grupo con el comando getent:
getent group ssh |
mostrará los usuarios dentro del grupo “ssh”
Cambiar grupo primario de un usuario en Linux
sudo usermod -g grupo1 -a usuario1 |
Así añadimos como grupo primario el “grupo1” para el usuario “usuario1”
Añadir un usuario a un grupo secundario en Linux
sudo usermod -G grupo2 -a usuario1 |
Este ejemplo añadirá al usuario “usuario1” al grupo “grupo2“.
Eliminar grupos con groupdel
Eliminamos un grupo con “groupdel“, seguido del grupo que queremos eliminar.
sudo groupdel nuevogrupo |
Quitar usuario de un grupo con deluser
Si queremos sacar de un grupo a un usuario, usaremos el comando deluser así:
deluser usuario grupo |
Ahora el usuario “usuario” ya no pertenece al grupo “grupo”
Otros COMANDOS para trabajar con Usuarios y grupos Linux
¿Qué hace el comando id en Linux?
id es un comando de linux que permite conocer los datos de un usuario : su identificador de usuario (ID), su identificador de grupo (GID), y el nombre del grupo o grupos a los que pertenece el usuario.
Para ver los datos relativos a un usuario, ejecutamos:
id nombreusuario |
o directamente
id |
y veremos los datos del usuario actual.
Ejemplo:
Podemos ver que si tecleamos:
id usuario1 |
veremos los datos del usuario1: su UID, el GID y el nombre del grupo al que pertenece dicho usuario, y los grupos en los que se encuentra incluido (en este caso solo se encuentra en el grupo con GID 1004, llamado grupo1)
También vemos que el usuario root posee el UID 0. Al igual que su GID es 0. A la cuenta root siempre se le asigna el UID 0.
whoami
whoami es un comando de linux que muestra el nombre de usuario que estamos utilizando.
whoami |
Con toda esta info, comandos y archivos necesarios, podremos administrar correctamente nuestros usuarios y grupos en Linux.
Otros enlaces con más info sobre Usuarios y Grupos en Linux:
- Instituto nacional de tecnologías educativas | Usuarios y Grupos Linux
- LPIC 1
- Administración de Usuarios Linux
- Usuarios y Grupos Arch Linux