
Мне необходимо настроить FTP-сервер для распространения различных версий программного пакета среди нескольких учетных записей пользователей.
Чтобы избежать копирования файлов в домашнюю папку FTP каждого пользователя, я хотел бы настроить «общую файловую среду» с символическими ссылками, используя примерно такую структуру:
/
...
+-- srv
+-- ftp
+-- data
+-- V1
+-- Latest -> /srv/ftp/data/V1/V1.3
+-- V1.1
+-- V1.2
+-- V1.3
+-- V2
+-- Latest -> /srv/ftp/data/V2/V2.2
+-- V2.1
+-- V2.2
+-- V3
+-- Latest -> /srv/ftp/data/V3/V3.1
+-- V3.1
+-- users
+-- user1
+-- V3 -> /srv/ftp/data/V3/Latest
+-- user2
+-- V2 -> /srv/ftp/data/V2/Latest
+-- user3
Каждая версия представляет собой папку с несколькими файлами и подпапками.
Я использую Linux-компьютер (CentOS 7) с vsftpd. Проблема возникает, когда я пытаюсь ограничить доступ пользователя к его домашней папке. Сервер не позволяет перейти по ссылке за пределами папки пользователя.
Например, я бы хотел, чтобы пользователь user1 видел только папку V3 и ее содержимое (с подпапками).
Итак, вопрос: правильный ли это подход? Если да, то как заставить его работать, если нет, то какой подход можно рекомендовать для чего-то подобного?
решение1
В качестве общего соображения: прекратите использовать устаревший протокол FTP для распространения контента.
В качестве альтернативы использованию символических ссылок вы можете использовать"привязать" креплениедля репликации части вашей файловой системы в другом месте, например, в иерархии личных каталогов пользователей. Связанные монтирования не должны мешать стратегиям ограничения chroot.
Следующий синтаксис эквивалентен:
mount --bind /srv/ftp/data/V3/Latest /srv/ftp/users/user1/V3
mount -o bind srv/ftp/data/V2/Latest /srv/ftp//users/user2/V2
Создайте соответствующие записи, /etc/fstab
чтобы они сохранялись при перезагрузках.