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:
—> 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
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
-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 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
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
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
awk -F':' '{ print $1}' /etc/passwd
getent passwd
compgen -u
Al visualizar el contenido completo del archivo /etc/passwd, veremos varios datos que debemos conocer:
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.
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.
Podemos cambiar la contraseña de un usuario con el comando passwd y el nombre de usuario.
así:
passwd test
Podemos modificar usuarios en Linux con el comando usermod
Vamos a ver varios ejemplos de cómo modificar usuarios.
usermod -d /var/www test
El nuevo directorio de trabajo del usuario test será /var/www
usermod -l test nuevotest
Ahora el usuario test se llamará nuevotest
usermod -g apache test
Ahora el grupo primario del usuario test será el grupo apache
usermod -G nuevogrupo test
usermod -a -G nuevogrupo test
usermod -e 2021-03-15 test
Ahora la cuenta de usuario expirará el 15 de marzo de 2021
usermod -L test
usermod -U test
userdel -r test
El usuario test ha sido eliminado.
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):
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
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:
Podremos ver los usuarios que hay dentro de un grupo con el comando getent:
getent group ssh
mostrará los usuarios dentro del grupo “ssh”
sudo usermod -g grupo1 -a usuario1
Así añadimos como grupo primario el “grupo1” para el usuario “usuario1”
sudo usermod -G grupo2 -a usuario1
Este ejemplo añadirá al usuario “usuario1” al grupo “grupo2“.
Eliminamos un grupo con “groupdel“, seguido del grupo que queremos eliminar.
sudo groupdel nuevogrupo
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”
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 es un comando de linux que muestra el nombre de usuario que estamos utilizando.
whoami
Otros enlaces con más info sobre Usuarios y Grupos en Linux: