Ошибка при авторизации на VSFTPD (libgcc_s.so.1 must be installed for pthread_cancel to work) на Debian 8 Jessie.
Развернув FTP-сервер vsftpd
на Debian 8 Jessie и настроив использование виртуальных пользователей на базе MySQL, у меня при попытке подключения к FTP выдается вот такая ошибка: libgcc_s.so.1 must be installed for pthread_cancel to work
.
ftp 10.7.7.97 Connected to 10.7.7.97. 220 Jakonda FTP сервер. Name (10.7.7.97:jakonda): user1 331 Please specify the password. Password: libgcc_s.so.1 must be installed for pthread_cancel to work Login failed. 421 Service not available, remote server has closed connection
Данная ошибка вызвана недостатком доступной процессу виртуальной памяти. Лимит определяется в значении VSFTP_AS_LIMIT
в файле defs.h
исходников vsftpd.
Увеличить значение VSFTP_AS_LIMIT
можно пересобрав vsftpd из исходников, с нужным нам значением и потом установить исправленную версию. Разберем ниже как это сделать.
Обновляем систему до актуального состояния:
sudo apt-get update && sudo apt-get upgrade
Устанавливаем необходимые пакеты:
sudo apt-get install fakeroot build-essential
Устанавливаем необходимые зависимости и загружаем исходник vsftpd из репозитария:
sudo apt-get build-dep vsftpd sudo apt-get source vsftpd
Переходим в каталог vsftpd (на момент написания статьи, версия vsftpd в репозитариях 3.0.2):
pushd vsftpd-3.0.2/
В файле defs.h находим строку — #define VSFTP_AS_LIMIT 100UL * 1024 * 1024
и приводим ее к виду — #define VSFTP_AS_LIMIT 400UL * 1024 * 1024
Зафиксируем внесенные изменения (в процессе выполнения вводим имя патч-файла):
sudo dpkg-source --commit
Собираем пакет:
sudo fakeroot dpkg-buildpackage
Выходим из каталога:
popd
У вас должен создаться файл vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb
.
Установим его (можно устанавливать по верх уже установленного vsftpd, конфигурационный файл затронут не будет):
sudo dpkg --install vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb
После установки пробуем подключится к FTP-серверу и на этот раз авторизация должна пройти успешно.
ftp 10.7.7.97 Connected to 10.7.7.97. 220 Jakonda FTP сервер. Name (10.7.7.97:jakonda): user1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.