文件上传到ubuntu -- vsftpd 安装+配置

  1. 安装vsftpd

    sudo apt-get install vsftpd
    
  2. 配置

    sudo vi /etc/vsftpd.conf
    
  3. 去掉注释,关闭匿名访问

    anonymous_enable=YES
    
  4. 去掉注释,让本地账号可以访问

    local_enable=YES 
    write_enable=YES
    
  5. 如果你需要允许本地账号访问的话,就执行这一步。(不需要的话,忽略这一步。)

    • 修改 /etc/ftpusers 文件(该文件用于屏蔽本地账号,让其访问不了)

      sudo vi /etc/ftpusers
      
    • 把要用于ftp访问的用户名注释掉

  6. 增加一个访问账号

    • 增加一个ftpgroup用户组

      sudo groupadd ftpgroup
      
    • 增加用户 ftpuser 并设置其目录为/ftp/ftpuser (可以修改,但是必须创建该文件夹)

      sudo useradd -g ftpgroup -d /ftp/ftpuser -M ftpuser
      
    • 如果上面的/ftp/ftpuser没有被创建,即需要创建该文件夹

      sudo mkdir /ftp
      sudo mkdir /ftp/ftpuser
      
    • 用户必须拥有权限才可以访问,赋予访问/ftp/ftpuser的权限

      sudo chmod 777 /ftp/ftpuser
      
  7. 设置ftpuser密码

    sudo passwd ftpuser
    
  8. 重启vsftpd

    service vsftpd restart
    

331,530错误?

这是因为ubuntu启用了PAM,所在用到vsftp时需要用到 /etc/pam.d/vsftpd 这个文件(默认源码安装的不会有这个文件),因此除了匿名用户外本地用户无法登录。所以只要删除了就可以了。
```
rm /etc/pam.d/vsftpd
```

关于vsftp的配置,主要配置文件是/etc/vsftpd.conf (可以先忽略,用到时再按需配置):

#禁用匿名用户登陆
anonymous_enable=NO

#允许本地用户登陆
local_enable=YES

#允许本地用户写入
write_enable=YES

#注意:这个地方如果不配置,就会出现只有root用户可以登陆,普通用户不可以
check_shell=NO

#掩码,决定了上传上来的文件的权限。设置为000使之有最大权限
local_umask=000

#允许记录日志
xferlog_enable=YES

#允许数据流从20端口传输
connect_from_port_20=YES

#日志路径
xferlog_file=/var/log/vsftpd.log

#ftp欢迎语,可以随便设置
ftpd_banner=hi,guys!

#注意:这个选项可以保证用户锁定在指定的家目录里,防止系统文件被修改。
chroot_local_user=YES

#注意:这个不配置有可能出现只能下载不能上传
allow_writeable_chroot=YES

#配置了可以以stand alone模式运行
listen=YES

#注意:该选项不配置可能导致莫名其妙的530问题
seccomp_sandbox=NO

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

#记录允许本地登陆用户名的文件
userlist_file=/etc/vsftpd/allowed_users

参考文章1
参考文章2

原文地址:https://www.cnblogs.com/huangmp1024/p/6184354.html