cetos 中vsftpd从安装到配置完全教程

1 安装并启动服务

[root@edwin.org]#rpm –qa | grep vsftpd ;查看是否安装vsftpd服务

[root@edwin.org]#yum install vsftpd ;安装vsftpd服务

[root@edwin.org]/etc/init.d/vsftpd start ;启动服务

[root@edwin.org]#chkconfig vsftpd on ;让系统服务随着系统启动而启动

配置相关文档:

#vi /etc/vsftpd/vsftpd.conf

复制代码


禁止匿名用户访问:

anonymous_enable=YES,将YES改为NO


在文件末尾加如下的设置:

pasv_enable=YES ;允许被动模式

pasv_min_port=10000 ;被动模式使用端口范围

pasv_max_port=10010

local_max_rate=200000 ;用户宽带限制

chroot_local_user=YES ;禁用户离开主目录

注意:设置pasv端口后,需要修改防火墙,如在centOs里,修改如下:
iptables -A RH-Firewall-1-INPUT -p tcp --dport 10000:10010 -j ACCEPT
2. 添加虚拟主机用户
添加用户edwin, 用户目录指定为/var/www/ftp/edwin,且此用户不能登陆系统.

#mkdir /var/www/ftp/edwin

#useradd –s /sbin/nologin -g ftp –d /var/www/ftp/edwin edwin

注-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/var/www/netseek.com

#passwd edwin 这是我设置的密码

#chown –R edwin:ftp /var/www/ftp/edwin

 

然后修改selinux,允许用户在家目录写入数据
setsebool -P allow_ftpd_anon_write off
setsebool -P ftp_home_dir on

四, VsFTPd相关的配置详解
1.匿名用户相关设置
anonymous_enable=YES ,将YES改为NO, 禁止匿名用户登陆
#non_mkdir_write_enable=YES ,将#注释去掉,允许匿名用户创建目录
#non_upload_enalbe=YES ,将#去掉,允许匿名用户上传
anon_world_readable_only=YES ,允许匿名用户下载,默认是禁止的,这个可以自行添加。
Anon_other_write_enable=YES ,将其设为YES的话,就除了上传和创建目录外,还可以重命名,删除文件,默认是NO
no_anon_password=NO ,将其设为YES,匿名用户不会查询用户密码直接登陆。
ftp_username=ftp ,匿名用户登陆系统的账号默认为ftp,此项最好不要改,否则设置不当会给系统的安全带来威胁
复制代码
2.FTP服务端口的指定
listen_port=8021 ,指定命令通道为8021,默认为21
listen_data_port=8020 ,指定数据通道为8020,默认为20
复制代码
3.上传模式的设置
pasv_enable=YES ,是否允使用被动模式,默认是允许的。
pasv_min_port=10000 ,指定使用被动模式时打开端口的最小值
pasv_max_port=10004 ,指定使用被动模式时打开端口的最大值。
复制代码
4.Vsftp服务器指定IP地址
listen_address=192.168.0.21 ,指定FTP,IP地址
复制代码
注:只有当vsftp运行于独立模式时才允许使用指定IP,如果在/etc/xinetd.d目录下已经建立了vsfpd文件,就要将该文件中的disable设置为yes,方可。
5. 锁定用户,禁止用户离开用户主目录
chroot_local_user=YES ,将其设为YES,就锁定在用户主目录,设为NO,可以切换
复制代码
将指定用户设置为锁定用户主目录:
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
复制代码
将其改为如下:
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
复制代码
将上面保存,再做如下操作:
#touch /etc/vsftpd/vsftpd.chroot_list
#vi /etc/vsftpd/vsftpd.chroot_list ,在该文件中加入用户名单,如:
netseek_com
复制代码
6.FTP服务器的流量控制
max_clients=100 ;允许的最大连接数,定义为100,默认为0,表没有限制
max_per_ip=5 ;每个IP允许的连接数,0表没有限制,需要运行于独立模式方可
anon_max_rate=50000 ;匿名用户最大带宽,单位为bps
local_max_rate=200000 ;系统用户最大带宽
如何对指定用户进行流量限制呢?
#vi /etc/vsftpd/vsftpd.conf,添加一行:
user_config_dir=/etc/vsftpd/userconf
#touch /etc/vsftpd/userconf/netseek_com 为netseek_com这个用户建立一个netseek_com文件
#vi /etc/vsftpd/userconf/netseek_com 添加以下内容
local_max_rate=100000
复制代码
保存重启服务即可.
7.定制欢迎信息
目录说明设置
#vi /etc/vsftpd/vsftpd.conf
#dirmessage_enable=YES,前的#去掉。
复制代码
然后我们定制一个.message,写上你想写的东西,然后把这个文件复制到各个用户的家目录中,就OK。
系统欢迎消息设置
ftpd_banner=Welcome to ftp.netseek.com , Yeah!!!
系统欢迎消息文件设置
banner_file=/etc/vsftpd/welcome 与ftpd_banner相类似,不同之处在于,banner_file指定欢迎文件.

转载于:https://www.cnblogs.com/xiaoshi1991/archive/2012/09/18/2690630.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 通讯录设计(五)

1、查找联系人 功能描述:按照姓名查看指定联系人信恿 查找联系人实现步骤 ●封装查找联系人函数 ●测试查找指定联系人 1.1封装查找联系人函数 实现思路:判断用户指定的联系人是否存在,如果存在显示信息,不存在则提示查无此人。 查找联系人代码: //4、查…

linux基础应用和常用技巧

1、处理特殊的文件名 假设Linux系统中有一个文件名叫“-aaa”,如果我们想对它进行操作,例如现在要删除它,如果我们按照一般的删除方法在命令行中输入rm -aaa命令,界面将会提示我们是无效选项(invalid opti…

C++ 通讯录设计(六)

1、修改联系人 功能描述:按照姓名重新修改指定联系人 修改联系人实现步骤 ●封装修改联系人函数 ●测试修改联系人功能 1.1封装修改联系人函数 实现思路:查找用户输入的联系人,如果查找成功进行修改操作,查找失败提示查无此人 修改联系人代码: //5、修…

C++ 通讯录设计(七)

1、清空联系人 功能描述:清空通讯录中所有信息 清空联系人实现步骤 ●封装清空联系人函数 ●测试清空联系人 1.1封装清空联系人函数 实现思路:将通讯录所有联系人信息清除掉,只要将通讯录记录的联系人数量置为0,做逻辑清空即可。 清空联系人代码: //6、清空所有联…

c语言学习笔记十四

多目标文件的链接示例代码如下&#xff1a;test18.cchar stack[512];int top-1;void push(char c){stack[top]c;}char pop(){return stack[top--];}int is_empty(void){return top-1;}test19.c#include <stdio.h>int a,b1;int main(void){push(a);push(b);push(c);while(…

C++ 程序运行前内存分区模型

C核心编程 本阶段主要针对C面向对象编程技术做详细讲解,探讨C中的核心和精髓。 1、内存分区模型 C程序在执行时&#xff0c;将内存大方向划分为4个区域 ●代码区:存放函数体的二进制代码,由操作系统进行管理的 ●全局区:存放全局变量和静态变量以及常量 ●栈区:|由编译器自动分…

[Grooy]List, Map and Range习题

1.Given the list [14, 12, 13, 11], express how we would obtain the List with these elements in descending order. def list [14,12,13,11]print list.sort().reverse() // output: [14,13,12,11]如果使用Ruby也是类似的list [14,12,13,11]#output: [14,13,12,11]print…

C++ 程序运行后的内存模型

程序运行后 栈区: 由编译器自动分配释放,存放函数的参数值,局部变量等 注意事项:不要返回局部变量的地址&#xff0c;栈区开辟的数据由编译器自动释放 #include<iostream> #include<string> using namespace std;int* func() {int a 10; //局部变量放在栈区&am…

C++ 堆区内存分配

#include<iostream> #include<string> using namespace std;int* func(int b) { //形参也放在栈区int * pnew int(10);return p; }//2、在堆区利用new开辟数组 void test02() {//创建10整型数据的数组&#xff0c;在堆区int * arr new int[10]; //10代表数组有1…

tomcat日志,用户以及启动时的一些问题

1.启动tomcat时候抛错 严重: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52) at org.apache.jasper.serv…

C++ 函数的引用传递

#include<iostream> #include<string> using namespace std;//1、值传递 void mySwap01(int a, int b) {int temp a;a b;b temp;cout << "mySwap01 a" << a << endl;cout << "mySwap01 b" << b << end…

C++ 引用本质就是一个指针常量

#include<iostream> #include<string> using namespace std;//发现是引用&#xff0c;转换为int* const ref &a;void func(int& ref) {ref 100; // ref是引用&#xff0c;转换为*ref 100}int main() {int a 10;//自动转换为int* const ref &a; 指…

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(1)...

应用程序的基本框架已经搭建好了&#xff0c;现在要做的是完成一个个的功能模块。先从简单做起&#xff0c;完成用户管理模块&#xff0c;该模块主要功能是使用一个Grid显示用户信息&#xff0c;并使用RowEditing进行用户的编辑、添加操作。Grid的分页则在Grid顶部使用分页工具…

C++ 常量引用

#include<iostream> #include<string> using namespace std;int main() {//常量引用//使用场景:用来修饰形参&#xff0c;防止误操作//int a 10;//加上const之后编译器将代码修改int temp 10; const int & ref temp; const int & ref 10;//引用必须引一…

高速pcb设计指南 1~8

http://bbs.ednchina.com/FORUM_POST_15_21830_0.HTM转载于:https://www.cnblogs.com/tureno/articles/2706904.html

C++ 函数参数的默认值和占位参数

3.2函数占位参数 C中函数的形参列表里可以有占位参数&#xff0c;用来做占位&#xff0c;调用函数时必须填补该位置 语法:返回值类型 函数名(数据类型){} 在现阶段函数的占位参数存在意义不大&#xff0c;但是后面的课程中会用到该技术 #include< iostream> using names…

Oracle递归查询

网上摘录。 一、树型表结构&#xff1a; 节点ID 上级ID 节点名称 二、公式&#xff1a; select 节点ID,节点名称,level from   表 connect by prior 节点ID上级节点ID start with 上级节点ID节点值 说明&#xff1a; 1、常见的树形结构为公司组织机构、地区…… 2、求节点I…

C++ 函数重载碰到默认的参数

#include<iostream> #include<string> using namespace std;//引用作为重载的条件 void func(int &a) { //非常量引用cout << " this is func" << endl; }void func(const int &a) { // 常量引用 const int &a 10; 合…

wzplayer for android V1.0快出炉了

关注我博客的朋友&#xff0c;发现我很久没有写博客了&#xff0c;因为最近在忙wzplayer 跨平台的事情,前些天在忙wzplayer 的opencv,opengles渲染的事情&#xff0c;最近正式在为wzplayer for android编译折腾.工作将接近尾声. 等待的朋友不要着急&#xff0c;wzplayer for an…