Pengaturan pengguna
Jadi mari kita mulai dengan menambahkan pengguna utama ke grup pengguna Apache:
sudo usermod -a -G www-data demo
Itu menambahkan 'demo' pengguna ke grup 'www-data'. Pastikan Anda menggunakan opsi -a dan -G dengan perintah usermod yang ditunjukkan di atas.
Anda harus keluar dan masuk kembali untuk mengaktifkan perubahan grup.
Periksa grup sekarang:
groups
...
# demo www-data
Jadi sekarang saya adalah anggota dari dua grup: Grup saya sendiri (demo) dan grup Apache (www-data).
Pengaturan folder
Sekarang kita perlu memastikan folder public_html dimiliki oleh pengguna utama (demo) dan merupakan bagian dari grup Apache (www-data).
Mari kita atur:
sudo chgrp -R www-data /home/demo/public_html
Saat kita berbicara tentang izin, saya akan menambahkan catatan singkat mengenai perintah sudo: Merupakan kebiasaan yang baik untuk menggunakan jalur absolut (/ home / demo / public_html) seperti yang ditunjukkan di atas daripada jalur relatif (~ / public_html). Ini memastikan sudo digunakan di lokasi yang benar.
Jika Anda memiliki folder public_html dengan symlink di tempatnya, maka berhati-hatilah dengan perintah itu karena akan mengikuti symlink. Dalam kasus folder public_html yang berfungsi, ubah setiap folder secara manual.
Setgid
Bagus sejauh ini, tapi ingat perintah yang baru saja kita berikan hanya memengaruhi folder yang ada. Bagaimana dengan sesuatu yang baru?
Kami dapat mengatur kepemilikan sehingga apa pun yang baru juga ada di grup 'www-data'.
Perintah pertama akan mengubah izin untuk direktori public_html agar menyertakan bit "setgid":
sudo chmod 2750 /home/demo/public_html
Itu akan memastikan bahwa setiap file baru diberikan grup 'www-data'. Jika Anda memiliki subdirektori, Anda akan ingin menjalankan perintah tersebut untuk setiap subdirektori (jenis izin ini tidak bekerja dengan '-R'). Untungnya subdirektori baru akan dibuat dengan bit 'setgid' disetel secara otomatis.
Jika kita perlu mengizinkan akses tulis ke Apache, ke direktori unggahan misalnya, maka setel izin untuk direktori itu seperti:
sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads
Izin hanya perlu disetel sekali karena file baru secara otomatis akan diberi kepemilikan yang benar.