Frage Herausfinden, unter welchem ​​Benutzer Apache läuft?


Ich möchte ein Datei-Upload-Verzeichnis auf meinem Server sichern, wie hier schön beschrieben, aber ich habe ein Problem, bevor ich diese Anweisungen befolgen kann. Ich weiß nicht, unter welchem ​​Benutzer Apache läuft.

Ich habe einen Vorschlag gefunden, dass Sie in httpd.conf schauen können und es wird eine "Benutzer" -Zeile geben, aber es gibt keine solche Zeile in meiner httpd.conf-Datei, also denke ich, dass Apache als Standardbenutzer läuft. Ich kann aber nicht herausfinden, was das ist.

Also, meine Frage ist (sind):

  • Wie finde ich den Standard heraus? Benutzer ist
  • Muss ich den Standardbenutzer ändern?
  • wenn die Antwort ja ist und ich die ändern Standardbenutzer durch Bearbeiten von httpd.conf, ist es wahrscheinlich etwas zu vermasseln?

Vielen Dank!


191
2018-03-24 16:22


Ursprung


Warum wurde diese Frage abgelehnt? Ja, es wurde aktualisiert, da es an anderer Stelle beantwortet wurde, aber ich sehe keine Notwendigkeit, die Stimme abzugeben? Es ist eine vollkommen gute Frage? Vielleicht würde unser Down Voter darauf achten, einen konstruktiven Kommentar dazu hinzuzufügen? - Bryan
Sie könnten dieses Update als Antwort posten und es akzeptieren, da Sie sich gerade in der Warteschlange "Unbeantwortet" befinden. - Fahad Sadah
+1 für die Abmeldung auf StackOverflow; Einige Benutzer scheinen darauf zu bestehen, neue Benutzer zu entfernen - wruckie
Verknüpfte Frage existiert nicht mehr - pal4life
Die nächste Frage: Was tun, weil einer von zwei Nutzern, wie root und www-data. Wie gibst du der "richtigen" Apache-Gruppe die Erlaubnis, auf etwas zuzugreifen? - jww


Antworten:


ps aux | egrep '(apache|httpd)' In der Regel wird angezeigt, wie Apache läuft.

Normalerweise müssen Sie den Standardbenutzer nicht ändern, "nobody" oder "apache" sind normalerweise gute Benutzer. Solange es nicht "root" ist;)

edit: genauerer Befehl zum Abfangen von Apache-Binärdateien


194
2018-04-19 23:19



Yup, oder es wird www-Daten auf Ubuntu sein. - gravyface
... und Debian. :) - cubuspl42
Dieser Befehl zeigt mir eine Liste von Dingen, die meisten davon apache aber 1 aus root auch. - User
Ich habe 3 Prozesse (/usr/sbin/apache2 -k start), der Benutzer ist root und die anderen zwei www-data. Sollte ich besorgt sein? - zundi
@zundi, der Dienst startet als root, um Dinge wie reservierte Ports (z. B. 80 und 443) zu binden. Dann startet es, wie auch immer die konfigurierte Anzahl von Prozessen ist, um die Arbeit des Web-Servers und andere Aufgaben als definierte Benutzer auszuführen. Auf diese Weise werden Anfragen von nicht privilegierten Prozessen bearbeitet. Sie werden feststellen, dass die Eltern-ID (PPID) für alle anderen Prozesse gleich ist. Diese Idee mit der PID für diesen einen Prozess läuft als root. - Kevin


Sie können den folgenden Befehl versuchen:

ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}'

31
2018-04-23 13:53



Ich liebe diese Antwort, besser (allgemeiner) als die am meisten angenommene Antwort. Vielen Dank - pgr


Laut ubuntuforum.de, auf Ubuntu ist der Standardbenutzer für apache2 www-data.

Unter Ubuntu 13.10 Saucy ist es wahr.


Von Lars Noodén auf dem obigen Forum.

Um sicher zu sein, auf was [der Benutzer] wirklich eingestellt ist, überprüfen Sie die tatsächlichen Konfigurationsdateien.   Die Regenschirmdatei, apache2.conf wird etwas wie das Folgende haben,

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Dies ist ein Verweis auf Umgebungsvariablen in /etc/apache2/envvars.    mod_suexec erlaubt auch, dass Skripte noch als ein anderer Benutzer und eine andere Gruppe ausgeführt werden.

Um virtuelle Hosts zu finden, die möglicherweise alternative Benutzer, Gruppen oder beides verwenden, überprüfen Sie die Konfigurationen.

$ egrep "^User|^Group|^SuexecUserGroup" /etc/apache2/apache2.conf /etc/apache2/sites-available/*.conf

Für Red Hat basierte Distributionen wäre es (normalerweise ist der Benutzer, der httpd ausführt apache):

$ egrep "^User|^Group|^SuexecUserGroup" /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf

9
2018-06-10 13:14





Ich weiß, dass dies ein alter Post ist, aber es wird immer noch als unbeantwortet aufgeführt, also werde ich einen Vorschlag machen. Wenn Sie nicht herausfinden können, unter welchem ​​Benutzer oder welcher Gruppe Apache läuft, versuchen Sie vielleicht, die Datei httpd.conf zu öffnen. Dort sollte ein Eintrag für "Benutzer" und "Gruppe" stehen. Sie können nicht nur sehen, auf welchem ​​Benutzer Apache ausgeführt werden soll, sondern Sie können es auch ändern, wenn Sie dies für nötig halten.


8
2018-04-23 07:53





Sie können eine Codezeile in Ihr PHP-Skript einfügen:

echo exec('whoami');

7
2017-09-26 02:08



Achten Sie darauf, hier zeigt der Benutzer, unter dem PHP läuft, nicht der Apache-Benutzer. Wenn Sie mod_php verwenden, sind diese identisch, aber wenn Sie, wie jetzt üblich, etwas anderes verwenden (wie php_fpm), können sie leicht anders sein. - benz001


Benutzen apachectl -S, die etwas Apache-Benutzer und -Gruppe zeigt, etwa so:

User: name="_www" id=70
Group: name="_www" id=70

7
2017-09-11 00:28



Danke, auf meinem Mac sehe ich, dass Apache als '_www' läuft. - Mercury


Dieser Code wird - mehr oder weniger - alphabetisch alle Nicht-Root-Benutzer auflisten, die Prozesse ausführen, die Prozesse enthalten apache (oder dessen Name enthält apache)

ps aux | grep -v root | grep apache | cut -d\  -f1 | sort | uniq

5
2018-03-06 12:28



Die Liste wird wahrscheinlich Benutzer enthalten, die Prozesse wie "grep apache" ausführen, wie zB Ihr gutes Selbst. - mwfearnley


  • Um den Benutzer zu finden, können Sie einfach verwenden ps aux | grep apache während es läuft.
  • Sie müssen das nicht, aber wenn Apache als root läuft, gibt es Sicherheitsprobleme.
  • Drittens ändert das Ändern des Apache-Benutzers seine Zugriffsrechte auf einige Verzeichnisse. Sie müssen sicherstellen, dass / var / www (oder wo immer Sie Ihre Websites haben) für den neuen Benutzer und die Gruppe zugänglich ist.
  • Auf den Systemen, die ich angeschaut habe, wurde Apache immer mit apache: apache (oder ähnlich) als user und group installiert, also sollte es wahrscheinlich schon so eingestellt sein.

Hinweis: Dies ist die gleiche Antwort, die ich gab Paketüberfluss.


4
2017-08-01 14:49





Oder Sie können die Apache-Konfigurationsdatei überprüfen und nach dem Besitzer und der Gruppe suchen.


2
2018-04-23 15:33





Wie von Noyo vorgeschlagen Hier:

APACHE_USER=$(ps axho user,comm|grep -E "httpd|apache"|uniq|grep -v "root"|awk 'END {if ($1) print $1}')

Und dann:

echo $APACHE_USER

2
2018-01-03 11:36



Holen Sie den Benutzer (Ubuntu-Befehlszeile): echo $ APACHE_USER - Jadeye