En este momento estás viendo Administración de usuarios y grupos en GNU/Linux

Administración de usuarios y grupos en GNU/Linux

Administración de usuarios y grupos en GNU/Linux

Los sistemas GNU/Linux son sistemas multiusuario que permiten el acceso a varios usuarios simultáneamente conservando cada uno de ellos su configuración y ficheros propios. Vamos a ver los diferentes tipos de usuarios y como estos se crean, se les asignan contraseñas, se modifican sus cuentas, se eliminan y administran mediante su inclusión en grupos diferentes.

Sumario

  • Usuarios
    • Tipos de usuarios
    • Ficheros importantes
    • Administración de usuarios
    • Comandos
    • Ejemplos
      • Crear usuarios
      • Cambiar contraseñas
      • Modificación de cuenta de usuario
      • Eliminar cuenta de usuario
  • Administración de Grupos
    • Crear grupos
    • Modificar grupos
    • Eliminar grupos

Usuarios

Para la identificación de los usuarios, los sistemas GNU/Linux, emplean un número único de usuario llamado «User ID» o «UID», que pertenecen, por defecto al grupo principal de usuarios. Estos grupos también se identifican por un número único de grupo «Group ID» o «GID». Cada usuario, además de pertenecer al grupo principal, puede pertenecer a otros grupos, lo que permite la gestión de los permisos de forma individual y por pertenencia a grupos.

Tipos de usuarios

En los sistemas GNU/Linux, tenemos tres tipos diferentes de usuarios.

  • Usuario normal. Este usuario es cualquier persona que puede acceder al sistema, con más o menos privilegios, que hará uso de los recursos del sistema.
  • Usuarios del sistema. Son usuarios establecidos por el propio sistema operativo, vinculados a las tareas propias del S.O. Este tipo de usuarios no puede acceder al sistema con un login normal.
  • root (superusuario). Este usuario existe en todos los sistemas GNU/Linux y se caracteriza por tener los máximos privilegios sobre todo el sistema y sobre todos los usuarios. Es fundamental ya que se encarga de administrar los usuarios, grupos y servicios que tiene el sistema.

Además de estos usuarios, un usuario normal, puede tener ciertos privilegios sobre su propiedad, añadiéndolo al grupo «sudoers» y utilizando «sudo» antes de los comandos a ejecutar.

Ficheros importantes

Los ficheros que guardan la información sobre los usuarios y los grupos son los siguientes:

/etc/passwd: Este fichero contiene la información sobre los usuarios, nombre, contraseña, UID, GID, comentario, directorio personal «/home», shell, etc… Se trata de un fichero de texto de tipo ASCII, que se crea durante la instalación del sistema junto al usuario del sistema y root, más las cuentas de usuarios normales que se creen después.

javier:x:1000:1000:javier,,,:/home/javier:/bin/bash

/etc/group: Este fichero contiene información sobre los grupos de usuarios. Contiene una linea por cada grupo con varios campos que contienen, nombre del grupo, contraseña, GID y una lista de usuarios incluida en el grupo.

javier:x:1000:

/etc/shadow: Este fichero almacena las contraseñas cifradas de los usuarios y las configuración para su validez, modificación, etc.

Administración de usuarios

De la administración de usuarios normales se encarga el usuario root. Para crear, eliminar o modificar los usuarios normales o sus permisos, es necesario hacerlo con el usuario root, ya que requiere tener permisos totales sobre todo el sistema. Por ello es fundamental que root tenga una contraseña segura y que solo la conozca quien ha de administrar el sistema.

Comandos

Para la creación de usuarios utilizaremos los comandos «useradd» o «adduser». La sintaxis es

adduser [Parametro] [nombre_usuario]

Podremos añadir al nombre de usuario, contraseña, nombre completo, UID, shell y directorio de trabajo, con las siguientes opciones:

  • -u : permite especificar el UID.
  • -d : permite especificar el directorio de trabajo, creará automáticamente el directorio señalado.
  • -m : para que cree el directorio /home del usuario
  • -g : Para añadir el usuario a un grupo concreto
  • -s : permite establecer el Shell.
  • -c : añade los valores a la sección de comentarios que suele ser el nombre completo del usuario.

Para conocer más opciones consulta el manual del comando

man adduser

Ejemplos

Vamos a crear un grupo, luego profundizaremos más sobre ello, al que asignaremos el GID 3050 y que nombraremos como científicos con el comando «groupadd», para después añadir usuarios.

sudo groupadd -g 3050 cientificos

Para comprobar que se ha creado tenemos que consultar el fichero /etc/group

tail /etc/group

Ahora vamos a crear varios usuarios con las siguientes características:

Y los añadiremos al grupo 3050 que hemos creado e incluiremos: UID, el nombre y apellidos del usuario, el shell será /bin/bash y el directorio home será /home/cientificos/»usuario_creado».

UIDUsuario
3001inewton
3002sramonycajal
3003mservet
3004mfaraday
3005jizquierdo

sudo useradd -u 3001 -d /home/cientificos/ -m -g 3050 -s /bin/bash -c "Isaac Newton" inewton
sudo useradd -u 3002 -d /home/cientificos/ -m -g 3050 -s /bin/bash -c "Santiago Ramon y Cajal" sramonycajal  
sudo useradd -u 3003 -d /home/cientificos/ -m -g 3050 -s /bin/bash -c "Miguel Servet" mservet 
sudo useradd -u 3004 -d /home/cientificos/ -m -g 3050 -s /bin/bash -c "Michael Faraday" mfaraday 
sudo useradd -u 3005 -d /home/cientificos/ -m -g 3050 -s /bin/bash -c "Javier Izquierdo" jizquierdo

Comprobamos que se han creado con el siguiente comando

tail /etc/passwd

Podemos comprobar la existencia de un usuario con

grep [nombre_usuario] /etc/passwd

Hemos creado los usuarios, pero estos no tienen la contraseña definida. Para asignar una contraseña a cada uno, podemos hacerlo individualmente o asignarlas todas creando un fichero con una lista de usuarios y sus contraseñas. En este caso pondré la misma contraseña a todos pero se pueden asignar diferentes contraseñas.

sudo nano fichero_users_contraseñas

Y añadimos lo siguiente

inewton:cientifico123
sramonycajal:cientifico123
mservet:cientifico123
mfaraday:cientifico123
jizquierdo:cientifico123

Guardamos y cerramos el fichero

Creamos las contraseñas redirigiendo la salida estandar de «fichero_users_contraseñas» a «chpasswd».

chpasswd < fichero_users_contraseñas

Con el comando «tail» comprobamos que estas contraseñas se han creado y está cifradas.

tail /etc/shadow 

El «fichero_users_contraseñas», pertenece a root y nadie podrá accederlo, no obstante conviene protegerlo encriptándolo o borrándolo del sistema.

Cambiar contraseñas

Para cambiarle la contraseña a un usuario en especifico, utilizaremos el comando «passwd». Este comando nos permite establecer o cambiar la contraseña de un usuario, bloquear o desbloquearlo y deshabilitar una cuenta.

Cambiamos la contraseña al usuario «jizquierdo»

sudo passwd jizquierdo

Como vemos nos pide la nueva contraseña y confirmación. Veamos más opciones

  • -d : deshabilita la necesidad de contraseña del usuario.
  • -l : bloquea la cuenta de un usuario añadiendo un signo de admiración (!) delante de su contraseña en el fichero /etc/shadow.
  • -u : desbloquea la cuenta de un usuario bloqueado.

Para conocer más opciones consulta el manual del comando

man passwd

Modificación de cuenta de usuario

La modificación de las cuentas de usuario se hacen con el comando «usermod». Con el podemos modificar propiedades como el login, el directorio de trabajo, el shell, los grupos a que pertenece, establecer una fecha de expiración de la cuenta, bloquearla o desbloquearla. Por ejemplo, para establecer una fecha de expiración de la cuenta de «jizquierdo» tenemos que utilizar la opción «-e».

sudo usermod -e 2022-01-30 jizquierdo 

La cuenta de «jizquierdo» expirará el 30 de enero de 2022

Para cambiar el login utilizaremos la opción «-l», con la siguiente sintaxis

usermod -l [el nuevo nombre de login] [el nombre anterior] 

Si queremos cambiarle la contraseña usaremos la opción «-p».

usermod –p [nueva contraseña] [nombre_usuario]

Como vemos en la captura anterior ha cambiado la contraseña y no esta encriptada.

Bloquearemos una cuenta de usuario empleando la opción «-L».

usermod –L [nombre_usuario]

Ha añadido un «!» que indica que la cuenta está bloqueada

Para desbloquearla

usermod –U [nombre_usuario]

Vemos que esta desbloqueada.

Para conocer más opciones consulta el manual del comando

man usermod 

Eliminar cuenta de usuario

Para eliminar usuarios utilizamos el comando «userdel». Esta acción elimina un usuario de /etc/passwd, no obstante no elimina la entrada de /etc/group que habría que eliminarla manualmente.

Si solo quisiéramos eliminar la cuenta del usuario, y que sus directorios y ficheros queden en el sistema, ejecutaríamos

sudo userdel [nombre_usuario]

Pero si lo queremos eliminar todo usaríamos la opción «-r».

sudo userdel -r [nombre_usuario]

Vemos que ya no existe el usuario «fjizquierdo».

Administración de Grupos

Ya hemos visto como se crea un grupo. Los grupos de usuarios nos permiten asignar permisos sobre ficheros y directorios a varios usuarios a la vez. Cada usuario puede pertenecer a varios grupos y cada usuario tiene asignado un grupo principal por defecto. También podemos utilizar el comando «addgroup».

Crear grupos

Vamos a añadir los usuarios a dos grupos, que vamos a crear y que llamaremos «españoles» con GID 3060 e «ingleses» con GID 3061 con el comando «groupadd». También podemos usar el comando «gpasswd» como veremos un poco más adelante. La sintaxis es

groupadd -g [GID] [nombre_grupo]

Y añadimos los usuarios a sus grupos según su nacionalidad

adduser [nombre_usuario] [nombre_grupo]

Modificar grupos

Para modificar grupos en GNU/Linux, utilizamos el comando «groupmod». con la siguiente sintaxis

groupmod -g [GID] [nombre_grupo]

Si lo que queremos es cambiarle el nombre a un grupo ejecutamos el comando «groupmod» con la opción «-n».

groupmod -n [nuevo nombre del grupo] [nombre viejo del grupo]

También podemos, con el comando «gpasswd», administrar las propiedades de los grupos. Para agregar un usuario al grupo tenemos que usar la opción «-a».

gpasswd -a [usuario] [nombre del grupo]

Para ver todas las opciones de este comando consultar

man gpasswd

Eliminar grupos

Para eliminar grupos en GNU/Linux, utilizamos el comando «groupdel». No podremos eliminar el grupo primario del usuario.

groupdel [nombre_grupo]

Observamos que ya no existe el grupo «britanicos». Y con esto terminamos de ver la administración básica de usuarios y grupos en sistema GNU/Linux.

¿Tienes algún comentario que hacer sobre este artículo?, al pie del post tienes un formulario para hacerlo.

Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.

Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.

Deja una respuesta

This site uses Akismet to reduce spam. Learn how your comment data is processed.