Saya sedang mengerjakan Cara Melayani Aplikasi Django dengan uWSGI dan Nginx di Ubuntu 16.04 . Pada akhir "Buat file Systemd Unit untuk uWSGI" di artikel mereka membahas www-data
pengguna. Apa ini dan mengapa ini penting?
Saya sedang mengerjakan Cara Melayani Aplikasi Django dengan uWSGI dan Nginx di Ubuntu 16.04 . Pada akhir "Buat file Systemd Unit untuk uWSGI" di artikel mereka membahas www-data
pengguna. Apa ini dan mengapa ini penting?
Jawaban:
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 chown
ke 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-data
dalam 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-data
konfigurasi sebagai default.
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
.
www-data
dalam sebagai pemilik juga dapat menjadi risiko keamanan seperti yang disebutkan dalam base-passwd
dokumentasi (lihat jawaban @ muru), karena pemilik biasanya memiliki akses baca / tulis ke semua konten yang melayani web. Anda dapat menghapus akses tulis ke www-data
pemilik, atau menggunakan pemilik lain. www-data
pasti 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.
www-data
adalah 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-data
dapat mengakses. Tidak ada kepentingan lainnya.
Dari base-passwd
dokumentasi ( /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.
base-passwd
dokumen untuk itu
www-data
adalah pengguna (dan juga kelompok) bahwa layanan httpd (apache) yang bertindak dengan pada sistem Anda.