Estoy tratando de hacer una interfaz web mediante la administración de IPtables.
Creé un archivo, cuyo nombre es test.php
$output = shell_exec('bash /usr/bin/iptables.sh 2>&1'); echo $output;Le di /usr/bin/iptables.sh NOPASSWD para poder ejecutar el archivo con sudo a través de apache sin usar una contraseña
sudo iptables -Larchivo sudoers:
apache ALL=(root) NOPASSWD: /usr/bin/iptables.shPero sigo recibiendo el siguiente error:
Confiamos en que haya recibido la lección habitual del administrador del sistema local. Por lo general, se reduce a estas tres cosas: #1) Respetar la privacidad de los demás. #2) Piensa antes de escribir. #3) Un gran poder conlleva una gran responsabilidad. sudo: se requiere una terminal para leer la contraseña; use la opción -S para leer desde la entrada estándar o configure un asistente de askpass{"mode":"full","isActive":false}
Sin embargo, si uso
apache ALL=(root) NOPASSWD: ALLTodo funciona bien.
Verifiqué dos veces mi directorio y usé la ruta exacta
[root@CentOS bin]# readlink -f iptables.sh /usr/bin/iptables.shSúper despistado aquí, ¿alguien puede ayudarme con una dirección? :'(
Esto ha sido resuelto.
La respuesta está aquí si alguien tiene el mismo problema.
bash es redundante
Simplemente elimine el bash y ejecute así en su lugar
$output = shell_exec('/usr/bin/iptables.sh 2>&1');