Agregar permisos elevados a scripts en un directorio

Agregar permisos elevados a scripts en un directorio

Tengo un directorio que contiene algunos scripts que necesito invocar desde una solicitud web. Los scripts necesitan permisos elevados para ejecutarse.

Mi pensamiento actual es agregar las siguientes líneas a /etc/sudoers:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts
www-data ALL=(ALL) NOPASSWD: WEB_COMMANDS

¿Es este el enfoque correcto para este problema? ¿O estoy provocando una posible vulnerabilidad de seguridad?

Usando CentOS 7, si eso hace alguna diferencia.

Respuesta1

Cualquier cosa es una posible vulnerabilidad de seguridad. Dos cosas:

En primer lugar, ¿estásseguronecesita root? ¿Por qué? ¿Puedes hacer eso con capacidades? (Probablemente puedas).

Dicho esto, su ejemplo es casi acertado. Agregue un asterisco después de la ruta:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts/*

Y ahora funcionará. Pero tenga cuidado, si un atacante puede modificar cualquiera de esos scripts, el atacante ganaACCESO RAÍZ COMPLETO. Pueden simplemente exec('/bin/bash')tener un caparazón. Definitivamente, si es posible, siga la ruta de capacidades por secuencia de comandos y DEFINITIVAMENTE bloquee el directorio de secuencias de comandos de cualquier manera. Veresta respuesta de unix.separa obtener información sobre la gestión de capacidades con scripts.

información relacionada