Chcę zabezpieczyć katalog przesyłania plików na moim serwerze, jak to pięknie tu opisano, ale mam jeden problem, zanim będę mógł wykonać te instrukcje. Nie wiem, jak działa użytkownik Apache.
Znalazłem sugestię, że możesz zajrzeć do httpd.conf i pojawi się wiersz „User”, ale w moim pliku httpd.conf nie ma takiego wiersza, więc myślę, że Apache działa jako domyślny użytkownik. Ale nie mogę się dowiedzieć, co to jest.
Moje pytanie brzmi (są):
- jak mogę dowiedzieć się, jaki jest domyślny użytkownik
- czy muszę zmienić domyślnego użytkownika?
- jeśli odpowiedź brzmi „tak” i zmieniam domyślnego użytkownika, edytując httpd.conf, czy to może coś zepsuć?
Dzięki!
apache-2.2
eikonomega
źródło
źródło
root
iwww-data
. W jaki sposób dajesz „właściwej” grupie Apache pozwolenie na dostęp do czegoś?Odpowiedzi:
ps aux | egrep '(apache|httpd)'
zwykle pokazuje, jak działa apache.Zwykle nie trzeba zmieniać domyślnego użytkownika, „nikt” lub „apache” są zwykle świetnymi użytkownikami. O ile nie jest to „root”;)
edit: bardziej dokładne polecenie do przechwytywania plików binarnych apache
źródło
apache
1root
./usr/sbin/apache2 -k start
), jeden użytkownik jest,root
a pozostałe dwawww-data
. Czy powinienem się martwić?Możesz spróbować wykonać następujące polecenie:
źródło
Użyj
apachectl -S
, który pokaże coś użytkownika i grupę Apache, coś takiego:źródło
Według ubuntuforums.org , na Ubuntu domyślnym użytkownikiem dla apache2 jest
www-data
.Uznane za prawdziwe w Ubuntu 13.10 Saucy.
Od Larsa Noodéna na powyższym forum.
W przypadku dystrybucji opartych na systemie Red Hat byłoby to (zwykle jego użytkownik korzystający z httpd
apache
):źródło
Wiem, że jest to stary post, ale nadal jest wymieniony jako bez odpowiedzi, więc zasugeruję. Jeśli nie możesz znaleźć, który użytkownik lub grupa działa jako serwer Apache, być może spróbuj otworzyć plik httpd.conf. Powinien być tam wpis „Użytkownik” i „Grupa”. Nie tylko widzisz, który użytkownik Apache ma być uruchomiony, ale możesz go zmienić, jeśli czujesz taką potrzebę.
źródło
Możesz dołączyć wiersz kodu do skryptu PHP:
źródło
Ten kod będzie - mniej więcej - alfabetycznie wyświetlał listę wszystkich użytkowników innych niż root uruchamiających procesy zawierające
apache
(lub których nazwa zawieraapache
)źródło
ps aux | grep apache
podczas jego działania.UWAGA: to ta sama odpowiedź, którą podałem w Stackoverflow .
źródło
Lub możesz sprawdzić plik konfiguracyjny Apache i poszukać właściciela i grupy.
źródło
Jak sugeruje Noyo tutaj :
I wtedy:
źródło
Alternatywnym podejściem, przynajmniej w przypadku dystrybucji opartych na Debianie / Ubuntu, jest użycie tej samej metody, którą robi Apache, aby ustawić swojego użytkownika i grupę: source
/etc/apache2/envvars
!Jeśli chcesz się podobać, możesz ukryć błędy, jeśli plik nie zostanie znaleziony, i podaj wartość domyślną:
źródło
Odkryłem, że większość oferowanych tutaj rozwiązań jest specyficzna dla systemu lub konfiguracji (w szczególności większość rozwiązań w ogóle nie działa w systemie MacOS), a niektóre polegają na tym, że użytkownik wie, gdzie są pliki konfiguracyjne Apache. .
Więc trochę oszukuję i pozwalam Apache'owi powiedzieć mi, co jest co.
Proste polecenie
apachectl -S
powie ci, co musisz wiedzieć o działającej instancji Apache, a jej wyniki można dość łatwo przeanalizować. Oto moje rozwiązanie, którego używam na początku kilkubash
skryptów, aby określić różne rzeczy, których mogę potrzebować w danym momencie ...Wartości tych można następnie użyć jako takich:
źródło
Znalazłem to polecenie w dokumentach CakePHP .
Teraz
HTTPDUSER
przechowuje nazwę użytkownika, który obsługuje serwer,echo $HTTPDUSER
w moim przypadku dane wyjściowewww-data
- przy użyciu rlerdorf / php7dev .źródło
Użyj lsof i przekaż, że apache portu nasłuchuje jako argument. Zobacz kolumnę USER dla appache użytkownika działa jako.
źródło