Ймовірно, SFTP зберігається в хронічному режимі, так що каталог / var / www не буде доступний для користувача у в'язниці chroot.
Загляньте /etc/ssh/sshd_config
і вивчіть директиви sftp. Ви бачите щось на кшталт:
Match group sftp
ChrootDirectory /home/%u
AllowTcpForwarding no
ForceCommand internal-sftp
Сторінка людини sshd_config тут .
В основному, як тільки користувач перебуває в /home/username
SFTP, цей каталог стає, /
а посилання поза межами /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 (хоча, знову ж таки, із наслідками для безпеки).
Я спробував би спочатку встановити прив'язку.