ubuntu16 中安装vsftp的(FTP)服务器

1. 实验环境
ubuntu16
2.vsftpd介绍
vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的FTP服务器程序,安全性是它的一个最大的特点。
3.vsftpd的安装
在安装之前最好是先更新下已安装的软件:
打开终端执行命令:

sudo apt-get install update
sudo apt-get install upgrade
sudo apt-get install vsftpd

4.配置vsftpd
4.1 修改vsftpd的配置文件
此类配置文件通常位于 /etc 目录下
sudo gedit /etc/vsftpd.conf
原文件中不少指令被注释,只要启用部分即可,一下是启用的命令(配置文件中对每一条都有具体说明)

listen=YES       # 服务器监听
anonymous_enable=YES       # 匿名访问允许
local_enable=YES    # 本地主机访问允许
write_enable=YES    # 写允许
anon_upload_enable=YES
# 匿名上传允许,默认是NO,嫌麻烦的可以开起来。出了问题我不负责~
anon_mkdir_write_enable=YES  # 匿名创建文件夹允许
dirmessage_enable=YES  # 进入文件夹允许
xferlog_enable=YES   #  ftp 日志记录允许
connect_from_port_20=YES     # 允许使用20号端口作为数据传送的端口
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

修改后 保存并退出(执行 :wq)
4.2 设置ftp相关目录

安装完毕后,/srv下会增加一个ftp目录
ubuntu16 中安装vsftp的(FTP)服务器
同时系统会增加一个名为ftp的用户组,可通过如下代码查看:sudo cat /etc/shadow
ubuntu16 中安装vsftp的(FTP)服务器
我们在**/srv/ftp目录下创建两个分别名为upload和download的目录,分别用于上传和下载**:

cd /srv/ftp/
sudo mkdir download
sudo mkdir upload
给创建的上传和下载目录设置响应的权限(7:可读可写可执行;5:可读可执行)
sudo chmod 755 /srv/ftp
sudo chmod 777 /srv/ftp/upload
sudo chmod 755 /srv/ftp/download

如此,一方面我们允许了用户组ftp 访问/home/ftp (匿名访问);
一方面赋予了用户组ftp对 /srv/ftp/upload 的写权利,因此网络上的用户可以方便地上传文件,
但注意,当他们上传后,上传的 文件只有root对这些文件拥有权限,也就是说这个目录仅能用于上传,无法下载其中的文件;
此外赋予了用户组ftp对 /home/ftp/download的读权利,同时我们拷贝进该目录下的文件对于用户组而言通常都有读权利,因此网络上的用户从此目录下能且仅能下载文 件

启动ftp: sudo service vsftpd start
查看当前所有进程: ps -e

ubuntu16 中安装vsftp的(FTP)服务器
至此服务器端vsftp的最基本配置已完成,vsftpd已开启(ubuntu默认未安装防火墙,如果有安装,请自行暂时关闭)

关闭ftp的命令: sudo service vsftpd stop
进程vsftpd查看命令:pgrep vsftpd

4.4 vsftpd 设置用户目录,如果你设置了匿名用户也可以登录上传的话~这个可以省了~

1、增加组
sudo groupadd ftpgroup
修改vsftpd.conf

sudo gedit /etc/vsftpd.conf
将底下三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
改为
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

增加用户ftpuser并设置其目录为/home/nation/ftp/upload:
sudo useradd -g ftpgroup -d /home/xlxh/ftp/upload -M ftpuser
(注:g:用户所在的组 d:表示创建用户的自己目录的位置给予指定 M:不建立默认的自家目录,也就是说在/home下没有自己的目录)
设置用户口令: passwd ftpuser
编辑chroot_list文件,主要是创建访问ftp服务器时所需要使用到
sudo gedit /etc/vsftpd.chroot_list
内容为ftp用户名,每个用户占一行,如:如下设置多个ftp访问的用户名,密码暂时没有设置;可通过passwd xlxh 去设置密码参数

ftpuser
xlxh
123
11111

重新启动vsftpd: sudo service vsftpd start