Co to jest użytkownik danych www?

Odpowiedzi:

36

Dla ochrony.

Pliki nie są zapisywane na całym świecie. Są one ograniczone do właściciela plików do zapisu.

Serwer WWW musi być uruchomiony pod określonym użytkownikiem. Ten użytkownik musi istnieć.

Gdyby był uruchamiany w systemie root, wszystkie pliki musiałyby być dostępne dla roota, a użytkownik musiałby być rootem, aby uzyskać dostęp do plików. Ponieważ root jest właścicielem, przejęty serwer WWW miałby dostęp do całego systemu. Określając konkretny identyfikator, zaatakowany serwer WWW będzie miał pełny dostęp tylko do swoich plików, a nie do całego serwera.

Jeśli zdecydujesz się uruchomić go z innym identyfikatorem użytkownika, ten użytkownik będzie musiał być faktycznym właścicielem plików, aby uzyskać odpowiednie uprawnienia. Może być mylące posiadanie osobistej własności plików systemowych do twojego konta osobistego.

Utworzenie konkretnego użytkownika ułatwiłoby rozpoznawanie plików i spójne rozpoznawanie identyfikatora chowndo nowych plików i folderów dodanych do witryny.

ID użytkownika lub nazwa właściciela nie ma znaczenia. Cokolwiek wybierzesz lub zdecydujesz, będzie musiało zostać skonfigurowane w plikach konfiguracyjnych serwera WWW.

Domyślnie konfiguracja właściciela znajduje się www-dataw konfiguracji Ubuntu dla Apache2. Ponieważ jest to konfiguracja domyślna, wygodnie znasz własność wymaganą do plików internetowych. Jeśli to zmienisz, musisz zmienić pliki w swojej witrynie, aby pasowały.

Nie uruchamiam Nginx , ale ponieważ jest w repozytorium Ubuntu, jestem pewien, że został przetestowany z www-datakonfiguracją jako domyślną.

LD James
źródło
2
To świetnie, dziękuję za próbę wyjaśnienia globalnego obrazu.
user61629,
1
btw, co to jest „konkretny identyfikator”?
user61629,
1
Jest www-data. Właśnie dlatego, jak w twoim pytaniu, poprosili cię o utworzenie ID użytkownika i ID grupy, jeśli nie istnieje. Instalacja Apache2 automatycznie tworzy użytkownika. Nie jestem pewien co do Nqinx . Można sprawdzić, czy istnieje z: iid -u www-data&&id -g www-data. Jeśli istnieje, pokaże ci numer identyfikacyjny użytkownika i grupy. Domyślnie w systemie Ubuntu są to numery użytkowników i grup 33.
LD James
Podanie się www-datajako właściciel może również stanowić zagrożenie bezpieczeństwa, jak wspomniano w base-passwddokumentacji (patrz odpowiedź @ muru), ponieważ właściciele zazwyczaj mają dostęp do odczytu / zapisu do wszystkich treści udostępnianych w sieci. Możesz usunąć dostęp do zapisu dla www-datawłaściciela lub użyć innego właściciela. www-datazdecydowanie potrzebuje dostępu do odczytu do wszystkich danych, które mają być obsługiwane, ale jeśli podasz tylko uprawnienia wymagane dla każdego pliku i katalogu, a nie więcej, będziesz bardziej bezpieczny.
Yuval
18

www-datato użytkownik, którego serwery WWW w systemie Ubuntu (na przykład Apache, nginx) domyślnie używają do normalnej pracy. Proces serwera WWW może uzyskać dostęp do dowolnego pliku, który www-datama dostęp. To nie ma innego znaczenia.

Z base-passwddokumentacji ( /usr/share/doc/base-passwd/users-and-groups.txt.gz):

Niektóre serwery WWW działają jako dane www. Ten użytkownik nie powinien należeć do treści internetowych, ponieważ zaatakowany serwer sieciowy mógłby przepisać witrynę. Dane zapisane przez serwery WWW będą własnością www-data.

muru
źródło
3
poza dyskusją na temat tego, dlaczego nie należy udostępniać danych www za pośrednictwem plików webroot;)
kitingChris
1
Żeby sprecyzować to dla mnie konkretnie, czy mogę zapytać, do jakich usług serwer WWW musi mieć dostęp podczas wyświetlania strony?
user61629,
2
Usługi @ user61629? Serwer WWW sam w sobie jest usługą, zgodnie ze zwykłymi definicjami usługi.
muru
1
@kitingChris tak, właśnie kopałem base-passwddokumenty w tym celu
muru
1
www-datajest użytkownikiem (a także grupa), że usługa httpd (apache) jest działającą w systemie.
kitingChris