Tengo un sistema de archivos sshfs remoto montado en /mnt/data
. La siguiente es la línea relevante en /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
Los archivos en /var/www/
en el sistema remoto son propiedad del usuario www-data
, pero estoy usando uid=martin,gid=martin
para asignar la propiedad en el sistema de archivos montado a uid 1000.
Cuando cd a /mnt/data/
como martin, tengo los permisos/propiedad de archivo correctos, pero necesito cambiar el umask.
En el sistema de archivos remoto, el usuario www-data
tiene umask 0027
. En mi sistema de archivos local, el usuario martin
tiene umask 0077
. Quiero mantener el umask 0077
en mis archivos locales, pero use 0027
en los archivos montados en sshfs (es decir, todos los archivos en /mnt/data/).
¿Es esto posible?
He intentado establecer permisos de ACL en todo el directorio del sistema de archivos remoto:
setfacl -d -m g::rx /var/www/
setfacl -d -m o::--- /var/www/
pero esto no tiene efecto en el recurso compartido montado sshfs.
Respuesta aceptada:
sshfs
está usando sftp
bajo el capó y la umask
para la creación de nuevos archivos es manejado por el sftp-server
remoto . Puede configurar umask
como argumento para el sftp-server
en /etc/ssh/sshd_config
en el servidor, como
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
La configuración de umask y la ACL extendida no se transfieren a través del protocolo SFTP implementado por openssh. También tenga en cuenta que no hay "umask
en archivos”, pero umask
siempre está asociado con el proceso en ejecución que crea los archivos.