Cómo ejecutar scripts de Shell con el comando Sudo en Linux
sudo. es una poderosa herramienta de línea de comandos que permite a un “ usuario autorizado. ejecutar un comando como otro usuario (el superusuario de forma predeterminada), según lo definido por una seguridad política. En la mayoría de los sistemas Linux, si no en todos, la política de seguridad se rige por el archivo /etc/sudoers× ..
Leer también. 10 configuraciones útiles de Sudoers para configurar ‘sudo’ en Linux
Por lo tanto, para ejecutar un script de shell o un programa como root, necesita usar el comando sudo. Sin embargo, sudo. solo reconoce y ejecuta comandos que existen en los directorios especificados en secure_path. en /etc/sudoers. a menos que haya un comando presente en ruta_segura. contrarrestará un error como el que se muestra a continuación.
Esto sucederá incluso si la secuencia de comandos existe en un directorio de la RUTA. variable de entorno, porque cuando un usuario invoca sudo. PATH. se reemplaza por secure_path.
$ echo $ PATH $ ls-l $ sudo proconport.sh 80
Error de sudo al ejecutar el script
En el escenario anterior, el directorio /home/aaronkilik/bin. está en el PATH. y estamos intentando ejecutar el script /home/aaronkilik/bin/proconport.sh. (encuentra el proceso escuchando en un puerto) con privilegios de root.
freestar. config.enabled_slots.push
Luego encontramos el error “ sudo: proconport.sh: comando no encontrado. , desde /home/aaronkilik/bin. no está en sudo secure_path. como se muestra en la siguiente captura de pantalla.
Verifique Sudo Secure Path
Para solucionar esto, necesitamos agregar el directorio que contiene nuestros scripts en sudo secure_path. usando el comando visudo. editando el archivo /etc/sudoers. de la siguiente manera.
$ sudo visudo
Atención:. este método tiene serias implicaciones de seguridad, especialmente en servidores que se ejecutan en Internet. t. 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 sudo command.
Por motivos de seguridad, consulte el siguiente artículo del sitio web de sudo que explica una vulnerabilidad relacionada con secure_path: https://www.sudo.ws/sudo/alerts/secure_path.html
Preferiblemente, podemos proporcionar la ruta absoluta a un script mientras lo ejecutamos con sudo:
$ sudo ./proconport.sh 80
Ejecutar secuencia de comandos usando el comando Sudo
¡Eso es todo! Puede seguir la lista de artículos sobre el comando sudo:
- Cómo ejecutar el comando ‘sudo’ sin ingresar una contraseña en Linux
- Cómo mantener la sesión de tiempo de espera de la contraseña ‘sudo’ más larga en Linux
- Cómo arreglar “El nombre de usuario no está en el archivo sudoers. Este incidente será reportado ”en Ubuntu
- Deje que Sudo lo insulte cuando ingrese una contraseña incorrecta
Si tiene alguna pregunta o pensamiento sobre este artículo, compártelo con nosotros a través de el formulario de comentarios a continuación.