2012-06-18 6 views
10

Wie ermitteln wir, unter welchem ​​Benutzer das PHP-Skript ausgeführt wird, wenn ich das Skript auf dem Server ausführen? Wird es zufällig unter dem gleichen Benutzer wie Apache oder phpmyadmin ausgeführt? Meine Frage vielleicht falsch eingerahmt, aber ich mag wissen, welche Benutzer, so dass ich entsprechende Berechtigung für verschiedene Ordner in/varWie finde ich heraus, welcher Benutzer das aktuelle PHP-Skript ausführt?

+5

Googling 'php bestimmen Benutzer' geben Ihnen die benötigten Informationen –

+0

+1 yfgi .... (http://www.php.net/manual/en/function.get-current-user.php#57624) – Wrikken

+0

Sie müssen einige weitere Informationen bereitstellen, damit wir Ihnen hier helfen können, fürchte ich. – crmpicco

Antwort

20

whoami Execute:

<?php echo exec('whoami'); ?> 
+0

Hmm zweite Person nach der Bearbeitung. Wie es aussieht funktioniert dies http://stackoverflow.com/questions/7771586/how-to-check-what-user-php-is-running-als – jpiasetz

+1

Hehe, bearbeitet es, nur um meinen Downvote entfernen zu können (es ist nach einer gewissen Zeit gesperrt ..) – Wrikken

+0

Danke :). Ich habe mich nicht wirklich über deine beschwert. Du hattest Recht, lol. – jpiasetz

-4

verwenden:

$_SERVER['REMOTE_USER']; 

diese Variable kann oder darf nicht eingestellt werden.

+3

Dies ist nicht was das OP will. Er möchte den * system * user kennen –

7

Wenn Sie posix functions verfügbar (standardmäßig aktiviert), dann können Sie posix_geteuid und posix_getpwuid verwenden Sie den Namen des Benutzers zu bekommen (zumindest in Nicht-Windows-Umgebungen) wie folgt:

$pwu_data = posix_getpwuid(posix_geteuid()); 
$username = $pwu_data['name']; 

Weitere (mehr teuer) Art und Weise eine Shell-Funktion ausführt wie exec verwenden zu laufen whoami es zu tun wäre:

$username = exec('whoami'); 

oder sogar die Backticks (obwohl Sie die Zeilenumbrüche aus) trimmen müssen:

Ich persönlich brauchte nur immer den Benutzernamen des Benutzers, der das Skript für PHP-Skripte ausführt, die in der Shell (in der Befehlszeile) ausgeführt werden. In der Regel werden Skripts, die beim Erstellen der Antwort auf eine Anforderung ausgeführt werden, die der Webserver verarbeitet, als Webserverbenutzer ausgeführt, z. B. www-data, apache usw. In Apache wird der Benutzer, der den Apache ausführt, httpd Prozesse wird mit der User Richtlinie festgelegt. diese

-3

Verwendung:

echo get_current_user(); 

Stellen Sie sicher, die Kommentare zu lesen, weil es wie diese Antwort sieht nicht wirklich tun, was Sie wollen.

+5

Dies ist eigentlich der "Besitzer des aktuellen PHP-Skriptes" laut http://php.net/manual/en/function.get-current-user.php –

0

Verwenden Sie nicht "whoami". Wenn Sie einen Prozess ausführen, ist der Benutzer beim Ausführen eines Skripts nicht unbedingt derselbe wie der effektive Benutzer. Aber auf jeden Fall würde "id" viel nützlichere Informationen liefern. Rufen Sie stattdessen get_current_user() auf. So einfach!

Verwandte Themen