Ejecutar comandos como root con sudo

Introducción: 
Linux sigue el modelo de permisos muy estricto. Un usuario raíz puede hacer cualquier cosa, pero el usuario normal no tiene permisos. Para ejecutar cualquier comando, deben solicitar permisos al superusuario. La forma fácil y común de otorgar privilegios administrativos a usuarios que no son root es que un usuario puede usar el comando su y convertirse temporalmente en root , pero los usuarios deben conocer la contraseña de root. En el mundo empresarial esto es muy peligroso porque todos los privilegios de root se otorgan a cualquier usuario, que puede hacer cualquier cosa. Por ejemplo – 

[userA@rhel7 ~]$ su -
Password:

Está pidiendo la contraseña de superusuario. 

Para superar el riesgo mencionado anteriormente, el comando sudo está de moda. Permite que un usuario ejecute un comando como raíz o como cualquier otro usuario después de proporcionar la propia contraseña del usuario para la autenticación. Esta información se define en el archivo /etc/sudoers . Antes de describir el comando «sudo», quiero hablar un poco sobre visudo 

¿Qué es visudo?  
Visudo es un comando para editar el archivo de configuración para el comando sudo ubicado en /etc/sudoers . No debe editar este archivo directamente con el editor normal, use siempre visudo por seguridad. La edición del archivo /etc/sudoers requiere privilegios de superusuario. 

El comando visudo no puede permitir editar el archivo /etc/sudoers simultáneamente simplemente bloqueando el archivo y si alguien intenta acceder al mismo, recibirá un mensaje para intentarlo más tarde. 

[root@rhel7 ~]# visudo
visudo: /etc/sudoers busy, try again later

También comprueba la sintaxis de las ediciones y proporciona comprobaciones básicas de cordura que son muy útiles. Si identifica algún error, visudo no permitirá guardar el archivo con ediciones. 

Establecer reglas en el archivo sudoers: 
surge una pregunta común en la mente de todos, ¿cómo definimos las reglas en el archivo sudoers? Por lo tanto, antes de editar, es mejor comprender la configuración existente que define qué usuarios pueden ejecutar qué software en qué máquinas. La sintaxis de la regla predefinida se proporciona a continuación: 

root    ALL=(ALL:ALL) ALL

Esto permite que root ejecute cualquier comando en cualquier lugar. El significado de esta línea es:  

username    hosts=(users:groups)    commands

TODOS significa que el usuario puede ejecutar todos los comandos en todos los hosts, como todos los usuarios y grupos. Entonces, root tiene todos los privilegios para ejecutar cualquier comando como cualquier usuario o grupo. 

Consideremos un ejemplo y proporcione TODO el poder al usuario A como root.  

userA   ALL=(ALL:ALL)   ALL

Si desea usar el comando sin contraseña, use el parámetro PASSWD:  

userA    ALL(ALL:ALL)    NOPASSWD:ALL

En el siguiente ejemplo, el usuario A solo inicia, detiene y reinicia el servicio   «httpd»

userA   ALL=(root)      /usr/bin/systemctl, /usr/sbin/httpd start stop restart

El usuario puede comprobar si el comando funciona o no. Luego siga el siguiente procedimiento para verificar:  

[root@rhel7 ~]# su - userA
Last login: Thu Sep 13 15:01:18 EDT 2018 on pts/0
[userA@rhel7 ~]$ sudo -u root systemctl stop httpd
[sudo] password for userA:
[userA@rhel7 ~]$

Nota: también podemos usar vim con visudo.  

export VISUAL=vim; visudo

Usando nano con visudo  

export VISUAL=nano; visudo

Asigne privilegios a un grupo: 
puede asignar privilegios similares a varios usuarios simplemente agrupándolos. Hay un grupo predefinido en el archivo sudoers. Los miembros de este grupo pueden usar sudo para ejecutar cualquier comando como cualquier usuario, incluido el superusuario. Podemos agregar usuarios a este grupo. Normalmente se configura como –  

%wheel  ALL=(ALL)       ALL

Use el comando para agregar un usuario en el grupo de ruedas –  

usermod -aG wheel username

Publicación traducida automáticamente

Artículo escrito por Mausami_Inhe y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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