这次我是在Ubuntu 14.04.1 LTS上安装vsftpd

sudo apt-get update

sudo apt-get install vsftpd

sudo service vsftpd restart

问题出在启动这里,我在/etc/init.d/vsftpd没有此文件。

全新安装:apt-get install vsftpd

重新安装:apt-get --reinstall install vsftpd

卸载并清除配置文件:apt-get -purge remove vsftpd

关于如何卸载最干净问题,每种软件在安装时可能包含多个安装包模块,所以单纯的remove主程序包一般来讲肯定不干净,就像下文的:

http://www.cloudfly.info/archives/33

----------------安装完成后开始配置用户---------------------------

我使用的是配置本地用户上传:

sudo vi /etc/vsftpd.conf

#接受本地用户

local_enable=YES

#接受本地用户可写

write_enable=YES

#掩码,决定了上传上来的文件的权限。设置为022

local_umask=022

chroot_local_user=NO

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd.chroot_list

#我们要指定一个userlist,里边放的是允许ftp登陆的本地用户。如果设置为YES,则文件里设置的是不允许登陆的本地用户

userlist_deny=NO

userlist_enable=YES

#记录允许本地登陆用户名的文件

userlist_file=/etc/allowed_users

#记录允许本地登陆用户名的配置文件

user_config_dir=/etc/vsftpd_user_conf

然后 sudo vi /etc/vsftpd.chroot_list

内容为允许FTP上传的用户名

ftpuser

然后 vi /etc/allowed_users

内容为允许FTP上传的用户名列表,一行一个用户名:

ftpuser

然后mkdir /etc/vsftpd_user_conf

vi /etc/vsftpd_user_conf/ftpuser

内容为FTP用户的参数指定:

local_root=/web/project

write_enable=YES

这里可以加入其他参数

注:一定要将FTP的根目录的W属性去掉,如chmod a-w /path/ftpdir

--------前提:增加ftpuser用户

sudo adduser ftpuser

并修改ftpuser的shell无法使用 vi /etc/passwd,shell处改为: /usr/sbin/nologin

再sudo echo  /usr/sbin/nologin >> /etc/shells,否则还是无法登录(原因是设置了 /usr/sbin/nologin)

错误:如果启动报错没有pid文件和.sock