Установка vsftpd не работает на виртуальном сервере с 14.04

Процесс, который я использовал для установки vsftpd с 12.04, больше не работает. Я получаю сообщение об ошибке stop: Unknown instance при перезапуске службы. Я считаю, что это означает, что конфигурация неверна, но я не могу отследить проблему. У меня проблема на виртуальном сервере.

Кроме того, запуск sudo vsftpd приводит к 500 OOPS: munmap как указано @Beltran.


  1. Приобретение привилегий root

     sudo -s 
  2. Установите vsftpd и libpam-pwdfile

     apt-get install vsftpd libpam-pwdfile 
  3. Изменить vsftpd.conf

     mv /etc/vsftpd.conf /etc/vsftpd.conf.bak vim /etc/vsftpd.conf 

    Скопируйте и вставьте следующие строки.

     allow_writeable_chroot=YES anonymous_enable=NO chroot_list_enable=YES chroot_local_user=YES guest_enable=YES guest_username=vsftpd hide_ids=YES listen=YES local_enable=YES local_umask=022 local_root=/var/clients/$USER nopriv_user=vsftpd pasv_address=127.0.0.1 pasv_enable=YES pasv_min_port=65000 pasv_max_port=65100 port_enable=YES user_sub_token=$USER seccomp_sandbox=NO virtual_use_local_privs=YES write_enable=YES 
  4. Регистрация виртуального администратора

     apt-get install apache2-utils mkdir /etc/vsftpd htpasswd -cd /etc/vsftpd/ftpd.passwd admin vim /etc/vsftpd.chroot_list 

    Добавьте 1 строку для пользователя admin

     admin 
  5. Настройка PAM

     mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak vim /etc/pam.d/vsftpd 

    Скопируйте и вставьте эти 2 строки.

     auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd account required pam_permit.so 
  6. Создание локального пользователя без доступа к оболочке

     useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd 
  7. Создайте корневой каталог и дайте локальному пользователю правильный доступ.

     mkdir /var/clients chmod -R 755 /var/clients chown -R vsftpd:nogroup /var/clients 
  8. Зарегистрируйте виртуальных пользователей, находящихся в тюрьме (сначала пропустите этот шаг)

     htpasswd -d /etc/vsftpd/ftpd.passwd {user_name} mkdir /var/clients/{user_name} 
  9. Перезапуск службы

     service vsftpd restart 

Ubuntu 14.04 использует сеансы пользователей, отсутствующие в 12.04, поэтому service смотрит на сеанс пользователя, а не на системный сеанс, а ваш пользователь не запускает vstfpd (root is). Таким образом, вам нужно будет указать --system когда вы используете service для запуска, остановки или проверки состояния службы.

vsftpd – это софт-ссылка на выскочку, поэтому вы не сможете запускать ее как непривилегированный пользователь, вам нужно будет запустить root, чтобы запустить или остановить или проверить статус такого процесса.

Выполнение ls -l on /etc/init.d/vsftpd показывает:

 lrwxrwxrwx 1 root root 21 May 16 2013 /etc/init.d/vsftpd -> /lib/init/upstart-job* 

который похож на cron , resolvconf и еще несколько, которые все вышестоящие задания и должны быть запущены или остановлены root.

Upstart – это замена на основе событий для демона / sbin / init, который обрабатывает запуск задач и служб во время загрузки, останавливает их во время выключения и контролирует их во время работы системы.

Эти службы обычно запускаются при загрузке. См. Здесь больше о выскочке:

  • Что такое выскочка

Обратитесь к странице man upstart, если вы хотите еще больше!

Итак, длинный рассказ, чтобы начать, остановить, проверить статус, вам нужно быть root. Вы можете сделать это следующим образом:

 sudo service vsftpd {start|stop|status|restart} 

и введите свой пароль или используйте:

 service vsftpd {start|stop|status|restart} --system 

Включите надежное предложение в ваших источниках программного обеспечения и переустановите vsftpd. Я проверяю, если это пройдет.

Если вы не хотите включать предлагаемые в ваши источники источники vsftpd, а сборки доступны на этой странице. https://launchpad.net/ubuntu/trusty/+source/vsftpd/3.0.2-1ubuntu2.14.04.1

Если вы получаете эту проблему в экземпляре AWS EC2, попробуйте создать экземпляр с виртуализацией HVM вместо Paravirtual.

Если вам все еще нужен паравиртуальный экземпляр, не сообщается, когда ошибка будет исправлена, поскольку это ошибка в ядре Xen, которая используется для запуска виртуализации для AWS.

Вот пояс об ошибках, рассматривающий эту проблему более подробно: https://bugs.launchpad.net/ubuntu/+source/vsftpd/+bug/1313450

Еще новичок в Ubuntu. Если бы он работал над Ubuntu 12.4 без каких-либо проблем, но на Ubuntu 14.04, это то, что я сделал:

в файле /etc/vsftpd.conf добавьте эти 2 строки:

 allow_writeable_chroot = YES seccomp_sandbox = NO 

Измените значение pam_service_name на ftp .

Надеюсь, это поможет кому-то

Это сработало для меня на Ubuntu 14.04. Если пользователь находится в тюрьме в каталоге /var/www/html/kofi_site тогда просто запускайте:

sudo chmod ugo-w /var/www/html/kofi_site