Cómo ejecutar scripts de shell con el comando sudo en Linux

Cómo ejecutar scripts de shell con el comando sudo en Linux

sudo es una poderosa herramienta de línea de comandos que permite un "usuario permitido"Para ejecutar un comando como otro usuario (el superusor de forma predeterminada), según lo definido por una política de seguridad. En la mayoría de los sistemas Linux, si no todos, la política de seguridad es impulsada por el /etc/sudoers archivo.

Leer también: 10 configuraciones útiles de sudoers para configurar 'sudo' en Linux

Por lo tanto, para ejecutar un script o programa de shell como root, debe usar el comando sudo. Sin embargo, sudo Solo reconoce y ejecuta comandos que existen en los directorios especificados en el seguro_path en el /etc/sudoers, A menos que esté presente un comando en el seguro_path, contrarrestarás un error como el siguiente.

Esto sucederá incluso si el guión existe en un directorio en el CAMINO variable ambiental, porque cuando un usuario invoca sudo, CAMINO se reemplaza con seguro_path.

$ Echo $ Path $ LS -L $ sudo Proconport.SH 80 
Error de sudo mientras se ejecuta el script

En el escenario anterior, el directorio /Home/Aaronkilik/Bin está en el CAMINO Variable de entorno e intentamos ejecutar el script /Home/Aaronkilik/bin/Proconport.mierda (encuentra el proceso escuchando en un puerto) con privilegios raíz.

Luego encontramos el error "sudo: Proconport.SH: Comando no encontrado", desde /Home/Aaronkilik/Bin no esta en el sudo secure_path Como se muestra en la siguiente captura de pantalla.

Verifique la ruta segura de sudo

Para solucionar esto, necesitamos agregar el directorio que contiene nuestros scripts en el sudo secure_path mediante el uso del Comando Visudo editando /etc/sudoers Archivo de la siguiente manera.

$ sudo visudo 

Atención: Este método tiene serias implicaciones de seguridad, especialmente en los servidores que se ejecutan en Internet. De esta manera, corremos el riesgo de exponer nuestros sistemas a varios ataques, porque un atacante que logra obtener acceso a un directorio no seguro (sin privilegios de superusuario) que se ha agregado a Secure_Path, puede ejecutar un script/programa malicioso con comando sudo.

Por motivo de seguridad, consulte el siguiente artículo del sitio web de SUDO explica una vulnerabilidad relacionada con Secure_Path: https: // www.sudo.ws/sudo/alerts/secure_path.html

Preferiblemente, podemos proporcionar el camino absoluto a un script mientras lo ejecutamos con sudo:

$ sudo ./Proconport.SH 80 
Ejecutar script usando el comando sudo

Eso es todo! Puede seguir la lista de artículos sobre el comando sudo:

  1. Cómo ejecutar el comando 'sudo' sin ingresar una contraseña en Linux
  2. Cómo mantener la sesión de tiempo de espera de contraseña de 'sudo' por más tiempo en Linux
  3. Cómo solucionar "El nombre de usuario no está en el archivo de sudoers. Este incidente se informará "en Ubuntu
  4. Deje que sudo lo insultes cuando ingreses una contraseña incorrecta

Si tiene alguna pregunta o pensamiento sobre este artículo, comparta con nosotros a través del formulario de comentarios a continuación.