2008-10-06 12 views
1

Je lance PHP 5.2.6 en tant que CGI sous lighttpd 1.4 et pour une raison quelconque, il fonctionne toujours en tant que root. Tous les processus php-cgi sont la propriété de root et tous les fichiers écrits sur le système de fichiers appartiennent à root.php-cgi fonctionne en tant que root

J'ai essayé de définir l'utilisateur dans lighttpd comme non privilégié, et confirmé, il fonctionne correctement c'est juste php qui fonctionne en tant que root.

Comment paramétrer php-cgi en tant qu'utilisateur plus sûr?

Répondre

2
  1. Assurez-vous:

    server.username   = "nonprivuser" 
    server.groupname   = "nonprivgroup" 
    
  2. arrêt lighttpd.

  3. Vérifiez les processus php existants et supprimez-les.
  4. début lighttpd
  5. contrôle des processus php sont en cours d'exécution comme non PRIV

si php est toujours en cours d'exécution en tant que root, vous avez peut-être un script SETUID les charger quelque part (vous devriez vraiment pas, mais son possible

si c'est le cas, vérifiez que le fichier 'bin-path' fait référence à rien de funky.

0

Il est possible qu'un processus fastcgi ait été démarré sur le serveur en tant qu'utilisateur root. Si tel est le cas, le processus fastcgi continuera à exécuter les processus php appelés depuis lighttpd.

Je suggère de tuer les processus fastcgi sur votre serveur et de redémarrer lighttpd.

Vous pouvez également jeter un oeil à n'importe quel script de démarrage qui pourrait lancer le démon fastcgi.

+0

Donc, dites-vous que s'il n'y a pas de processus fastcgi en cours d'exécution, le premier démarré définit l'utilisateur tous les autres en cours d'exécution? Intéressant ... –

+0

Oui. FastCGI forge un processus et le processus forké s'exécute comme le même utilisateur que le processus maître. – Devon