2010-10-20 6 views
3

Salut, je suis en utilisant la commande shell_exec à partir d'un script PHP:privilèges utilisateur Apache dans Centos

$output = shell_exec('ls -l'); 
print_r($output); 

Terminal: php test.php

Quels sont les résultats dans la liste des répertoires comme prévu.

Passer à mon navigateur Je n'ai pas de sortie.

Je dois accorder des privilèges à l'utilisateur 'apache' afin qu'il puisse exécuter certaines commandes, ou ajouter l'utilisateur à un groupe avec de tels privilèges. Je sais comment ajouter des utilisateurs à des groupes, etc, je me demandais juste quelle est la meilleure méthode d'accorder de tels privilèges à l'utilisateur Apache.

Répondre

0

Cela m'a pris du temps à comprendre afin qu'il puisse être utile aux autres. Le problème était que j'essayais de donner les droits d'utilisateur apache dans/etc/sudoers et que SELinux les refusait (à juste titre).

J'ai donc rapidement désactivé SELinux pour httpd et tout fonctionnait.

Ceci est loin d'être une situation idéale pour un serveur web public. En ce qui concerne les meilleures pratiques, audit2allow doit être utilisé pour définir les opérations permissives.

0

Si vous exécutez ls -Z dans le répertoire souhaité, vous verrez quelles autorisations SELinux pour ce répertoire.

Pour autoriser le démon httpd/apache pour accéder à ce répertoire, vous pouvez exécuter (l'option R est pour le rendre récursive):

chcon -Rv --type=httpd_sys_content_t /desired/path 

Hope it helps.