Pracuję nad tym, jak serwować aplikacje Django z uWSGI i Nginx na Ubuntu 16.04 . Na końcu „Utwórz uporządkowany plik jednostki dla uWSGI” w artykule omawiają www-data
użytkownika. Co to jest i dlaczego jest ważne?
Pracuję nad tym, jak serwować aplikacje Django z uWSGI i Nginx na Ubuntu 16.04 . Na końcu „Utwórz uporządkowany plik jednostki dla uWSGI” w artykule omawiają www-data
użytkownika. Co to jest i dlaczego jest ważne?
Odpowiedzi:
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 chown
do 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-data
w 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-data
konfiguracją jako domyślną.
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
.
www-data
jako właściciel może również stanowić zagrożenie bezpieczeństwa, jak wspomniano w base-passwd
dokumentacji (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-data
właściciela lub użyć innego właściciela. www-data
zdecydowanie 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.
www-data
to 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-data
ma dostęp. To nie ma innego znaczenia.
Z base-passwd
dokumentacji ( /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.
base-passwd
dokumenty w tym celu
www-data
jest użytkownikiem (a także grupa), że usługa httpd (apache) jest działającą w systemie.