Apa itu pengguna data-www?

Jawaban:

36

Untuk keamanan.

File-file tersebut tidak dapat ditulisi dunia. Mereka dibatasi untuk pemilik file untuk menulis.

Server web harus dijalankan di bawah pengguna tertentu. Pengguna itu harus ada.

Jika dijalankan di bawah root, maka semua file harus dapat diakses oleh root dan pengguna harus menjadi root untuk mengakses file. Dengan root sebagai pemilik, server web yang dikompromikan akan memiliki akses ke seluruh sistem Anda. Dengan menentukan ID tertentu, server web yang dikompromikan hanya akan memiliki akses penuh ke file-nya dan bukan seluruh server.

Jika Anda memutuskan untuk menjalankannya di bawah ID pengguna yang berbeda, maka pengguna tersebut harus menjadi pemilik efektif file untuk hak istimewa yang tepat. Mungkin membingungkan untuk memiliki kepemilikan pribadi atas file-file sistem ke akun pribadi Anda.

Membuat pengguna tertentu akan membuatnya lebih mudah untuk mengenali file dan konsisten untuk mengenali ID mana yang chownke file dan folder baru ditambahkan ke situs.

The Userid atau Nama pemilik tidak masalah. Apa pun yang dipilih atau diputuskan harus dikonfigurasikan dalam file konfigurasi server web.

Secara default konfigurasi pemilik adalah www-datadalam konfigurasi Ubuntu Apache2. Karena itu adalah konfigurasi default, Anda dengan mudah mengetahui kepemilikan yang diperlukan untuk file web Anda. Jika Anda mengubahnya, Anda harus mengubah file di situs Anda agar sesuai.

Saya tidak menjalankan Nginx , tapi karena itu ada di repositori Ubuntu, saya yakin itu sudah diuji dengan www-datakonfigurasi sebagai default.

LD James
sumber
2
Itu bagus, terima kasih telah mencoba menjelaskan gambaran global juga.
user61629
1
btw, apa itu 'id khusus'?
user61629
1
Ini www-data. Itulah sebabnya seperti dalam pertanyaan Anda, mereka meminta Anda untuk membuat userID dan groupID jika tidak ada. Instalasi Apache2 secara otomatis membuat pengguna. Saya tidak yakin tentang Nqinx . Anda dapat memeriksa untuk melihat apakah itu ada dengan: iid -u www-data&&id -g www-data. Jika ada, itu akan menampilkan nomor id pengguna dan grup. Secara default di Ubuntu nomor pengguna dan grup adalah 33.
LD James
Dimasukkan ke www-datadalam sebagai pemilik juga dapat menjadi risiko keamanan seperti yang disebutkan dalam base-passwddokumentasi (lihat jawaban @ muru), karena pemilik biasanya memiliki akses baca / tulis ke semua konten yang melayani web. Anda dapat menghapus akses tulis ke www-datapemilik, atau menggunakan pemilik lain. www-datapasti membutuhkan akses baca ke semua data untuk dilayani, tetapi jika Anda hanya memberikan izin yang diperlukan untuk setiap file dan direktori, dan tidak lebih, Anda akan lebih aman.
Yuval
18

www-dataadalah pengguna yang digunakan server web pada Ubuntu (Apache, nginx, misalnya) secara default untuk operasi normal. Proses server web dapat mengakses file apa pun yang www-datadapat mengakses. Tidak ada kepentingan lainnya.

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

Beberapa server web dijalankan sebagai www-data. Konten web tidak boleh dimiliki oleh pengguna ini, atau server web yang dikompromikan akan dapat menulis ulang situs web. Data yang ditulis oleh server web akan dimiliki oleh www-data.

muru
sumber
3
kecuali diskusi tentang mengapa Anda tidak harus memberikan akses data-www melalui file webroot;)
kitingChris
1
Hanya untuk membuat ini lebih konkret bagi saya, bisakah saya bertanya layanan apa yang perlu diakses server web saat melayani halaman?
user61629
2
@ layanan pengguna61629? Server web itu sendiri adalah layanan, dengan definisi layanan yang biasa.
muru
1
@ kitingChris ya, saya baru saja menggali base-passwddokumen untuk itu
muru
1
www-dataadalah pengguna (dan juga kelompok) bahwa layanan httpd (apache) yang bertindak dengan pada sistem Anda.
kitingChris