Bagaimana cara menetapkan kepemilikan grup default untuk file dalam direktori?

20

Saya menjalankan webapp cakephp di Linode LAMP. Saya menemukan bahwa file temp saya dibuat dengan kepemilikan root: root. Tetapi webapp berjalan dengan izin Apache (www-data). Hal ini menyebabkan peringatan kapan saja ada file baru yang dibuat karena tidak dapat ditulisi oleh pengguna www-data.

Bagaimana cara mengubah kepemilikan default menjadi www-data pada file baru yang dibuat di folder temp?

Terima kasih atas bantuan Anda!


sumber

Jawaban:

23

Untuk menetapkan kepemilikan grup oleh www-data terlepas dari uid / gid dari proses yang membuat file, Anda perlu mengatur bit setgid pada direktori.

    sudo chown :www-data <dir>
    sudo chmod g+s <dir>

Perhatikan bahwa Anda juga harus membuat direktori dapat ditulis oleh proses apa pun yang akan membuat file. Jika itu orang lain selain root, Anda mungkin juga perlu chmod o+rwxmembuat semuanya berfungsi dengan baik.

CodeGnome
sumber
Bagaimana dengan sub-direktori?
mcont
Menambahkan flag -R ke chown dan chmod membuat perintah itu bersifat rekursif. Jadi perintah di bawah ini akan menetapkan kepemilikan grup default untuk <dir> dan juga semua subdirektori dari <dir>: sudo chown -R :www-data <dir>dansudo chmod -R g+s <dir>
Josh Wieder