Anda tidak dapat melakukan itu: jika pengguna dapat membuat file, mereka akan dimiliki olehnya, dan ia akan dapat memodifikasinya dan menghapusnya.
Saya akan mengusulkan skema sederhana untuk memiliki direktori pementasan (di mana pengguna dapat melakukan apa yang diinginkannya) dan direktori masuk (tidak dapat diakses oleh pengguna), dengan program kecil istimewa untuk memindahkan file dari direktori pementasan ke yang masuk. direktori. Tapi itu sebenarnya sulit dilakukan dengan benar: di antara hal-hal lain Anda perlu berhati-hati bahwa program istimewa tidak akan memindahkan file di direktori lain (waspadalah terhadap kondisi ras, tautan simbolis, ../
), tidak akan menimpa file yang ada ( rename(3)
bersifat atomik tetapi dapat hapus tujuan), tidak akan membiarkan pengguna membuka deskriptor file dan memodifikasi file setelah dipindahkan (sehingga Anda lebih baik menyalin daripada memindahkan). Sebagai gantinya, saya akan merekomendasikan untuk mengambil solusi yang kuat dan sudah ada:
- Minta pengguna mengunggah file melalui HTTP.
- Minta pengguna berkomitmen pada sistem kontrol versi. Dia akan dapat melakukan versi baru juga.