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-datapengguna. 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-datapengguna. 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 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.
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-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.
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.
base-passwddokumen untuk itu
www-dataadalah pengguna (dan juga kelompok) bahwa layanan httpd (apache) yang bertindak dengan pada sistem Anda.