2010-05-01 16 views
2

J'ai un script PHP sous Linux dans lequel le bit collant est défini, il est donc exécuté en tant que propriétaire du fichier. Comment puis-je obtenir l'identifiant de l'utilisateur du processus d'appel, à des fins d'autorisation?Obtenir l'ID de l'utilisateur appelant dans le script PHP setuid

Contexte: J'ai deux applications sur un serveur, et je veux que l'un demande des informations à l'autre. Pour cette raison, l'autre offre un script avec setuid, mais je veux m'assurer qu'il ne peut être appelé que par celui-là.

+0

Comment appelles-tu PHP? –

+0

exec ('php filetorun.php') ou quelque chose de semblable –

+2

Est-ce que l'utilisation de quelque chose comme sudo au lieu de définir le bit collant serait une option? http://en.wikipedia.org/wiki/Sudo – VolkerK

Répondre

1

Vous pouvez utiliser l'une des fonctions posix pour mettre la main sur le processus parent, par exemple: http://www.php.net/manual/en/function.posix-getppid.php

De cela, vous pouvez jeter un regard dans/proc/processId/l'espoir de trouver ce que vous cherchez.

Je ne suis pas sur une machine Linux pour le tester, mais cela semble être possible.