当前位置: 首页 > news >正文

Linux上安装FTP

1、登录FTP,执行安装命令

yum -y install vsftpd

2、启动FTP服务器,设置开启自启动

systemctl enable vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service  #查看状态, 显示active说明FTP启动成功

3、修改FTP配置文件/etc/vsftpd/vsftpd.conf

以下参数比较重要,需要修改:

# 是否开启匿名用户,匿名都不安全,默认NO
anonymous_enable=NO
# 当设定为YES时,使用者上传与下载日志都会被记录起来
xferlog_enable=YES
# 日志成为std格式
xferlog_std_format=YES
# 上传与下载日志存放路径
xferlog_file=/var/log/xferlog# 通过搭配能实现以下几种效果:
# ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
# ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录
# ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录
# ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录
# 限制用户只能在自己的目录活动
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list# 监听ipv6端口
listen_ipv6=YESport_enable=YES
pasv_enable=YES
pasv_min_port=64000
pasv_max_port=65000pam_service_name=vsftpd
# 使用允许登录的白名单,在/etc/vsftpd/user_list文件中添加新建的用户ftpuser
userlist_enable=YES
# 是否使用user_list作为黑名单,前提是userlist_enable=YES,我们这里不启用,因为禁止访问名单在/etc/vsftpd/ftpusers
userlist_deny=NO
tcp_wrappers=YES
allow_writeable_chroot=YES
# ftp访问目录
local_root=/home/uploadPath/gz

完整配置文件参数详解:

# 是否开启匿名用户,匿名都不安全,默认NO
anonymous_enable=NO
# 允许本机账号登录FTP
# 这个设定值必须要为YES时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
local_enable=YES
# 允许账号都有写操作
write_enable=YES
# 本地用户创建文件或目录的掩码
# 意思是指:文件目录权限:777-022=755,文件权限:666-022=644
local_umask=022
# 进入某个目录的时候,是否在客户端提示一下
dirmessage_enable=YES
# 当设定为YES时,使用者上传与下载日志都会被记录起来
xferlog_enable=YES
# 日志成为std格式
xferlog_std_format=YES
# 上传与下载日志存放路径
xferlog_file=/var/log/xferlog
# 开放port模式的20端口的连接
connect_from_port_20=YES
# 关于系统安全的设定值:
# ascii_download_enable=YES(NO)
# 如果设定为YES,那么client就可以使用ASCII格式下载档案
# 一般来说,由于启动了这个设定项目可能会导致DoS的攻击,因此预设是NO
# ascii_upload_enable=YES(NO)
# 与上一个设定类似的,只是这个设定针对上传而言,预设是NO
ascii_upload_enable=NO
ascii_download_enable=NO
# 通过搭配能实现以下几种效果:
# ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
# ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录
# ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录
# ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录
# 限制用户只能在自己的目录活动
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
# 可以更改ftp的端口号,使用默认值21
# listen_port=60021
# 监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
listen=NO
# 监听ipv6端口
listen_ipv6=YES
# 打开主动模式
port_enable=YES
# 启动被动式联机(passivemode)
pasv_enable=YES
# 被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的
# 上面两个是与passive mode使用的port number有关,如果您想要使用64000到65000这1000个port来进行被动式资料的连接,可以这样设定
# 这两项定义了可以同时执行下载链接的数量
# 被动模式起始端口,0为随机分配
pasv_min_port=64000
# 被动模式结束端口,0为随机分配
pasv_max_port=65000
# 文件末尾添加
# 这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd,认证用
pam_service_name=vsftpd
# 使用允许登录的名单,在/etc/vsftpd/user_list文件中添加新建的用户ftpuser
userlist_enable=YES
# 是否使用user_list作为黑名单,前提是userlist_enable=YES,我们这里不启用,因为禁止访问名单在/etc/vsftpd/ftpusers
userlist_deny=NO
# 允许限制在自己的目录活动的用户拥有写权限
# 不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
# 当然我们都习惯支持TCP Wrappers的啦
# Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性
tcp_wrappers=YES
# FTP访问目录
local_root=/home/uploadPath/gz

4、修改文件权限, var/ftp/pub为FTP服务默认的文件目录

chmod o+w /var/ftp/pub/

5、关闭防火墙

systemctl stop firewalld

6、创建新的FTP用户,并设置密码:

adduser ftpuser
passwd ftpuser

7、将新用户添加到用户列表

echo ftpuser >> /etc/vsftpd/user_list

8、创建/etc/vsftpd/chroot_list文件

touch  /etc/vsftpd/chroot_list  #这里不需要把用户ftpuser加入, 但是需要创建这个空文件

9、重启FTP服务器(一定要重启

systemctl restart vsftpd.service

10、接着使用用户ftpuser登陆FTP服务器就可以了

http://www.lryc.cn/news/157999.html

相关文章:

  • C/C++使用GDAL库编程窍门之——通用可移植性库(Common Portability Library, CPL)
  • Linux container_of() 宏定义
  • 详解python中的序列类型---列表list
  • Unity 引擎中国版 “团结引擎” 发布
  • MindsDB为许多不支持内置机器学习的数据库带来了机器学习功能
  • 世界级黑客丨电脑犯罪界的汉尼拔
  • 【Matlab】Matlab实现数据的动态显示方法
  • 【Android】SDK安装及配置
  • ETCD详解
  • React笔记(五)hook
  • vue3中使用viewerjs实现图片预览效果
  • Erlang:Linux下使用observer、debugger进行调试
  • 2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析详解+思路+Python代码
  • 一生一芯10——verilator v5.008环境搭建
  • 信息化发展27
  • leetcode做题笔记129. 求根节点到叶节点数字之和
  • 任务管理系统所需功能概述
  • 一文学会K8s集群搭建
  • Win10右键 nvidia rtx desktop manager 怎么删除(最新)
  • MySQL加密的几种常见方式
  • Android文字识别-阿里云OCR调用
  • 度矩阵、邻接矩阵
  • 20个经典巧妙电路合集
  • 2023全国大学生数学建模ABCDE选题建议,思路模型,小白要怎么选?难度怎么样
  • 【力扣每日一题】2023.9.5 从两个数字数组里生成最小数字
  • 跳出Lambda表达式forEach()循环解决思路
  • 2023年度AWS SAP直冲云霄训练营学习分享
  • 2023高教社杯 国赛数学建模E题思路 - 黄河水沙监测数据分析
  • 06_快速入门案例实战之电商网站商品管理:集群健康检查,文档CRUD
  • 机车整备场数字孪生 | 图扑智慧铁路