CentOS 6.8 安装vsftpd的方法步骤
vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的、开发源代码的ftp服务器软件。
vsftpd是一款在Linux发行版本中最受推崇的FTP服务器程序,小巧轻快、安全易用、支持虚拟用户、支持带宽限制等功能。
系统环境:CentOS 6.8 64位
vsftpd版本 :vsftpd-2.22-21.el6.x86_64
1.执行命令
yum -y install vsftpd
ps:(1)是否使用sudo权限执行根据具体环境来决定;(2)rpm -qa | grep vsftpd可通过这个检查是否已安装vsftpd;(3)默认配置文件在/etc/vsftpd/vsftpd.conf.
2.在跟目录下新建文件夹:/product/ftpfile/
3.添加一个匿名用户ftpuser,命令:
sudo useradd ftpuser -d /product/ftpfile -s /sbin/nologin
4.修改文件ftpfile的权限,命令:
sudo chown -R ftpuser.ftpuser ./ftpfile/
5.重置ftpuser的密码,命令:
sudo passed ftpuser
6.进入到/etc/vsftpd目录下,新建文件chroot_list,增加内容:ftpuser:
把刚才新建的虚拟用户ftpuser添加到此配置文件中,后续要引用。
7.在ftpfile文件夹下新建一个文件index.html,输入内容:
this is a ftpfile demo
/ftpfile
8.打开/etc/vsftpd目录下的文件:vsftpd.conf, 修改或增加如下配置:
local_root=/product/ftpfile
#chroot_local_user=YES
anon_root=/product/ftpfile
use_localtime=YES
#匿名
#anonymous_enable=YES
anonymous_enable=NO
#pasv_enable=YES
pasv_min_port=61001
pasv_max_port=62000
9.添加配置到防火墙中:
防火墙位置:
添加配置:
#vsftpd
-A INPUT -p TCP --dport 61001:62000 -j ACCEPT
-A OUTPUT -p TCP --sport 61001:62000 -j ACCEPT
-A INPUT -p TCP --dport 20 -j ACCEPT
-A OUTPUT -p TCP --sport 20 -j ACCEPT
-A INPUT -p TCP --dport 21 -j ACCEPT
-A OUTPUT -p TCP --sport 21 -j ACCEPT
重启防火墙:
sudo service iptables restart
重启vsftpd:
sudo service vsftpd restart
ps:第一次启动是Shutting down vsftp是failed不用理会,因为这是重启命令,保证Starting vsftpd是OK即代表vsftpd服务成功。
10.修改安全组策略:sudo vi /etc/selinux/config,检查一下,确保SELINUX=disabled。
为了避免验证出现550拒绝访问错误,输入命令:
sudo setsebool -P ftp_home_dir 1
11.浏览器启动:ftp://120.77.86.200, 输入用户名ftpuser和密码xxx:
常用命令:
sudo service vsftpd start # 启动
sudo service vsftpd stop # 关闭
sudo service vsftpd restart # 重启
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 多线程之传统多线程
- ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)
- Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】
- 云原生应用的12要素
- Universal-Image-Loader源码分析,及常用的缓存策略
- ios textView跟随键盘的移动
- Android:屏保软件的开发
- CoordinatorLayout
- 从零开始的Spring Security Oauth2(二)
- 简化Swagger使用的自制Starter:spring-boot-starter-swagger,欢迎使用和吐槽
- demo3同通讯录展示的方式分组排序
- Android手势研究(textview及listview对比验证)
- demo2动态加载显示商品详情页
- demo1 动态显示view或弹框 动态隐藏view或弹框
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在flask中使用flask-migrate管理数据库
- 直播视频网站源码,实现移动端的按钮拖动
- 解决k8s集群环境内存不足导致容器被kill问题
- NLP之pyhanlp安装及其使用
- nginx 代理 web socket 报错“WebSocket is already in CLO
- IDEA为每个文件加入姓名,日期,版本号
- nginx 代理 web socket 报错“WebSocket is already in CLO
- 用sklearn机器学习预测泰坦尼克号生存概率
- Kaggle共享单车数据分析——数据可视化
- 掌握这些SQL面试题再也不怕面试懵逼了
- 用二叉树实现自动求导(Python版)
- 上海展盟网络科技有限公司的 gamebox 组件注入进程导致软件崩溃
- IdentityServer4 3.1.x 迁移到 4.x
- 淘宝用户行为数据分析
- PyTorch中Transformer模型的搭建