自14.04起,vsftpd安装无法在虚拟服务器上运行
我从12.04开始用于安装vsftpd的过程不再有效。 我得到错误stop: Unknown instance
重新启动服务时出现stop: Unknown instance
。 我相信这意味着配置错误,但我无法追查问题。 我在虚拟服务器上遇到此问题。
另外,运行sudo vsftpd
导致500 OOPS: munmap
@Beltran所指出的munmap。
-
获取root权限
sudo -s
-
安装vsftpd和libpam-pwdfile
apt-get install vsftpd libpam-pwdfile
-
编辑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
-
注册虚拟管理员
apt-get install apache2-utils mkdir /etc/vsftpd htpasswd -cd /etc/vsftpd/ftpd.passwd admin vim /etc/vsftpd.chroot_list
为admin用户添加1行
admin
-
配置PAM
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak vim /etc/pam.d/vsftpd
复制并粘贴这两行。
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd account required pam_permit.so
-
创建没有shell访问权限的本地用户
useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
-
创建根目录并授予本地用户适当的访问权限。
mkdir /var/clients chmod -R 755 /var/clients chown -R vsftpd:nogroup /var/clients
-
注册被监禁的虚拟用户(最初,我跳过此步骤)
htpasswd -d /etc/vsftpd/ftpd.passwd {user_name} mkdir /var/clients/{user_name}
-
重启服务
service vsftpd restart
Ubuntu 14.04使用12.04中缺席的用户会话 ,因此service
正在查看用户会话,而不是系统会话,并且您的用户没有运行vstfpd(root is)。 因此,当您使用service
启动,停止或检查服务状态时,您需要指定--system
。
vsftpd是upstart的软链接,因此您将无法以非特权用户身份运行它,您需要root才能启动或停止或检查此类进程的状态。
ls -l on /etc/init.d/vsftpd
执行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守护程序的基于事件的替换,它在启动期间处理任务和服务的启动,在关闭期间停止它们并在系统运行时监督它们。
这些服务通常在启动时启动。 有关新贵的更多信息,请参阅此处:
- 什么是暴发户
如果你想要更多,请参考新贵的手册页!
所以,长话短说,要开始,停止,检查状态,你需要成为root。 你可以这样做:
sudo service vsftpd {start|stop|status|restart}
并输入您的密码或使用:
service vsftpd {start|stop|status|restart} --system
在您的软件源中启用trusty-proposed并重新安装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
文件中添加以下两行:
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