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.