LINUX

Cómo agregar usuarios a Sudoers en Linux

administrar linux sudo

El acceso a sudo permite a un usuario ejecutar todos los comandos permitidos como root o como cualquier otro usuario. Una vez que se le da acceso a sudo a un usuario específico en el archivo sudoers, ese usuario puede ejecutar los comandos como root ejecutándolo con el prefijo sudo. Este usuario tiene acceso completo al sistema y debe usarse solo para tareas administrativas. Básicamente, no hay restricciones sobre lo que puede hacer con su sistema.

¿Qué es el archivo sudoers y cómo funciona el comando sudo?

los /etc/sudoers el archivo controla quién puede ejecutar qué comandos como qué usuarios en qué máquinas y también puede controlar cosas especiales como si necesita una contraseña para comandos particulares. Cuando tiene un nuevo usuario en su sistema, debe decidir si este usuario debería poder realizar tareas administrativas con sudo. Si el nuevo usuario será un usuario principal en el sistema, normalmente querrá habilitar los privilegios de sudo para poder realizar la configuración y el mantenimiento de rutina.

Es decir, si se proporciona acceso sudo al usuario sam, puede enumerar los archivos en la carpeta protegida /root como sigue.

$ sudo ls /root

Le pedirá la contraseña para ingresar (contraseña del usuario sam y no raíz contraseña). Una vez que esté autenticado, se establecerá una marca de tiempo y podrá ejecutar el comando sudo sin contraseña durante un corto período de tiempo (5 minutos por defecto) después de lo cual se restablece la marca de tiempo.

Agregar usuario para acceso a sudo en el archivo / etc / sudoers

Para dar acceso a los usuarios al comando sudo, necesitamos usar el comando visudo para editar /etc/sudoers expediente. Nunca debe editar este archivo con un editor de texto normal, siempre use el comando visudo en su lugar. Si aún no ha asignado privilegios adicionales a ningún usuario, deberá iniciar sesión como root para acceder a este comando.

# visudo

Esto bloqueará el archivo sudoers para evitar modificaciones simultáneas y no guardará los cambios en el archivo en caso de errores de sintaxis. Se le llevará a una sesión de editor de texto con el archivo que define los privilegios de sudo precargado. Tendremos que agregar su usuario a este archivo para otorgar nuestros derechos de acceso deseados.

En Centos, encuentra la línea «Permitir que root ejecute cualquier comando en cualquier lugar»

En el sistema Debian, busque la línea con «Especificación de privilegios de usuario»

La sintaxis para proporcionar acceso a sudo es la siguiente.

username host_list = (users) command
  • nombre de usuario : Corresponde al usuario al que se debe proporcionar acceso a sudo
  • host_list: Esto define los hosts en los que el usuario puede acceder a sudo.
  • usuarios: Esto define a los usuarios según los cuales ‘nombre de usuario’ puede ejecutar los comandos.
  • mando : Esto define los comandos que el usuario puede ejecutar como root / otro usuario.

Podemos revisar algunas configuraciones de ejemplo del archivo sudoers para tener una idea clara de esto. Dependiendo de lo que desee permitir en su sistema (Debian o Centos), simplemente respete la sintaxis de las líneas que aparecen en la captura de pantalla anterior. En los siguientes casos, consideraremos solo el sistema Centos

una. Permitir que un usuario use sudo

Si desea permitir que un usuario específico ejecute cualquier comando como cualquier usuario en cualquier host, inserte la línea a continuación. Nuestro ejemplo de usuario es sam

sam ALL=(ALL) ALL

B. Permitir que los usuarios de un grupo específico ejecuten cualquier comando

Aquí, todos los usuarios de los administradores de grupo pueden ejecutar cualquier comando como cualquier usuario en cualquier host.

%admins ALL=(ALL) ALL

C. Permitir ejecutar comandos sin autenticarse

Aquí, el usuario sam puede ejecutar los comandos /bin/kill, /bin/ls y /usr/bin/lprm en localhost sin autenticarse a sí mismo.

sam localhost = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm

D. Permitir ejecutar comandos específicos como usuario específico

Aquí, Sam puede correr /bin/ls como Jacobo y /bin/kill y /usr/bin/lprm como solo raíz en cualquier host.

sam ALL = (jack) /bin/ls, (root) /bin/kill, /usr/bin/lprm

Aquí, sam puede ejecutar cualquier comando en la carpeta / usr / bin como root en cualquier host. Tenga en cuenta que una barra inclinada (/) no coincidirá con los comodines utilizados en el nombre de la ruta. Eso es, sam no puede ejecutar binarios bajo /usr/bin/subfolder/*

sam ALL = /usr/bin/*

Aquí, sam puede ejecutar cualquier comando en la carpeta / usr / bin como root que no sea / usr / bin / passwd en cualquier host

sam ALL = /usr/bin/* !/usr/bin/passwd

Uso del comando sudo

Una vez que se proporciona el acceso a sudo usando el archivo sudoers, puede ejecutar los comandos permitidos como root o como otro usuario usando el comando sudo. Podemos revisar algunos usos de ejemplo del comando sudo.

una. Operar en algunos servicios

Cuando desee operar algún servicio como servidor web, servicio de red o servidor de base de datos, necesita tener privilegios. Por ejemplo, si desea reiniciar su servidor web, debe usar el siguiente comando

$ sudo systemctl restart httpd.service

Si desea reiniciar su firewall, el procedimiento es el mismo

$ sudo systemctl restart firewalld

B. Ejecuta un comando como otro usuario

Con el comando sudo, es posible ejecutar un comando como si fuéramos otro usuario del sistema.

sudo -u jack vi /home/jack/mail.php

Aquí -u La opción permitirá al usuario ejecutar el comando como jack.

C. Ejecute el comando ingresado previamente en sudo

Puede ejecutar un comando y falla porque olvidó comenzarlo con sudo. Es posible volver a ejecutar el último comando con una función bash que, junto con sudo, hace que se ejecute directamente ese comando como root.

sudo !!

El doble signo de exclamación repetirá el último comando. Lo precedimos con sudo para cambiar rápidamente el comando sin privilegios a un comando con privilegios.

# ls -ld /
ls: /: Permission denied
# sudo !!
sudo ls -ld /
dr-xr-xr-x. 20 root root 4096 May 23 04:19 /

D. Usuario sustituto en el shell actual

Cuando crea un usuario, el comando sudo le permite cambiar a otro usuario directamente en el shell. Le permite ingresar el usuario al que le gustaría cambiar

[root@centos-01 ~]# su - paul
[paul@centos-01 root]$

Puedes ver que en la segunda línea está el usuario Paul quien esta conectado

Conclusión

Con sudo, un usuario normal puede ejecutar un comando root, siempre que un administrador de sistemas le permita ejecutar el comando. Además de ejecutar el comando como root, un usuario también puede ejecutar un comando como cualquier otro usuario, si tiene permiso para hacerlo. Es esencial que comprenda lo que hace cada comando que ejecuta con privilegios de root.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar