* Miki <[EMAIL PROTECTED]> [2003-03-06 22:34] : > Voila pour des besoins j'ai fait un script pour rajouter des informations > dans un fichier depuis un formulaire pour squid (jusque la pas de probleme > ca marche) et a la fin de ce script php je lui dit d'executer un script perl > afin de relancer le proxy squid > > #!/usr/bin/perl > system("/etc/init.d/squid restart"); > > mais voila ca ne marche pas car ce qui est normal je n'ai pas les droits sur > le fichier squid meme en faisant un chmod 0777 si vous pouviez m'aider à ce > sujet car a vrai dire je bloque sur ca depuis 4 heures
Le problème ne situe pas au niveau du script /etc/init.d/squid (par défaut, tous les scripts de /etc/init.d sont +x pour tout le monde), mais lors de l'exécution de ce script, certaines commandes (par exemple, start-stop-daemon ou même squid) ne pourront pas s'exécuter car l'utilisateur les lançant (www-data ?) n'aura pas les bonnes permissions d'accès. Une solution très mauvaise du point de vue de la sécurité, mais qui devrait fonctionner est de configurer sudo pour l'utilisateur exécutant le script php (www-data, je suppose) afin qu'il puisse passer pour un utilisateur autorisé quand il lance la commande /etc/init.d/squid. Il ne faut pas non plus que sudo lui demande un mot de passe (voir man sudo et man sudoers). Enfin, il serait judicieux de limiter les commandes invocables par cette règle sudo à cette seule commande, sous un utilisateur autre que root (y a-t-il un utilisateur spécifique pour squid ?) et à partir seulement de la machine locale. Ensuite, cela implique que toute personne pouvant accéder au script Perl pourra redémarrer le serveur Squid qui est dans la plupart des cas une très mauvaise idée ... Fred