configura umask para sistema de arquivos montado em sshfs

4

Eu tenho um sistema de arquivos sshfs remoto montado em /mnt/data . A seguir, a linha relevante em /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

Os arquivos em /var/www/ no sistema remoto são de propriedade do usuário www-data , mas estou usando uid=martin,gid=martin para mapear a propriedade no sistema de arquivos montado para o uid 1000.

Quando eu cd para /mnt/data/ as martin, eu tenho as permissões / propriedade de arquivo corretas, mas eu preciso mudar o umask.

No arquivo remoto, o usuário www-data tem umask 0027 . No meu sistema de arquivos local, o usuário martin tem umask 0077 . Eu quero manter o umask 0077 em meus arquivos locais, mas use 0027 nos arquivos montados sshfs (ou seja, todos os arquivos em / mnt / data /).

Isso é possível?

Eu tentei definir permissões de acl em todo o diretório do sistema de arquivos remoto:

setfacl -d -m g::rx  /var/www/
setfacl -d -m o::--- /var/www/

mas isso não tem efeito no compartilhamento montado pelo sshfs.

    
por Martin Vegter 12.06.2016 / 13:05

1 resposta

5

sshfs está usando sftp sob o capô e o umask para criação de novos arquivos é tratado pelo controle remoto sftp-server . Você pode definir umask como um argumento para o sftp-server in /etc/ssh/sshd_config no servidor, como

Subsystem sftp /usr/lib/openssh/sftp-server -u 027     # Debian/Ubuntu

ou

Subsystem sftp /usr/libexec/openssh/sftp-server -u 027 # RHEL/Fedora

ou

Subsystem sftp /usr/lib/ssh/sftp-server -u 027         # Arch

As configurações de umask e a ACL estendida não são transferidas através do protocolo SFTP, conforme implementado pelo openssh. Observe também que não há " umask em arquivos", mas umask está sempre associado ao processo de criação dos arquivos.

    
por 12.06.2016 / 13:18