Saya lebih sebagai orang Windows, jadi mohon maafkan ketidaktahuan saya dengan pertanyaan dasar Linux ini.
Saya mencari server Linux (Debian) yang hanya memiliki Apache2 dan vsftp diinstal di atasnya.
Yang terjadi adalah saya terus-menerus bertengkar dengan siapa yang memiliki file dan folder dan sepertinya tidak bisa memperbaikinya.
Inilah pengertian saya sejauh ini:
- Pengguna www-data memerlukan kepemilikan folder dan file karena semua file di bawah / var / www / html menjalankan skrip yang mengharuskan mereka untuk menulis ke folder mereka. Dan tentu saja harus dapat melayani halaman melalui http.
- Pengguna ftp saya (sebut saja ftpuser ) juga memerlukan izin untuk menulis ke folder / var / www / html (rekursif) karena saya harus dapat mengunggah file baru.
Dengan mengingat hal ini saya telah membuat grup bernama ftpandwww dan telah membagikan semua folder dan file ke grup ini. Ini telah bekerja pada tingkat ...
Saya hampir berada di tempat yang tepat, kecuali kenyataan bahwa folder baru yang dibuat menggunakan klien FTP saya memiliki izin yang salah (yang dapat saya perbaiki dengan mengubahnya di bawah klien FTP), tetapi kemudian www-data tidak dapat menulis kepada mereka karena mereka dimiliki oleh ftpuser dan saya akhirnya harus SSH dan menjalankan chown ke grup ftpandwww sehingga mereka berdua bahagia.
Bagaimana cara membuat semua folder baru yang saya buat di FTP memiliki izin yang benar (774) dan secara otomatis dimiliki oleh grup ftpandwww di mana saya dapat mengunggah dan melayani melalui web (dengan izin menulis) tanpa harus masuk dan memberi tahu semua folder dan file baru setiap kali?
sumber
Jawaban:
Gunakan izin SetGID pada direktori root web, dan sebarkan ke anak-anak.
Saat Anda menerapkan SetGID pada direktori, semua item baru di direktori itu akan dibuat dengan grup yang sama dengan yang dimiliki orang tua mereka, terlepas dari keanggotaan grup default pengguna.
Untuk menerapkan SetGID ke objek sistem file, gunakan
chmod
dengan 2 di depan kode izin.(mis: 740 => 2740).
Saya menggunakan SetGID pada banyak bagian Samba saya, sehingga file selalu memiliki grup sendiri
Users
dan setiap anggota grup dapat membaca file (saya biasanya menggunakan2750
sehingga hanya pengguna pemilik yang dapat menulis ke file).Dalam kasus Anda, jalankan sesuatu seperti ini (ganti XXX dengan izin yang Anda inginkan):
Kemudian file dan folder baru akan keluar dengan kepemilikan seperti
ftpuser:ftpandwww
.Edit:
Bergantung pada usecase Anda, SetGID kemungkinan cukup untuk menyelesaikan masalah Anda, tetapi jika Anda memiliki masalah yang berkelanjutan di mana satu atau pengguna lain ditolak menulis, karena izin grup yang salah (tetapi kepemilikannya benar), maka taruhan terbaik Anda adalah mengatur sebuah umask kustom untuk pengguna yang menciptakan file .
Jika Anda mengalami kesulitan mengatur UMASK untuk pengguna (karena ini adalah daemon), periksa utas ini pada opsi untuk mengatur UMASK pengguna daemon .
Saya akan merekomendasikan topeng
007
jika Anda ingin anggota grup dapat menulis dan menghapus file, dan tidak ada hak istimewa untuk non-pemilik.sumber