2009-05-05 9 views
5

Ich schreibe eine einfache Webanwendung in PHP, die Schreibzugriff auf ein Verzeichnis auf dem Server haben muss, wenn das Verzeichnis nicht beschreibbar ist. Ich möchte eine Fehlermeldung anzeigen, die den Besitzer des Verzeichnisses auf den Benutzer setzt Webserver läuft als (zB www-data, nobody) aber da die meisten Leute das nicht wissen, wäre es nett ihnen sagen zu können, wem sie das Verzeichnis schicken sollen. Ist es möglich, das von PHP zu finden?Kann ich herausfinden, auf welchem ​​Benutzer der Webserver wie in PHP ausgeführt wird?

+0

Dies ist eine sehr ähnliche Frage zu http://stackoverflow.com/questions/805907/get-apache-linux-user-from-php. Vielleicht finden Sie Ihre Antwort auch dort. – zombat

Antwort

0

Wenn Sie etwas heftiger Schlag ausführen können, können Sie whoami verwenden, oder Sie könnten /proc

3

Die schnelle und unsaubere Trick I verwenden in der Lage sein, herumzustochern, eine Datei zu schreiben zu /tmp/. Es sollte mit dem Benutzer und der Gruppe erstellt werden, die vom PHP-Prozess verwendet werden.

0

Diese Fehlermeldung fällt in einer Windows-Server-Umgebung auseinander. "Bitte stellen Sie sicher, dass der Webserver Schreibzugriff auf das Verzeichnis hat" ist wahrscheinlich eine bessere Fehlermeldung.

2

Wenn auf Linux/Unix:

<?php 
$temp = tmpfile(); 
print_r(posix_getpwuid(fileowner($temp))); 
?> 
18
<?php 
    echo exec('whoami'); 
?> 
+1

Ich benutze das, aber es druckt nichts. –

3

Auf Unix-Plattformen diese Lösung könnte auf einmal mit abgesichertem Modus arbeiten, vorausgesetzt, dass die Posix-Erweiterung installiert ist oder in kompilierter

$user = posix_getpwuid(posix_geteuid()); 
echo $user['name']; 
.

Dokumente sind here.

Verwandte Themen