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