Je ne trouve pas le moyen d'obtenir le répertoire personnel de l'utilisateur (par exemple /home/jack, quoi que ce soit ~ en points bas) en PHP utilisant CGI (suPHP). Le tableau $ _ENV est vide et getenv ('HOME') ne renvoie rien.Lire le répertoire personnel de l'utilisateur à partir de PHP
La raison pour laquelle je veux faire ceci est qu'en l'absence de configuration indiquant autrement, je veux trouver des fichiers variables utilisés par mon application dans /home/user/monappelmethode, comme le font la plupart des applications Linux.
J'ai construit quelque chose, mais ce n'est pas le meilleur; Bien que cela fonctionne, il suppose beaucoup de choses sur le système (par exemple, la présence de/etc/passwd)
$usr = get_current_user();
$passwd = file('/etc/passwd');
$var = false;
foreach ($passwd as $line) {
if (strstr($line, $usr) !== false) {
$parts = explode(':', $line);
$var = realpath($parts[5].'/.report');
break;
}
}
PHP utilisant CGI? Qui serait l'utilisateur actuel dans ce contexte? –
En raison de suPHP (et aussi de suexec et de tout autre moyen), le processus PHP est exécuté en tant qu'utilisateur propriétaire du fichier de script (.php). –
Votre solution suppose également que l'utilisateur que le script s'exécute est autorisé à lire le fichier, ce que normalement seul root devrait être capable de faire ... –