http://www.cnblogs.com/CSGrandeur/p/3754126.htmlhtml
网上的文章好难懂啊。。只想要简单粗暴,弄好能用就行啊,复杂的之后研究不行吗。。。折腾很久,其实弄出来能用不就这么点内容吗。。。shell
本文在Ubuntu Server 14.04 amd64系统测试。浏览器
Made By:CSGrandeuride
安装ftp测试
sudo apt-get install vsftpd
配置vsftpd.confui
sudo nano /etc/vsftpd.conf
#禁止匿名访问 anonymous_enable=NO #接受本地用户 local_enable=YES #容许上传 write_enable=YES #用户只能访问限制的目录 chroot_local_user=YES #设置固定目录,在结尾添加。若是不添加这一行,各用户对应本身的目录,固然这个文件夹本身建 local_root=/home/ftp
看网上说加一行“pam_service_name=vsftpd”,我看我这个配置文件原本就有,就无论了。spa
添加ftp用户.net
sudo useradd -d /home/ftp -M ftpuser sudo passwd ftpuser
调整文件夹权限rest
这个是避免“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”code
sudo chmod a-w /home/ftp sudo mkdir /home/ftp/data
sudo chmod 777 /home/ftp/data
这样登陆以后会看到data文件夹,读写都在data文件夹中进行,虽然稍麻烦,缘由不表了。。查资料这么辛酸已经不易。。
改pam.d/vsftpd
这时候直接用useradd的账号登陆ftp会530 login incorrect
sudo nano /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
重启vsftpd
sudo service vsftpd restart
这时就能够用刚才建的ftpuser这个用户登陆ftp了,看到的是local_root设置的/home/ftp,而且限制在该目录。
能够在浏览器用ftp://xxx.xxx.xxx.xxx访问,也能够用ftp软件好比flashFXP,密码就是ftpuser的密码。
关于用户访问文件夹限制
由chroot_local_user、chroot_list_enable、chroot_list_file这三个文件控制,转别人的一段话:
首先,chroot_list_enable好理解,就是:是否启用chroot_list_file配置的文件,若是为YES表示chroot_list_file配置的文件生效,不然不生效;
第二,chroot_list_file也简单,配置了一个文件路径,默认是/etc/vsftpd.chroot_list,该文件中会填入一些帐户名称。可是这些帐户的意义不是固定的,是跟配置项chroot_local_user有关的。后一条中说明;
第三,chroot_local_user为YES表示全部用户都*不能*切换到主目录以外其余目录,可是!除了chroot_list_file配置的文件列出的用户。chroot_local_user为NO表示全部用户都*能*切换到主目录以外其余目录,可是!除了chroot_list_file配置的文件列出的用户。也能够理解为,chroot_list_file列出的“例外状况”的用户。
若是客户端登陆时候提示“以pasv模式链接失败”
编辑/etc/vsftpd.conf
最后添加
pasv_promiscuous=YES
而后再重启vsftpd服务。