Ho un filesystem sshfs remoto montato su /mnt/data
. Di seguito è riportata la riga pertinente in /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
I file in /var/www/
sul sistema remoto sono di proprietà dell'utente www-data
, ma sto usando uid=martin,gid=martin
per mappare la proprietà sul filesystem montato su uid 1000.
Quando eseguo il cd su /mnt/data/
come martin, ho i permessi/proprietà del file corretti, ma devo cambiare umask.
Sul file system remoto, l'utente www-data
ha umask 0027
. Sul mio filesystem locale, l'utente martin
ha umask 0077
. Voglio mantenere umask 0077
sui miei file locali, ma usa 0027
sui file montati sshfs (cioè tutti i file in /mnt/data/).
È possibile?
Ho provato a impostare i permessi acl sull'intera directory sul filesystem remoto:
setfacl -d -m g::rx /var/www/
setfacl -d -m o::--- /var/www/
ma questo non ha effetto sulla condivisione montata sshfs.
Risposta accettata:
sshfs
sta usando sftp
sotto il cofano e la umask
per la creazione di nuovi file è gestito dal sftp-server
remoto . Puoi impostare umask
come argomento per il sftp-server
in /etc/ssh/sshd_config
sul server, come
Subsystem sftp /usr/lib/openssh/sftp-server -u 027 # Debian/Ubuntu
o
Subsystem sftp /usr/libexec/openssh/sftp-server -u 027 # RHEL/Fedora
o
Subsystem sftp /usr/lib/ssh/sftp-server -u 027 # Arch
Le impostazioni umask e l'ACL esteso non vengono trasferiti tramite il protocollo SFTP implementato da openssh. Nota inoltre che non esiste "umask
sui file”, ma umask
è sempre associato al processo in esecuzione che crea i file.