O SSHFS é um sistema de arquivos FUSE . Eles são gerenciados por um processo de aterrissagem do usuário que é executado como o usuário que monta o sistema de arquivos: esse processo sshfs que você executa é o dobro do driver do sistema de arquivos. Por padrão, a maioria dos sistemas de arquivos FUSE só permite que o usuário de montagem acesse arquivos dentro dele.
Para poder acessar arquivos através do sshfs, você precisa de três coisas:
- O usuário autenticado por ssh no servidor1 deve poder acessar os arquivos.
- O usuário que tentar acessar o sistema de arquivos sshfs no servidor2 deve ter as permissões de acesso necessárias.
- O usuário que tentar acessar o sistema de arquivos sshfs no servidor2 deve ter permissão para acessar esse sistema de arquivos.
Como escrevi acima, apenas o usuário de montagem tem essa última permissão. Você pode relaxar isso adicionando -o allow_user à linha de comando sshfs , mas isso não resolverá os outros dois problemas. Observe que -o allow_user só entrará em vigor se /etc/fuse.conf contiver user_allow_user ou se você estiver executando sshfs como raiz.
Em server2 , você precisa executar sshfs como o usuário www-data (a quem você terá que dar acesso à chave privada SSH) ou ativar allow_user e organizar o local www-data para ter acesso aos arquivos necessários. Existem várias maneiras de fazer isso: através da opção uid , ou passando -o default_permissions , ou passando -o umask 770,gid=www-data . Se você ativar allow_user , certifique-se de não permitir que www-data acesse mais arquivos do que deveria, e que você não acabe permitindo que outros usuários vejam ou modifiquem o que não deveriam. Executar sshfs como www-data tem a vantagem da simplicidade, você tem uma chance muito maior de não ser acidentalmente muito permissivo.
Para o problema 1, você precisa ssh na conta www-data em server1 ou para permitir que a conta usada acesse esses arquivos. Há algum benefício em não permitir logins remotos para contas do sistema, como www-data , porque isso faz com que a auditoria seja ruim (você não pode saber quem realmente usou a conta). No entanto, não está fora de questão e é um pouco mais fácil de configurar. Se você não quiser permitir logins remotos na conta www-data , adicione salamis ¹ ao grupo www-data , certifique-se de que o sistema de arquivos em server1 esteja montado com a opção acl (adicione-o a a entrada relevante em /etc/fstab , se necessário) e adicione uma ACL aos arquivos www-data :
setfacl -d -m group:www-data:rwx -R /path/to/www-root
setfacl -m group:www-data:rwx -R /path/to/www-root
¹ Se essa é sua conta em server1 , não entendi sua pergunta se salamis era um usuário em server1 , em server2 ou ambos.