Ich kann keinen Weg finden, das Home-Verzeichnis des Benutzers (z. B. /home/jack; was auch immer ~ in bash Punkte zu) in PHP mit CGI (suPHP). Das Array $ _ENV ist leer und getenv ('HOME') gibt nichts zurück.Benutzerverzeichnis von PHP lesen
Der Grund, warum ich dies tun wollen ist, dass in Abwesenheit von Konfiguration anders sagen: Ich möchte durch meine Anwendung verwendet variable Dateien finden in /home/user/.myappnamehere, da die meisten Linux-Anwendungen zu tun.
Ich habe etwas gebaut, aber es ist nicht das Beste; Während es funktioniert, nimmt er viel über das System (zB das Vorhandensein von/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 mit CGI? Wer wäre der aktuelle Benutzer in diesem Kontext? –
Wegen suPHP (und auch mit suexec und was auch immer andere Möglichkeiten gibt) wird der PHP-Prozess als der Benutzer ausgeführt, der die Skriptdatei (.php) besitzt. –
Ihre Lösung geht auch davon aus, dass der Benutzer das Skript ausführt, wie es die Datei lesen darf, was normalerweise nur root tun sollte ... –