Итак нам нужен FTP сервер с поддержкой русской кодировки, с условием, чтобы каждый пользователь видел только свою домашнюю директорию (chroot).
проверим текущую версию демонаapt-get install vsftpd -y
Ставим необходимые компоненты для сборкиvsftpd -v vsFTPd version 2.3.2
apt-get build-dep vsftpd -y
Идём по адресу http://vsftpd.devnet.ru/rus/#download и качаем подходящую версию, в моём случае это "vsFTPd 2.3.5+". Компилируем её, и заменяем бинарник.
Пишем файл конфигурацииcd /usr/src/ wget http://vsftpd.devnet.ru/files/2.3.5/ext.1/vsFTPd-2.3.5-ext1.tgz tar xfv vsFTPd-2.3.5-ext1.tgz cd vsFTPd-2.3.5-ext.1/ cat > builddefs.h <<EOF #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #undef VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #undef VSF_BUILD_SSL #define VSF_CONFIG_PATH "/etc/" #define VSF_CONFIG_PREFIX "vsftpd." #endif /* VSF_BUILDDEFS_H */ EOF make cp /usr/sbin/vsftpd /usr/sbin/vsftpd.bak /etc/init.d/vsftpd stop Stopping FTP server: vsftpd. cp ./vsftpd /usr/sbin/vsftpd
Занесём всех пользователей в файл chroot_list, чтобы они могли видеть только свой каталог.cp /etc/vsftpd.conf /etc/vsftpd.conf.orig cat > /etc/vsftpd.conf <<EOF listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem allow_writable_root=YES convert_charset_enable=YES local_charset=UTF8 remote_charset=WIN1251 EOF
Запустим серверls -1 /home/ | grep -v "lost+found" > /etc/vsftpd/chroot_list
Кстати говоря у меня почему то после установки патченого файла vsftpd перестал выключаться стандартным способом./etc/init.d/vsftpd start Starting FTP server: vsftpd.
По этому я выключаю его так/etc/init.d/vsftpd stop Stopping FTP server: No /usr/sbin/vsftpd found running; none killed. vsftpd.
Но по скольку эту процедуру приходится проделывать крайне редко, думается мне что тратить силы на поиск решения не целесообразно.kill `ps ax | grep vsftpd | awk '{ printf $1" " }'`
после make
ОтветитьУдалить/usr/src/vsFTPd-2.3.5-ext.1# make
gcc -c main.c -O2 -Wall -W -Wshadow -idirafter dummyinc
In file included from defs.h:4,
from main.c:17:
builddefs.h:2:1: error: unterminated #ifndef
builddefs.h:1:1: error: unterminated #ifndef
make: *** [main.o] Ошибка 1