Що таке користувач www-data?


Відповіді:


36

Для безпеки.

Файли не підлягають світовому запису. Вони обмежені власником файлів для запису.

Веб-сервер повинен працювати під певним користувачем. Цей користувач повинен існувати.

Якщо він запускався під коренем, то всі файли повинні бути доступними корінцями, а користувачеві потрібно мати root для доступу до файлів. Оскільки root є власником, компрометований веб-сервер мав би доступ до всієї вашої системи. Вказавши конкретний ідентифікатор, компрометований веб-сервер мав би лише повний доступ до своїх файлів, а не до всього сервера.

Якщо ви вирішите запустити його під іншим ідентифікатором користувача, тоді він повинен бути ефективним власником файлів для отримання належних привілеїв. Особисте право власності на загальносистемні файли на ваш особистий рахунок може бути заплутаним.

Створення конкретного користувача полегшило б розпізнавати файли та послідовно розпізнавати, який ідентифікатор chownдо нових файлів і папок, доданих на сайт.

Userid або ім'я власника не має значення. Що б не було обрано чи вирішено, потрібно буде налаштувати у файлах конфігурації веб-сервера.

За замовчуванням конфігурація власника знаходиться www-dataв конфігурації Ubuntu Apache2. Оскільки це конфігурація за замовчуванням, ви зручно знаєте право власності на свої веб-файли. Якщо ви її зміните, вам доведеться змінити файли на вашому сайті, щоб вони відповідали.

Я не запускаю Nginx , але оскільки він знаходиться у сховищі Ubuntu, я впевнений, що він перевірений з www-dataконфігурацією за замовчуванням.


2
Це чудово, дякую за спробу пояснити глобальну картину.
user61629

1
btw, що таке "конкретний ідентифікатор"?
користувач61629

1
Це www-data. Ось чому, як і у вашому запитанні, вони просили вас створити userID та groupID, якщо його не існує. Установка Apache2 автоматично створює користувача. Я не впевнений про Nqinx . Ви можете перевірити , щоб побачити , якщо вона існує з: iid -u www-data&&id -g www-data. Якщо він існує, він покаже вам ідентифікаційний номер користувача та групи. За замовчуванням на Ubuntu номери користувачів та групи 33.
ЛД Джеймс

Подання www-dataв якості власника також може бути ризиком для безпеки, як зазначено в base-passwdдокументації (див. Відповідь @ muru), оскільки власники зазвичай мають доступ для читання / запису до всього вмісту, що розміщується на веб-сайті. Ви можете видалити доступ для запису до www-dataвласника або скористатися іншим власником. www-dataбезумовно, потрібен доступ для читання до всіх даних, які надаються, але якщо ви дасте лише дозволи, необхідні для кожного файлу та каталогу, а не більше, ви будете більш захищені.
Ювал

18

www-data- це користувач, який веб-сервери на Ubuntu (наприклад, Apache, nginx) використовують за умовчанням для звичайної роботи. Процес веб-сервера може отримати доступ до будь-якого файлу, який www-dataможе отримати доступ. Це не має іншого значення.

З base-passwdдокументації ( /usr/share/doc/base-passwd/users-and-groups.txt.gz):

Деякі веб-сервери працюють як www-data. Цей веб-контент не повинен належати цьому користувачеві, або компрометований веб-сервер зможе переписати веб-сайт. Дані, виписані веб-серверами, будуть належати www-data.


3
крім дискусії про те, чому ви не повинні надавати доступ до даних www через файли webroot;)
kitingChris

1
Щоб зробити це більш конкретним для мене, чи можу я запитати, до яких послуг потрібен веб-сервер під час обслуговування сторінки?
користувач61629

2
@ user61629 послуги? Сам веб-сервер - це послуга за звичайними визначеннями послуги.
муру

1
@kitingChris так, я просто викопав base-passwdдокументи для цього
муру

1
www-data- це користувач (а також група), з яким у вашій системі діє служба httpd (apache) .
kitingChris
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.