Le fait d'éxécuter Apache en tant qu'utilisateur privilégié a des
conséquences en terme de sécurité. Une autre façon d'exécuter le script
précédent en tant qu'utiliseur postgres
consiste à créer un binaire setuid. Pour faire cela, créez un fichier
test.cgi en compilant le programme C
suivant, similaire à celui de la section 34.2.
i
#include <unistd.h>
int main(int argc, char *argv[]) { setreuid (getuid (), geteuid ()); execl (``/opt/apache/htdocs/test/test.sh'', ``test.sh'', 0); return 0; } |
#include <unistd.h>
int main(int argc, char *argv[]) { char *envir[] = {0}; seteruid (geteuid (), geteuid ()); execle (``/opt/apache/htdocs/test/test.sh'', ``test.sh'', 0, envir); return 0; } |