Refusing to run with writable root inside chroot() Debian vsftpd ошибка
При использовании новой версии сервера FTP vsftpd (2.3.5 и выше) при соединении с сервером в ряде случаев возникает ошибка — 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Оказывается, разработчик vsftpd Крис Эванс решил поднять безопасность системы с vsftpd и запретил подключения пользователям с возможностью записи в корневой каталог подключения.
Т.е. права записи у пользователя должны быть в поддиректории, иначе выдавать ошибку — 500 OOPS..
Возможно такие изменения и нужны, но хотелось бы чтобы можно было регулировать поведение из файла конфигурации, но это Very Secure FTP Daemon.
Решения данной проблемы есть:
1. Самое правильное — это убрать права на запись в корень подключения и сделать подкаталог, на который поставить нужные права.;
2. Использовать старую версию без таких нововведений (я бы не советовал);
3. Можно использовать сборку PPA на launchpad’e собранную с опцией allow_writeable_chroot (не наши методы );
4. Использование расширенной сборкой vsftpd-ext (лучше все-таки стандартный вариант);
5. Создать виртуальных пользователей, можно с хранением логинов и хэшей паролей в MySQL (как вариант)
6. Самый простой способ, создаем пользователя как обычно, разрешаем запись в корневой каталог, меняем в файле /etc/passwd домашний каталог пользователя — добавляем в него путь с точкой. И добавляем в vsftpd.conf строку
passwd_chroot_enable=YES |
Пример решения номер 6 строка из /etc/passwd:
aero_ftp:x:1004:33::/data/./aero_ftp:/bin/false |
После этого пользователь aero_ftp сможет коннектиться и ошибки 500 OOPS vsftpd не будет.