最近需要在Ubuntu上装一下vsftpd,搭建ftp服务器,但是在配置过程中总是不顺利。
网上的教程多半都老掉牙了,不完全准确,这里仔细摸索出配置的方法。
安装容易,在有网络的环境下,执行以下命令即可
sudo apt-get install vsftpd
一、vsftpd的配置文件 /etc/vsftpd.conf 的内容没什么好说的,我这里主要
修改了如下配置:
1、有关匿名的全部禁止,禁止匿名用户任何操作,包括登陆
2、local_umask=022 启用此项是保证文件上传后,权限是755,否则权限是700,其它用户无操作权
3、write_enable=YES 启用此项,上传还是需要的,如果只是只读,可以不启用
4、 chroot_local_user=YES
chroot_list_enable=NO
#chroot_list_file=/etc/vsftpd.chroot_list
第一行表示对于 “chroot”功能使用“白名单”限制方式,也就是只有在白名单里的用户允许“chroot”。那白名单在哪里?第二行表示不允许“白名单”存在,所以第三行就不需要配置白名单的路径,这就相当于提供一份空白的“白名单”,你也可以将第二行设置为YES,第三行启用,并创建这个文件,文件可以留空。如果什么时候需要允许某个用户使用“chroot”功能,就在白名单里将其添加进去,一个用户写一行。
什么?“chroot”功能是什么意思?它是“change root”的简称,简单说,就是允许你“看到”你登陆的用户的home目录的上级目录。
二、配置文件就修改到这里,下面是
创建目录等
1、
cd /srv/,如果安装顺利,vsftpd会在这里创建ftp目录,这个目录据说也供匿名用户使用,但我们禁用了匿名访问。
2、sudo mkdir upload 创建一个目录,以供上传
3、sudo chmod 777 -R upload,这里将upload的权限设置为777,表示允许用户进行任何操作
三、删除pam文件
1、cd /etc/pam.d
2、sudo rm vsftpd,这个文件里据说是因为Ubuntu启用了pam认证,具体是个什么东西,先不去研究了,不删掉它,无法登陆。
理论上应该可以通过配置 /etc/pam.d/vsftpd 达到同样的效果,这里不深入研究这一点了。
四、
重启服务
sudo service vsftpd restart
此时,应该就可以通过ftp工具访问了,该ftp的安全性比较高。
注意点:
1、你使用一个用户登陆,你看到的目录就是这个用户的 home目录,这个目录不可以设置成可写的,否则某些情况下ftp不允许使用该用户登陆,所以最好新建用户,并设置不可写的目录作为home目录,在home目录中新增可写的目录以供上传。
比如,我想新增一个用户"user",使该用户可以登陆ftp
cd /srv/
sudo mkdir user //给user用户创建home目录
cd user
sudo mkdir upload
sudo chmod 775 -R upload //赋权限
sudo groupadd ftpuser //创建组
sudo useradd user -g ftpuser -d /srv/user user //创建用户user,并指定组和home目录
sudo passwd user //为其修改密码