Cara saya biasanya melakukan ini dalam pengaturan server saya adalah membuat grup untuk situs web, kemudian menggunakan kombinasi setgid dan umask untuk memastikan bahwa file tetap dapat ditulisi oleh aplikasi yang saya inginkan. Panduan langkah demi langkah di bawah ini:
1 / Buat grup baru untuk situs web Anda:
$ sudo groupadd web-grp
2 / Tambahkan pengguna yang dijalankan server web ke grup:
$ sudo gpasswd -a www-data web-grp
3 / chown direktori dan file yang Anda inginkan server memiliki akses ke:
$ sudo chown -R :web-grp /path/to/website
4 / Tetapkan bit gid dan izin lainnya pada direktori tersebut:
$ sudo chmod -R ug+rw /path/to/website
$ find /path/to/website -type d -exec chmod g+xs {} \;
5 / Atur umask program ftp Anda ke 002
. Ini akan tergantung pada klien ftp dan server Anda, cari di sekitar untuk mencari tahu bagaimana melakukan ini untuk pengaturan khusus Anda.
6 / Mulai ulang server web Anda untuk mengambil izin grup baru:
$ sudo service apache2 restart
Yang menarik di sini adalah setgid
bit pada direktori tersebut akan menyebabkan file baru yang dibuat di direktori memiliki grup yang sama secara default. Ini berarti Anda tidak memerlukan 777
izin — yang berarti Anda memiliki lebih banyak keamanan serta sistem yang harus terus bekerja.
Bagian umask
itu juga penting. File baru akan memiliki bit izin di umask
dilucuti, jadi jika Anda umask
adalah 022
, file baru tidak akan kelompok ditulis, dan hal-hal tidak akan bekerja dengan baik.
Saya telah menggunakan pengaturan ini dengan sangat sukses selama beberapa tahun sekarang.
/var/log/apache2/error.log
?