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?
Antwort
Check out shell_exec()
Wenn Sie etwas heftiger Schlag ausführen können, können Sie whoami
verwenden, oder Sie könnten /proc
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.
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.
Wenn auf Linux/Unix:
<?php
$temp = tmpfile();
print_r(posix_getpwuid(fileowner($temp)));
?>
<?php
echo exec('whoami');
?>
Ich benutze das, aber es druckt nichts. –
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.
- 1. Wie kann ich feststellen, mit welchem Benutzer eine VB.Net-Anwendung ausgeführt wird und wie kann ich sie ändern?
- 2. Wie kann ich feststellen, auf welchem Monitor mein .NET Windows Forms-Programm ausgeführt wird?
- 3. Wie kann ich feststellen, auf welchem Server ein Agent ausgeführt wird - kein geplanter Agent
- 4. Wie kann ich programmgesteuert überprüfen, auf welchem Gerät meine App ausgeführt wird? (Swift und Sprite Kit)
- 5. Wie kann ich in Runtime von einem PowerShell-Skript ermitteln, in welchem Host es ausgeführt wird?
- 6. Wie kann ich herausfinden, auf welchen Geräten/Betriebssystemversionen meine iOS App ausgeführt wird?
- 7. Wie kann ich feststellen, in welchem Modul mein Code ausgeführt wird?
- 8. Ermitteln, welcher Webserver verwendet wird
- 9. Wie kann ich herausfinden, auf welchem Betriebssystem mein Ruby-Programm läuft?
- 10. Wie kann ich feststellen, unter welchem Benutzer Jenkins läuft?
- 11. Benutzer-Authentifizierung auf Resin Webserver
- 12. Kann man herausfinden, in welchem Skript ein Python-Prozess läuft?
- 13. Aus welchem Grund wird der finally-Block zuletzt ausgeführt?
- 14. Wie finde ich heraus, auf welchem Laufwerk ein Java-Programm ausgeführt wird?
- 15. Wie kann ich in Ruby on Rails herausfinden, welcher Klassenmix in welchem Modul?
- 16. Zugriff auf einen Webserver, der von außerhalb der Arbeitsstation in Eclipse ausgeführt wird
- 17. Wie wird EntityFeildQuery für alle Felder eines Knotens ausgeführt, der auf Benutzer verweist (php)
- 18. Gibt es in ColdFusion eine Möglichkeit, festzustellen, auf welchem Server der Code ausgeführt wird?
- 19. In welchem Ordner wird dieses PowerShell-Skript ausgeführt?
- 20. Kann nicht herausfinden, Algorithmus in PHP
- 21. Der IIS-Dienst wird als lokales Systemkonto ausgeführt. Wie kann ich also freigegebene Verzeichnisberechtigungen erteilen?
- 22. Wie kann ich herausfinden, wenn ein Sql-Datenbankfeld geändert wird?
- 23. Wie kann ich herausfinden, ob der Gradle-Daemon läuft?
- 24. Wie wird der Befehl angezeigt, der in einem Skript ausgeführt wird, während es ausgeführt wird?
- 25. Wie kann ich herausfinden, wo sich die Datei httpd.conf befindet?
- 26. Wie kann ich auf der Registerkarte "Chrome-Konsolenquelle" herausfinden, wo ein Skript aufgerufen wird?
- 27. Wie kann ich einen PHP ohne Webserver ausführen?
- 28. Wie finde ich heraus, in welchem Verzeichnis meine Konsolenanwendung mit C# ausgeführt wird?
- 29. Wie kann ich feststellen, in welchem Unterprogramm ich bin?
- 30. Wie kann ich feststellen, auf welchem Gerät ich in Xcode UI Testing aktiv bin?
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