Saya memiliki sistem file sshfs jarak jauh yang dipasang di /mnt/data . Berikut adalah baris yang relevan di /etc/fstab :
[email protected]:/var/www/ /mnt/data fuse.sshfs rw,noauto,nodev,nosuid,noexec,_netdev,allow_other,default_permissions,uid=martin,gid=martin 0 0
File di /var/www/ pada sistem jarak jauh dimiliki oleh pengguna www-data , tapi saya menggunakan uid=martin,gid=martin untuk memetakan kepemilikan pada sistem file yang di-mount ke uid 1000.
Ketika saya cd ke /mnt/data/ sebagai martin, saya memiliki izin/kepemilikan file yang benar, tetapi saya perlu mengubah umask.
Pada sistem file jarak jauh, pengguna www-data memiliki umask 0027 . Di sistem file lokal saya, pengguna martin memiliki umask 0077 . Saya ingin menyimpan umask 0077 pada file lokal saya, tetapi gunakan 0027 pada file mount sshfs (yaitu semua file di /mnt/data/).
Apakah ini mungkin?
Saya telah mencoba mengatur izin acl di seluruh direktori pada sistem file jarak jauh:
setfacl -d -m g::rx /var/www/
setfacl -d -m o::--- /var/www/
tetapi ini tidak berpengaruh pada share yang dipasang di sshfs.
Jawaban yang Diterima:
sshfs menggunakan sftp di bawah tenda dan umask untuk pembuatan file baru ditangani oleh sftp-server jarak jauh . Anda dapat mengatur umask sebagai argumen ke sftp-server di /etc/ssh/sshd_config di server, seperti
Subsystem sftp /usr/lib/openssh/sftp-server -u 027 # Debian/Ubuntu
atau
Subsystem sftp /usr/libexec/openssh/sftp-server -u 027 # RHEL/Fedora
atau
Subsystem sftp /usr/lib/ssh/sftp-server -u 027 # Arch
Pengaturan umask dan ACL yang diperluas tidak ditransfer melalui protokol SFTP seperti yang diterapkan oleh openssh. Perhatikan juga bahwa tidak ada “umask pada file”, tetapi umask selalu dikaitkan dengan menjalankan proses pembuatan file.