2010-02-15 13 views
0

J'essaye de faire une interface frontale légère pour mon serveur de fichiers. J'utilise PHP pour afficher tous les fichiers, mais readdir() est exécuté en tant qu'utilisateur http, car apache est démarré en tant que cet utilisateur.PHP: Comment exécuter readdir() en tant que root

Ceci est un problème, car je veux voir tous mes fichiers. Readdir() doit donc être exécuté en tant que root, mais je ne sais pas comment le faire. Pouvez-vous m'aider?

Répondre

1

Cela ne peut pas être fait. Vous ne pouvez pas exécuter une seule fonction en tant qu'utilisateur à moins que vous n'ayez démarré en tant qu'utilisateur et que vous y reveniez temporairement.

+0

OK. Avez-vous d'autres suggestions sur la façon dont je peux réaliser la même chose? Peut-être avec exec ('sudo ls') ou quelque chose comme ça? Ou est-il plus facile de démarrer Apache en tant que root, de passer à http, puis de revenir en arrière? (ne savez pas vraiment comment faire cela non plus) – Ben

+0

Vous pouvez utiliser les ACL pour contrôler l'accès aux répertoires. –

+0

Comment les ACL peuvent-elles me donner accès aux fichiers que je ne possède pas, vu qu'ils ne communiquent pas avec le système? Ce que j'ai fait maintenant est de définir le propriétaire d'apache à mon propre utilisateur et maintenant je peux voir mon propre dossier. Mais vous avez dit quelque chose sur le changement d'utilisateurs. Puis-je réactiver un serveur apache en direct lancé par mon utilisateur sur http et revenir à mon utilisateur? – Ben