1 votes

Exécuter des commandes en PHP avec un autre utilisateur

Je voudrais pouvoir exécuter des commandes PHP, dans la fonction système exec ou autre, mais avec un utilisateur différent de www-data. Système d'exploitation : Ubuntu Server 10.10 Serveur Web : Apache2

J'ai cherché des réponses pendant plusieurs heures maintenant, mais c'est une impasse. La plupart des gens disent que c'est impossible et d'autres ne savent pas. Je voudrais exécuter des commandes avec un utilisateur différent en PHP. Voici en gros ce que je veux : L'utilisateur appuie sur un bouton qui démarre un écran exécutant le serveur CS Source. L'écran est exécuté par mon utilisateur.

J'espère que vous comprendrez ce que je veux ici. Je ne sais pas non plus quelle fonction utiliser (system, exec ou autre), donc quelques conseils ici aussi pourraient être utiles.

Merci d'avance !

0 votes

Peut-être que ceci stackoverflow.com/questions/5797816/ c'est ce que vous voulez ?

0 votes

0 votes

Essayez-vous d'exécuter des commandes individuelles à l'intérieur de PHP scripts en tant que différents utilisateurs ou essayez-vous d'exécuter l'ensemble de PHP scripts en tant que différents utilisateurs ?

1voto

Wrikken Points 981

SuExec vous pouvez le faire, encore plus facile est suphp, qui a un paquet dans Debian, donc je suppose qu'Ubuntu l'aura aussi. ceci semble être une introduction appropriée . Bien sûr, vous pouvez aussi utiliser de simples sudo la fonctionnalité si c'est juste une ou deux commandes au lieu que tout le site ait besoin d'un utilisateur différent. Mieux vaut demander à http://www.serverfault.com si vous rencontrez des problèmes avec celui-ci.

0 votes

@siXor, variez toujours du "impossible" quand il y a des centaines de fournisseurs d'hébergement mutualisé qui offrent exactement ce genre de service. Comme le dit Wrikken, vous pouvez facilement le faire avec suEXEC ou suPHP.

0 votes

Merci pour la réponse, mais je n'arrive pas à faire fonctionner suPHP. J'obtiens une "Internal Server Error" lorsque je me connecte à mon site. J'ai suivi le tutoriel que vous m'avez donné et quelques autres, mais je n'arrive pas à le faire fonctionner. tail -f /var/log/suphp/suphp.log me donne juste : Le fichier "/var/www/mysite/index.php" est accessible en écriture par le groupe. J'ai mis chmod 777 sur mes fichiers pour le moment, juste pour tester si ça allait marcher.

1 votes

La clé est moins droits, pas plus, pour votre propre sécurité suphp veut cela. 0644 ou 0600 sur les fichiers, 0755 ou 0700 sur les répertoires.

1voto

Art Points 1497

Cela fait longtemps que je cherche une réponse à cette question et j'en ai enfin une. La solution est le module apache mpm-itk.

apt-get install apache2-mpm-itk

Et ensuite, ajoutez l'utilisateur et le groupe pour exécuter l'hôte virtuel dans votre fichier d'hôte virtuel :

AssignUserId web_test web

http://www.debianadmin.com/running-vhosts-with-apache2-mpm-itk-on-debian.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X