Я настраиваю FTP-сервер, чтобы заменить старую установку сервера Windows. Я использую vsftpd в Ubuntu 16.04.
Есть несколько пользователей (автоматизированные системы тестирования), не связанных с компанией, и мы хотим сделать изменения прозрачными - никаких изменений на клиентских машинах не требуется.
Я следил этот руководство и настройка виртуальных пользователей и chroot jail. Это работает правильно, и когда я вхожу в систему с помощью Filezilla, я вижу, что я успешно перенесен в домашний каталог виртуального пользователя (home/vftp/$USER
).
Тем не мение. Этот каталог не должен быть доступен для записи, чтобы предотвратить выход из тюрьмы, поэтому я создал подкаталог home/vftp/$USER/uploads
с разрешениями на запись. Поскольку я не хочу вносить изменения на клиентских машинах, мне нужно изменить их на этот uploads
каталог при входе в систему, чтобы они просто входили + загружали без необходимости менять каталог.
Я знаю, что могу разрешить записываемый корень (и, следовательно, не требовать подпапку) с allow_writeable_chroot=YES
, но поскольку это машина, обращенная вовне, это не лучшая идея.
Есть ли способ поместить пользователя в chroot-тюрьму, но переключить его рабочий каталог в подкаталог?
Если вы можете установить домашний каталог пользователя, вы можете указать passwd_chroot_enable=YES
в vsftpd.conf
вместе с домашним каталогом, таким как /home/vftp/USER/./uploads
в /etc/passwd
.
Это создаст chroot-тюрьму в /home/vftp/USER
и использовать uploads
подкаталог как пользователь HOME
каталог.