É provável que o SFTP esteja sendo chrootado, para que o diretório / var / www não esteja disponível para o usuário na prisão chroot.
Examine /etc/ssh/sshd_config
e examine as diretivas sftp. Você vê algo como:
Match group sftp
ChrootDirectory /home/%u
AllowTcpForwarding no
ForceCommand internal-sftp
A página do manual sshd_config está aqui .
Basicamente, quando o usuário /home/username
entra no SFTP, esse diretório se torna /
e as referências externas a ele /home/username
não estão disponíveis. De fato, um link simbólico parecido com ln -s /var/www /home/username/www
o que você está tentando acessar /home/username/var/www
(ou seja, /home/username
agora é /
um link que as referências /var/www
também devem ser um subdiretório /home/username
no contexto do chroot).
Como solução, você pode desativar o chroot (mas isso terá outras implicações de segurança, principalmente com os usuários do SFTP controlando totalmente o sistema de arquivos). Você pode fazer uma montagem em loop de / var / www em / home / nome de usuário / www (algo como mount --bind /var/www /home/username/www
(verifique sua documentação mount
) que deve funcionar como seria de esperar no chroot). Você também pode mexer com o arquivo sshd_config para excluir esse usuário específico do chroot (embora, novamente, com implicações de segurança).
Eu tentaria o mount mount primeiro.