-
安装vsftpd
sudo apt-get install vsftpd
-
配置
sudo vi /etc/vsftpd.conf
-
去掉注释,关闭匿名访问
anonymous_enable=YES
-
去掉注释,让本地账号可以访问
local_enable=YES write_enable=YES
-
如果你需要允许本地账号访问的话,就执行这一步。(不需要的话,忽略这一步。)
-
修改 /etc/ftpusers 文件(该文件用于屏蔽本地账号,让其访问不了)
sudo vi /etc/ftpusers
-
把要用于ftp访问的用户名注释掉
-
-
增加一个访问账号
-
增加一个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
-
-
设置ftpuser密码
sudo passwd ftpuser
-
重启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