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.