转载:沐心_ 
地址:http://bbs.csdn.net/topics/392186116
----------------------------------------------------------
目标:安装 vsftpd 服务为了安装方便 全程使用root模式
一、步骤----------------------------------------------
1、切换root用户模式 (已在root模式下的请忽略)
      sudo -i
      #然后提示你输入当前用户密码,输入密码后回车后如果密码正确控制台就变成 root@***:/# 了。
2、更新软件源
      apt-get update
3、安装 vsftpd
      apt-get install vsftpd
 
      #安装完成后vsftpd会创建一个用户组和一个用户,据说匿名用户会使用使用cat /etc/group 可以查看用户组 cat /etc/passwd 可以查看用户以及用户的默认目录
      #vsftpd默认创建的用户 ftp  默认目录是 /srv/ftp  命令行是false  
 
4.0、了操作方便我们给FTP创建自定义FTP目录和用户组
 
4.1、创建FTP目录  /home/ftp 当然你也可以创建到其它目录
      mkdir /home/ftp
4.2、创建FTP用户组 ftp-g  这个你们也可以用其它组名
      groupadd ftp-g
4.3、设置FTP目录读写权限(注:用户登陆的根目录如果权限设置的太大会导致无法登陆,根目录下的子目录可以给很大的权限)
      chmod 755 /home/ftp
4.4、设置文件夹归属 root 以及 我们新建的 FTP用户组
      chown root:ftp-g /home/ftp
5.0、设置FTP用户目录以及添加FTP用户
5.1、为用户ftp_a 创建目录 a并设置权限
      mkdir /home/ftp/a
      chmod 755 /home/ftp/a
5.2、添加用户 ftp_a 并设置归属用户组为 ftp-g 以及设置缺省目录(FTP登陆目录) -s /sbin/nologin 禁止用户登陆控制台
      useradd -g ftp-g -d /home/ftp/a -s /sbin/nologin ftp_a
5.3、给新用户 ftp_a 设置密码(无密码不能登陆)
      passwd ftp_a
      #然后按照提示输入两遍密码 比如我们设置为 123456798
6、给FTP开放外网端口(默认:tcp端口 21)
      ufw allow 21/tcp
7、启动FTP服务
      /etc/init.d/vsftpd start
8、使用我们创建的用户链接FTP服务器进行文件上传下载测试二、问题----------------------------------------------
问题1 、用户登陆提示 530 login incorrect解决方法
      打开 /etc/vsftpd.conf
      将 pam_service_name=vsftpd 改成  pam_service_name=ftp  然后保存
      重启vsftpd服务再登陆即可
      /etc/init.d/vsftpd restart
问题2、上传文件  550报错
      修改 /etc/vsftpd.conf
      取消 write_enable=YES 的注释
      保存 重启vsftpd服务即可
问题3、用户登陆FTP后可以访问上级目录
      修改 /etc/vsftpd.conf 文件 去掉下面 选项 的注释 即可阻止用户访问上级目录chroot_local_user=YES 保存重启服务即可
问题4、修改默认端口修改 /etc/vsftpd.conf 文件
      注释掉 #connect_from_port_20=YES
      添加listen_port=你想要的端口
      保存重启服务
      记得防火墙要开端口