Saya tahu pertanyaan ini sudah dibahas, tetapi dengan membaca posting saya tidak dapat menemukan jawabannya, karena beberapa mengatakan "ya umask dapat bekerja", dan yang lain mengatakan "OpenSSH menempatkan perintah selalu menjaga izin"
Sebelumnya hanya untuk tepat:
- Saya menggunakan OpenSSH 5.9 pada RHEL 6.2
- Saya telah mengkonfigurasi server SFTP chroot, menggunakan
internal-sftp
subsistem, dengan-u 0002
untuk umask - Saya tepat saya tidak menggunakan opsi
-p
atau-P
Dari apa yang saya baca di satu sisi: ada banyak cara untuk mendefinisikan umask untuk transfer SFTP:
- option
-u
dariinternal-sftp
(atausftp-server
), karena OpenSSH 5.4 - buat wrapper untuk
sftp-server
(di mana kami secara eksplisit mengatur umask - ini tidak cocok untuk lingkungan chroot btw) - tambahkan konfigurasi tertentu dalam
pam.d/sshd
file
Di sisi lain saya telah membaca:
Klien dan server OpenSSH SFTP melakukan transfer izin (sebagai ekstensi) dan membuat file jarak jauh dengan izin di sisi lokal. AFAICT, tidak ada cara untuk menonaktifkan perilaku ini.
Jadi saya melakukan tes berikut:
Di klien saya, saya membuat file MYFILE
dan direktori MYDIR
dengan izin 600 dan 700.
Kemudian dengan sftp
perintah:
mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)
Jika saya mengubah izin dari MYFILE
dan MYDIR
di sisi klien, dan mengunggah lagi, saya mendapatkan izin baru di sisi server.
Saya mencoba pam.d
solusinya juga, tetapi tidak mengubah apa pun.
Jadi sekarang saya bingung:
Dari apa yang saya uji dan bagian dari apa yang saya baca, saya akan mengatakan OpenSSH selalu menjaga izin. Tetapi karena ada banyak posting yang mengatakan bahwa umask dapat didefinisikan, saya dapat membayangkan saya melakukan hal yang salah dalam konfigurasi pengujian saya.
Saya akan menghargai umpan balik yang berpengalaman.
Terima kasih.