Bagaimana cara kerja local_umask dan file_open_mode?

11

Saya punya beberapa masalah dengan penerimaan filep saat pengguna lokal mengunggah file mereka melalui vsftp ke server.

Saya ingin file memiliki semua 766 izin. Setelah banyak trial and error saya menemukan bahwa saya harus mengatur pengaturan seperti ini:

local_umask=011
file_open_mode=0777

Tapi saya tidak tahu mengapa ini menghasilkan 766 izin. Adakah yang bisa menjelaskan ini?

OrangeTux
sumber

Jawaban:

13

The vsftpd daemeon akan membuat file permissions sebagai 0777 . Dari itu, local_umask( 0011 ) dikurangi. Pada dasarnya umask menghapus izin yang tidak Anda inginkan untuk dimiliki pengguna. Ini menghasilkan izin file pengguna untuk ditetapkan pada 0766 .

Untuk informasi lebih lanjut, lihat artikel ini tentang izin file .

Ignacio Vazquez-Abrams
sumber
2
Ya saya mengerti, saya tahu caranya. Tetapi bagaimana cara kerjanya? Mengapa saya tidak bisa menetapkan hanya 766?
OrangeTux
1

Nilai umask dikurangi dari pengaturan mode terbuka. Jika Anda tidak memberikan nilai umask khusus, yang standar (077) digunakan, mengarah ke hasil yang tidak Anda inginkan.

Timo Reimann
sumber
-1

Anda mendapatkan izin ini karena:

1) Pengaturan local_umask = 011 yang Anda kirim ke vsftp untuk mengatur:

0: baca, tulis, dan jalankan 1: baca dan tulis 1: baca dan tulis

Itu sama dengan chmod 766.

2) Nilai file_open_mode = 0777 tidak diuraikan,

Di sini Anda dapat menemukan penjelasan yang sangat bagus tentang apa itu umask dan bagaimana menggunakannya: https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Fernando Kosh
sumber
Ini bukan jawaban untuk pertanyaan itu. (1) OP ingin file diproteksi 766, bukan 666, jadi Anda menangani skenario yang salah. (2) OP memiliki konfigurasi yang berfungsi. Pertanyaannya adalah bertanya mengapa itu berhasil. Anda belum mengatasinya.
Scott
Ok, @Scott, edit jawabannya.
Fernando Kosh