Vraag Om erachter te komen welke gebruiker Apache wordt uitgevoerd?


Ik wil een bestandsuploaddirectory op mijn server beveiligen zoals hier mooi beschreven, maar ik heb één probleem voordat ik deze instructies kan volgen. Ik weet niet wat voor gebruiker Apache wordt uitgevoerd.

Ik heb een suggestie gevonden dat je kunt kijken in httpd.conf en er zal een "Gebruiker" -regel zijn, maar er is geen dergelijke regel in mijn httpd.conf-bestand, dus ik vermoed dat Apache wordt uitgevoerd als de standaardgebruiker. Ik kan er echter niet achter komen wat dat is.

Dus mijn vraag is (zijn):

  • hoe weet ik wat de standaard is gebruiker is
  • moet ik de standaardgebruiker wijzigen
  • als het antwoord ja is en ik de standaard gebruiker door httpd.conf te bewerken, is het waarschijnlijk dat het iets verprutst?

Bedankt!


191
2018-03-24 16:22


oorsprong


waarom is deze kwestie afgezwakt? Ja, het is bijgewerkt omdat het elders is beantwoord, maar ik zie geen noodzaak om te gaan stemmen? Het is een prima vraag? Misschien wil onze achterlijke kiezer hieraan een constructieve opmerking toevoegen? - Bryan
U kunt die update als een antwoord plaatsen en deze accepteren, omdat u zich momenteel in de wachtrij Onbeantwoord bevindt. - Fahad Sadah
+1 om te worden verteld op StackOverflow; sommige gebruikers lijken vasthoudend aan het weglopen van nieuwe gebruikers - wruckie
Gelinkte vraag bestaat niet meer - pal4life
De volgende vraag: wat te doen omdat het een van de twee gebruikers is, zoals root en www-data. Hoe geef je de "juiste" Apache-groep toestemming om iets te openen? - jww


antwoorden:


ps aux | egrep '(apache|httpd)' meestal zal laten zien wat apache draait als.

Meestal hoeft u de standaard gebruiker niet te wijzigen, "nobody" of "apache" zijn meestal prima gebruikers. Zolang het niet "root" is;)

edit: meer accurate opdracht voor het vangen van apache binaries ook


194
2018-04-19 23:19



Yup, of het zijn www-gegevens op Ubuntu. - gravyface
... en Debian. :) - cubuspl42
Die opdracht toont me een lijst met dingen, waarvan de meeste uit apache maar 1 van root te. - User
Ik heb 3 processen (/usr/sbin/apache2 -k start), iemands gebruiker is root en de andere twee www-data. Moet ik me zorgen maken? - zundi
@zundi, de service start als root om dingen te doen zoals binden aan gereserveerde poorten (bijvoorbeeld 80 en 443). Vervolgens start het ongeacht het geconfigureerde aantal processen, om de webserver te laten werken en eventuele andere taken, zoals de gedefinieerde gebruikers. Op die manier worden verzoeken afgehandeld door niet-geprivilegieerde processen. U zult merken dat de parent-ID (PPID) hetzelfde is voor alle andere processen. Dat idee is de PID voor dat ene proces dat als root draait. - Kevin


U kunt de volgende opdracht proberen:

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

31
2018-04-23 13:53



Ik hou van dit antwoord, beter (meer generiek) dan het meest opbeurende antwoord. Bedankt - pgr


Volgens de ubuntuforums.org, op Ubuntu is de standaard gebruiker voor apache2 www-data.

Wordt gezien als waar op Ubuntu 13.10 Saucy.


Van Lars Noodén op het bovenstaande forum.

Om zeker te weten wat [de gebruiker] echt is ingesteld, controleert u de feitelijke configuratiebestanden.   Het paraplubestand, apache2.conf zal iets hebben als het volgende,

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Dat is een verwijzing naar ingestelde omgevingsvariabelen /etc/apache2/envvars.    mod_suexec laat ook scripts toe om alsnog een andere gebruiker en groep uit te voeren.

Als u virtuele hosts wilt zoeken die alternatieve gebruikers, groepen of beide kunnen gebruiken, controleert u de configuraties.

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

Voor op Red Hat gebaseerde distributies zou dit zijn (meestal is de gebruiker die httpd uitvoert) apache):

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

9
2018-06-10 13:14





Ik weet dat dit een oud bericht is, maar het staat nog steeds op de lijst als onbeantwoord, dus ik zal een suggestie doen. Als je niet kunt vinden naar welke gebruiker of groep Apache het gaat, probeer dan misschien het httpd.conf-bestand te openen. Er zou een invoer moeten zijn voor "Gebruiker" en "Groep". U kunt niet alleen zien welke gebruiker Apache zou moeten uitvoeren, maar u kunt deze ook wijzigen als u daar behoefte aan heeft.


8
2018-04-23 07:53





U kunt een regel code opnemen in uw PHP-script:

echo exec('whoami');

7
2017-09-26 02:08



Kijk hier, dit toont de gebruiker aan waar PHP onder draait, niet de Apache-gebruiker. Als je mod_php gebruikt, zijn deze hetzelfde, maar als, zoals nu heel gebruikelijk, je iets anders gebruikt (zoals php_fpm), kunnen ze gemakkelijk anders zijn. - benz001


Gebruik apachectl -S, wat iets Apache gebruiker en groep zal laten zien, iets als dit:

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

7
2017-09-11 00:28



Bedankt, op mijn Mac zie ik dat apache wordt uitgevoerd als '_www'. - Mercury


Deze code zal - min of meer - een alfabetische lijst geven van alle niet-rootgebruikers die processen uitvoeren met apache (of wiens naam bevat apache)

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

5
2018-03-06 12:28



De lijst bevat waarschijnlijk gebruikers die processen uitvoeren zoals 'grep apache', zoals je fijne zelf. - mwfearnley