É 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_confige 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/usernameentra no SFTP, esse diretório se torna /e as referências externas a ele /home/usernamenão estão disponíveis. De fato, um link simbólico parecido com ln -s /var/www /home/username/wwwo que você está tentando acessar /home/username/var/www(ou seja, /home/usernameagora é /um link que as referências /var/wwwtambém devem ser um subdiretório /home/usernameno 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.