Manejo y administración de usuarios en Centos 8

Las tareas del administrador de sistemas son altamente importantes, entre estas tareas se encuentra la administración de usuarios.

Si eres una persona primeriza en Gnu/Linux el concepto de usuarios y permisos probablemente sea confuso al inicio. Así que decidimos crear un pequeño blog para que entender los usuarios dentro de Gnu/Linux de una forma más sencilla y fácil de recordar.

Creando usuarios con useradd

Para el manejo de usuarios la mayoría de distribuciones Linux vienen con utilidades variadas que nos permiten manejar nuestro sistema de una forma elegante, una de estas es la herramienta useradd.

Para crear un nuevo usuario con permisos estándar necesitamos ejecutar el siguiente comando:

useradd <nombre>

En el lugar de “<nombre>” deberá ser reemplazado por el nombre de usuario que deseamos añadir, por ejemplo si quisieramos añadir el usuario “perro” debemos ejecutar la siguiente línea como “superusuario” o como administrador:

useradd perro

El resultado en una consola de CentOS será el siguiente:

Comando useradd ejecutado en CentOS 8

Como nota extra un nombre de usuario “estándar” de gnu / linux es una cadena de 32 caracteres (ejecutar man useradd (8) para más detalles en el manual de la consola).

Cada que se ejecuta el usuario se creará un directorio “home” para el mismo con el siguiente formato:

/home/<usuario>

Este formato heredado del estándar de un sistema operativo diferente de Linux llamado BSD y agrega algunas restricciones adicionales. El usuario debe contener las siguientes condiciones:

  • No utilizar letras mayúsculas.
  • No utilizar puntos. (.)
  • No teminar en guión (-)
  • No debe incluir dos puntos. (:)

No te alarmes si no obtienes una notificación de salida, esto significa que la ejecución del comando fue exitosa, de lo contrario un error saltará, por ejemplo:

Error al escribir un usuario inválido

Para conocer mas a fondo el funcionamiento del comando useradd podemos ejecutar la orden man useradd para conocer todas sus opciones:

Página del manual de useradd

Experimentando con las opciones de useradd

Una vez comprendamos la utilidad de useradd podemos comenzar a utilizar las opciones que nos ofrece para manejar los usuarios de forma elegante.

Por ejemplo, si deseamos crear un usuario y cambiar el directorio “home” del usuario para elegir el directorio de nuestro agrado que no sea /home/usuario.

Intentemos crear un usuario cuyo directorio “home” se encuentre en la carpeta del sistema /usr/ podemos ejecutar el siguiente comando:

sudo useradd gato -d /usr/casa-gato

Donde “casa-gato” será el directorio donde el usuario “gato” almacenará sus archivos.

Ejecución del comando anterior

useradd también nos permite cambiar algo llamado “UID”. El UID es un acrónimo para “User IDentifier” en inglés. En Linux un UID se asigna a cada usuario existente y sirve como la representación del usuario para el núcleo del sistema.

Para este creamos un usuario llamado “johndoe” y le asignamos una carpeta home en /home/helder. Para comprender los UID podemos ejecutar el comando cat /etc/passwd y podemos notar en la última línea la información de nuestro usuario johndoe:

He aquí una imágen explicando la nomeclatura del archivo:

Uid Gid Etc Passwd File Linux

El primer elemento señalado es el “UID” o “User IDentifier” mientras que el segundo es llamado “GID” o “Group IDentifier”.

Como nota, para Linux los UID del 1 al 500 están reservados para los usuarios necesarios del sistema. En distribuciones Linux populares como Ubuntu, Fedora o CentOS/Red Hat los nuevos usuarios comienzan desde el UID: 1000

Intentemos crear un nuevo usuario con el UID 1500, para ello será necesario el siguiente comando

useradd --uid 1500 pollito

y para revisar que el UID fue asignado correctamente solamente debemos ejecutar el comando:

id <usuario>

Donde <usuario> es el nombre de usuario cuyo UID deseamos consultar:

El comando id nos muestra que nuestra ejecución de useradd funcionó perfectamente

Combinando opciones de useradd

useradd no se limita a una sola opción por comando, siempre y cuando las opciones no conflictuen entre si podemos añadir todas las que necesitemos en un solo comando, por ejemplo, si deseamos crear un usuario cuyo directorio home se encuentre dentro /usr/ y posea un UID diferente de 1000 podemos crear el siguiente comando:

useradd --uid 1200 -d /usr/comarca hobbit

Creación del usuario hobbit y comprobación de UID asignado

Ahora intenta experimentar. ¿Como crearias otro usuario? ¿Que comando utilizarías para que su directorio home esté en el directorio del sistema /etc/? Intenta experimentar con las opciones antes de pasar a la siguiente sección.

Entendiendo sudo y a los superusuarios

En todos los sistamas Gnu/Linux existe un usuario con superpoderes más allá de nuestra comprensión.

La verdad no, sin embargo si existe el usuario “root” el cual podemos denominar como “superusuario” y el mismo tiene la habilidad de hacer y administrar todo en el sistema. Por ello, para tener una capa extra de seguridad la creación de un superusuario extra es necesaria para reemplazar las funciones administrativas de root. Para ello existe la herramienta de nombre sudo, la cual permite que un usuario tenga permisos de administración del sistema sin tener que iniciar sesión como root directamente.

El comando sudo lo utilizamos en las capturas de pantalla al inicio de esta entrada, pero si quedan dudas de su uso, la sintáxis básica de sudo es:

sudo <comando>

CentOS ya incluye sudo en su instalación, pero en caso de dudas puede ser instalado ejecutando como root:

dnf install sudo

Para poder proveer a un usuario con los poderes de sudo necesitarán añadirse a un grupo autorizado por le herramienta o su nombre de usuario necesitará ser añadido al archivo sudoers con ciertos permisos. Por favor ten en cuenta que este archivo contiene información sensible y no debería de ser editado directamente con un editor de texto, si el archivo “sudoers” se edita de forma incorrecta el resultado podría ser catastrófico, pues los administradores pueden quedar sin acceso a las funciones de superusuario.

Editar el archivo sudoers es editado llamando al comando visudo, este comando solo puede ser ejecutado por administradores del sistema.

Precaución
Los usuarios nunca deben agregarse al archivo o grupo sudoers con permisos completos si no son de confianza.

He aquí un ejemplo del uso de visudo para añadir un usuario al archivo sudoers, para ello necesitamos ejecutar visudo como root o con la órden sudo visudo si tenemos sudo configurado:

Archivo sudoers sin modificar

El editor por defecto de CentOS para editar el archivo sudoers es el editor Vi/Vim, no cubriremos como usar el editor en esta entrada, pero puedes consultar como utilizarlo en este enlace.

Intentemos añadir al usuario gato creado anteriormente, para ello debemos añadir debajo del usuario root la línea:

gato ALL=(ALL:ALL) ALL

Si lo hicimos correctamente nuestro archivo sudoers debería verse así:

En caso de haber cometido un error el comando visudo al salir del editor nos informará que tenemos un error y donde está el mismo.

Como conclusión los usuarios son útiles para realizar diferentes tareas dependiendo de nuestras necesidades, por ejemplo colaborar o compartir archivos. Al utilizar Linux como sistema operativo de escritorio se crean usuarios constantemente para tareas comunes como editores web, reproductores de música, juegos, etc.

Puedes consultar mas información en el siguiente enlace dentro de este blog:

¿Te gustó la entrada? ¿Te resultó útil? Prueba jugar con los usuarios de un sistema Linux dentro de una máquina virtual. Déjanos un comentario si te fue útil o si tienes dudas al respecto.

¡Nos vemos en la próxima entrada! 😀

Dejar un comentario

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

A %d blogueros les gusta esto: