Linux下搭建ftp服务器

什么是ftp服务

ftp是File Transfer Protocol的缩写,文件传输协议,Internet 上用来传送文件的协议。
ftp服务器有很多,本文主要讲解vsftp

vsftp

VSFTP是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是Very Secure FTP,它是一个安全、高速稳定的ftp服务器。

  • 端口
[root@centos7-1 vsftpd]# vi /etc/services | grep ftp
ftp-data        20/tcp
ftp-data        20/udp
# 21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd

20: 传数据
21: 传指令
fsp: 文件服务协议

  • 安装vsftp
# vsftpd是服务端,lftp是客户端(从7开始lftp取代了ftp客户端命令)
yum -y install vsftpd lftp

lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常好一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。

  • 配置文件
/etc/vsftpd/
├── ftpusers   #用于指定哪些用户不能访问FTP 服务器。  黑名单
├── user_list   #指定允许使用vsftpd 的用户列表文件。  白名单
├── vsftpd.conf   #vsftpd 的核心配置文件
├── vsftpd.conf.back
└── vsftpd_conf_migrate.sh  # vsftpd 操作的一些变量和设置脚本

/var/ftp/:默认情况下匿名用户的根目录

  • 启动vsftpd
# 启动
systemctl start vsftpd
# 查看进程状态,为什么看不到20?因为没有数据通信
[root@centos7-1 /]# netstat -antup | grep ftp
tcp6       0      0 :::21                   :::*                    LISTEN      4511/vsftpd

到这里我们就可以访问我们的ftp服务器


Linux下搭建ftp服务器_第1张图片
访问ftp服务器

但是我们貌似不能创建文件,怎么办?

# 修改文件的拥有者
chown  ftp.ftp  /var/ftp/pub/

到这里可以创建文件了,但是不能修改和删除,想要修改和删除需要修改/etc/vsftpd/vsftpd.conf

允许匿名用户访问
anonymous_enable=YES
允许匿名用户上传文件并可以创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES  #默认没有,需要手动添加下这行

重启服务,然后就可以创建、修改和删除文件了。
注: 实际工作中建议不要使用匿名用户。

  • 账号密码登陆

1.创建一个禁止登陆shell的用户并设置密码

useradd -s /sbin/nologin team1
echo "123456" | passwd --stdin team1

2.修改配置文件vsftpd.conf

anonymous_enable=NO:禁止匿名用户登录
local_enable=YES:允许本地用户登录
local_root=/var/www/html:设置本地用户的根目录为/var/www/html
chroot_list_enable=YES:激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名
allow_writeable_chroot=YES :允许锁定的用户有写的权限

3.创建chroot_list文件

vim /etc/vsftpd/chroot_list
team1  # 添加用户名

4.修改本地权限为

[root@centos7-1 vsftpd]# ll /var/www/
总用量 0
drwxr-xrwx+ 3 root root 39 10月 15 11:14 html

5.重启vsftpd

systemctl restart vsftpd

到这里,你的ftp服务器就搭建好了。

你可能感兴趣的:(Linux下搭建ftp服务器)