Скорее всего, SFTP находится в chroot, так что каталог / var / www недоступен пользователю в изолированной тюрьме.
Посмотрите /etc/ssh/sshd_configи изучите директивы sftp. Вы видите что-то вроде:
Match group sftp
ChrootDirectory /home/%u
AllowTcpForwarding no
ForceCommand internal-sftp
Справочная страница sshd_config находится здесь .
По сути, как только пользователь входит в /home/usernameSFTP, этот каталог становится, /а внешние ссылки /home/usernameнедоступны. На самом деле символьная ссылка ln -s /var/www /home/username/wwwбудет выглядеть так, как будто вы пытаетесь ее достичь /home/username/var/www(то есть, /home/usernameтеперь /любая ссылка, на которую ссылаются, /var/wwwтакже должна быть подкаталогом /home/usernameв контексте chroot).
В качестве решения вы можете отключить chroot (но это будет иметь другие последствия для безопасности, в основном, когда пользователи SFTP полностью контролируют вашу файловую систему). Вы можете выполнить циклическое монтирование / var / www в / home / username / www (что-то вроде mount --bind /var/www /home/username/www(проверьте вашу документацию mount), которое должно работать так, как вы ожидаете в chroot). Вы также можете удалить файл sshd_config, чтобы исключить одного конкретного пользователя из chroot (хотя, опять же, с последствиями для безопасности).
Сначала я бы попробовал крепление.