Назад | Перейти на главную страницу

Проблема с символическими ссылками в FTP-клиенте

Недавно я столкнулся с некоторыми проблемами при попытке настроить FTP-сервер определенным образом. У меня есть клиент, у которого МНОГО данных помещено в одну папку. Затем у клиента есть различные каталоги, по которым организованы данные. В конце («фильтра каталогов») у них есть символическая ссылка, которая указывает на файл в большой папке данных. Например

/lab/directory1/type2/data/owner/lab/bla/bla/file---->/lab/data/filexyz

Чтобы реплицировать и настроить FTP-сервер, я просто создал каталог с именем /lab/data/ и скопировал туда все данные. Затем я просто скопировал структуру папок с символическими ссылками.

Затем я настраиваю vsftpd. Создал локального пользователя с ложной корзиной и установил для этого домашнего каталога пользователя /lab Проблема, с которой я сталкиваюсь, заключается в том, что когда у меня chroot_local_user=YES включен в файле конфигурации, пользователь не может получить файл, который дает сервер 550 Failed to open file. Почему это так. Символьная ссылка указывает на файл в их домашнем каталоге. Однако когда у меня chroot_local_use=NO пользователь может скачивать файлы без проблем. Есть ли способ разрешить пользователю получать файлы через символические ссылки, которые находятся в их домашнем каталоге, пока он находится в тюрьме chroot?

Я ломал голову над этим. Спасибо!

Символьная ссылка - это указатель на «правильный» файл. Но если исходный файл находится за пределами тюрьмы, вы не сможете получить к нему доступ. Это цель тюрьмы. В противном случае обычный пользователь мог бы создать символическую ссылку в тюрьме на /etc/passwd и просто прочтите это. Какая угроза безопасности!

Итак, тюрьма - это тюрьма. Вероятно, жесткая ссылка сработает, так как это «копия без дублирования используемого размера». А для FTP-сервера это как обычный файл (со всеми проблемами).

Вы можете использовать опцию привязки для монтирования, чтобы перемонтировать другую папку, чтобы FTP-сервер видел файлы как находящиеся в корне веб-сайта.

... Вы можете смонтировать / home / shared / files / в / home / website / files / вот так.

Создайте точку монтирования (каталог) в / home / website

mkdir / главная / сайт / файлы /

Смонтируйте другой каталог под этой точкой монтирования

монтировать --bind / home / shared / files / home / website / files /

Теперь окажется, что эти файлы на самом деле находятся в / home / website /, поэтому они будут доступны, даже если вы ограничите пользователя корневым каталогом этого веб-сайта ....

Взято из ЗДЕСЬ:

Установить символическую ссылку, по которой пользователи могут получить к ней доступ через FTP

Вы должны использовать что-то вроде mount --bind

У меня была эта проблема, потому что я использовал абсолютные пути к цели ссылки.

моя команда была:

ln -s /var/www/vhost/myhost.com/typo3_src/typo3_src-8.7.6/ typo3_src

... typo3_src не отображается в FTP-клиенте

когда я использовал относительные пути, это сработало:

ln -s typo3_src/typo3_src-8.7.6/ typo3_src