Я не уверен, как правильно назвать это, но позвольте мне объяснить,
Боб входит в ftp, он заметил, что находится в своем доме и также видит somedir
, otherdir
и somefiles
однажды он решил перейти к otherdir
, и он не был удивлен, увидев someotherfiles
, однако он понятия не имел, что происходит за кулисами, когда он ушел в otherdir
, он ушел из /home/ftp/bob/
до /var/magicaldir
.
Короче говоря, я хочу сопоставить физический каталог, чтобы пользователь мог получить к нему доступ, как если бы он находился в его доме. Как мне к этому подойти?
Примечание. Безопасность не имеет большого значения, я использую ее в качестве домашнего тестового сервера.
Вы можете сделать это с помощью ссылки и изменения конфигурации proftpd.
Создайте ссылку из /home/ftp/bob
в /var/magicaldir
ln -s /var/magical otherdir
Затем отредактируйте /etc/proftpd/proftpd.conf
, найдите и закомментируйте директиву DefaultRoot . [ 119]
#Defaultroot ~
Сохраните файл и перезапустите proftpd.
Решение символической ссылки из ответа выше может быть повреждено из-за проблемы с chroot, которая была описана здесь
. 1112]
/path/to/ftp/
Теперь, если кто-то захочет создать символическую ссылку для /path/to/ftp/deep/level/directory/for/uploads
следующим образом:
/path/to/ftp/uploads --> /path/to/ftp/deep/level/directory/for/uploads
Эта ссылка выше не будет работать, вместо этого будет работать следующая ссылка:
/path/to/ftp/uploads --> deep/level/directory/for/uploads
[ 1115] Обратите внимание, что proftpd
приведет к тому, что джойл будет привязан к пользователю homedir. Итак, абсолютный путь не сработает. Также путь вне "/path/to/ftp/
" не будет работать.
Я думаю, что правильное направление вопроса обсуждается здесь Модуль ProFTPD mod_vroot
Теперь для mod_vroot
будет разрешен сигнал для опций символической ссылки, которые решают проблему. Вам необходимо добавить следующую конфигурацию.
<IfModule mod_vroot.c>
VRootEngine on
VRootOptions allowSymlinks
</IfModule>