/etc/vsftpd.conf详解
#################匿名权限控制###############
anonymous_enable=YES #是否启用匿名用户
no_anon_password=YES #匿名用户login时不询问口令
下面这四个主要语句控制这文件和文件夹的上传、下载、创建、删除和重命名。
anon_upload_enable=(yes/no); #控制匿名用户对文件(非目录)上传权限。
anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限
anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限
anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名
注:匿名用户下载是使用的是nobody这个用户,所以相应的O这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置
write_enable=YES #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他)
anon_root=(none) #匿名用户主目录
anon_max_rate=(0) #匿名用户速度限制
anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073)
chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever #匿名上传文件所属用户名
#################本地用户权限控制###############
| 参数 | 参数解释 |
| write_enable=YES | #可以上传(全局控制) 删除,重命名 |
| local_umask | 为本地用户设置文件创建的umask值。Default: 077 |
| userlist_enable=YES | 限制了这里的用户不能访问。如果启用,vsftpd将从userlist文件给出的文件名中加载一个userlist_file,如果用户试图使用该文件中的名称登录,则在请求密码之前将被拒绝。 |
| local_root | 设置一个本地用户登录后进入到的目录 |
| user_config_dir | 设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名 |
| download_enable | 限制用户的下载权限。 Default: YES,如果设置NO,所有的下载请求都会被拒绝。 |
| chroot_list_enable=YES | 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改主目录。如果激活,可能会提供一个本地用户的列表(chroot_list_file),这些用户在登录时被放置在他们的主目录的chroot()监狱中。如果将chroot_local_user设置为YES,则含义略有不同。在这种情况下,列表变成了不被放置在chroot()监狱中的用户列表。默认情况下,包含此列表的文件是/etc/vsftpd/chroot_list,但您可以使用chroot_list_file设置覆盖它。Default: NO |
| chroot_local_user | 如果设置为YES,本地用户将(默认情况下)在登录后在其主目录中放入chroot()监狱。警告:此选项具有安全含义,特别是当用户有上载权限或shell访问时。只有当你知道自己在做什么时,才会去做。请注意,这些安全含义不是vsftpd特有的。它们适用于所有的FTP守护进程,它们可以将本地用户放在chroot() jails中。 Default: NO |
| chroot_list_file=/etc/vsftpd/chroot_list |
指定限制的用户文件 |
| user_config_dir= |
后面跟存放配置文件的目录。用来实现不同用户不同权限。#在vsftpd.conf文件中加入这一句, #在相应的目录里面,为每个用户创建自己的配置文件,用来实现不同的权限 |
可以通过以下三条配置文件来控制用户切换目录。
chroot_list_enable=YES/NO #设置是否启用chroot_list_file配置项指定的用户列表文件。
#如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 .默认值为yes。
chroot_list_file=/etc/vsftpd/chroot_list #指出被锁定在自家目录中的用户的列表文件。
chroot_list_enable=YES
通过与chroot_local_user=YES/NO搭配能实现以下几种效果:
1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
举个例子:
假设有ftp1, ftp2两个ftp用户, 计划让ftp1用户锁定在主目录下,不允许切换到其他目录, 但是允许ftp2用户自由切换目录,则可以分如下两种方式实现:
方式一:
令:
chroot_local_user=YES
chroot_list_enable=YES
/etc/vsftpd/chroot_list名单列表为:
ftp2
更新一个情况:
如遇到这个错误: OOPS: vsftpd: refusing to run with writable root inside chroot() 原因:是由于vsftpd从2..5版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。 解决方法有以下两个:
.在配置文件中增加一行:(推荐使用)
#vim /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES
.更改根目录的权限:(此方法会让远程目录没有写的权限,不推荐使用)
假设根目录为/var/ftproot
#chwon a-w /var/ftproot
解释:chroot_local_user=YES将所有用户限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=YES,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。
方式二:
令:
chroot_local_user=NO
chroot_list_enable=YES
/etc/vsftpd/chroot_list名单列表为:
ftp1
解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。
其他情况:
对于chroot_local_user和chroot_list_enable的组合还有这样两种情况:
chroot_local_user=YES
chroot_list_enable=NO
和
chroot_local_user=NO
chroot_list_enable=NO
当chroot_list_enable=NO时,就不再启用chroot_list_file,此时就是单纯的把全部用户限定或不限定在主目录下了!
#################虚拟用户设置#################
虚拟用户使用PAM认证方式。
| pam_service_name=vsftpd | #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。 |
| check_shell=YES | #(注意:仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 ) |
| guest_enable= YES/NO | #启用虚拟用户。默认值为NO。 |
| guest_username=ftp | #这里用来映射虚拟用户。默认值为ftp。 |
| virtual_use_local_privs=YES/NO | #当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。 #当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。 |
#################访问控制设置#################
两种控制方式:一种控制主机访问,另一种控制用户访问。
1、控制主机访问:
tcp_wrappers=YES/NO
设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
比如:若要仅允许192.168.10.1—192.168.10.254的用户可以连接FTP服务器,
则在
/etc/hosts.allow
/etc/hosts.deny
文件中添加以下内容:
其格式如下:
限制的服务:ip(网段)
vsftpd:192.168.1.
vsftpd:192.168.1.12
vsftpd:192.168.1.0/255.255.255.0这里不能写成192.168.1.0/24
2、控制用户访问:
vsftpd.ftpusers #用于保存不允许进行FTP登录的本地用户帐号。就是vsftp用户的黑名单
vsftpd.user_list
(1)设置禁止vsftpd.user_list文件中的用户登录:要在主配置文件vsftpd.conf中修改如下两项,
userlist_enable=yes
userlist_deny=yes
说明:配置完以后,除了vsftpd.ftpusers文件和vsftpd.user_list文件中记录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。
(2)设置只允许vsftpd.user_list文件中的用户登录;同样的道理要把主配置文件vsftpd.conf 中的语句修改如下两项:
userlist_enable=yes
userlist_deny=no
说明:配置完以后,只允许vsftpd.user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。
###################超时设置##################
| idle_session_timeout=600 | #空闲连接超时 |
| data_connection_timeout=120 | #数据传输超时 |
| ACCEPT_TIMEOUT=60 | #PAVS请求超时 |
| connect_timeout=60 | #PROT模式连接超时 |
################服务器功能选项###############
| xferlog_enable=YES | #开启日记功能 |
| xferlog_std_format=YES | #使用标准格式 |
| log_ftp_protocol=NO | #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用. |
| pasv_enable=YES | #允许使用pasv模式 |
| pasv_promiscuous=NO | #关闭安全检查,小心呀. |
| port_enable=YES | #允许使用port模式 |
| tcp_wrappers=YES | #开启tcp_wrappers支持 |
| pam_service_name=vsftpd | #定义PAM 所使用的名称,预设为vsftpd。 |
| nopriv_user=nobody | #当服务器运行于最底层时使用的用户名 |
| pasv_address=(none) | #使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转) |
| ls_recurse_enable=YES | #是否能使用ls -R命令以防止浪费大量的服务器资源 |
| one_process_model | #是否使用单进程模式 |
| listen=YES | 绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式 |
| text_userdb_names=NO | #当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启 |
| use_localtime=NO | #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果 |
| use_sendfile=YES | #测试平台优化 |
################信息类设置################
| ftpd_banner=welcome to FTP | #login时显示欢迎信息.如果设置了banner_file则此设置无效 |
| dirmessage_enable=YES | #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容 |
| setproctitle_enable=YES | #显示会话状态信息,关! |
############## 文件定义 ##################
| chroot_list_file=/etc/vsftpd/vsftpd.chroot_list | #定义不能更改用户主目录的文件 |
| userlist_file=/etc/vsftpd/vsftpd.user_list | #定义限制/允许用户登录的文件 |
| banner_file=/etc/vsftpd/banner | #定义登录信息文件的位置 |
| banned_email_file=/etc/vsftpd.banned_emails | #禁止使用的匿名用户登陆时作为密码的电子邮件地址 |
| xferlog_file=/var/log/vsftpd.log | #日志文件位置 |
| message_file=.message | #目录信息文件 |
############## 目录定义 #################
| user_config_dir=/etc/vsftpd/userconf | #定义用户配置文件的目录 |
| local_root=webdisk | #此项设置每个用户登陆后其根目录为/home/username/webdisk.#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的. |
| anon_root=/var/ftp | #匿名用户登陆后的根目录 |
#############用户连接选项#################
| max_clients=100 | #可接受的最大client数目 |
| max_per_ip=5 | #每个ip的最大client数目 |
| connect_from_port_20=YES | #使用标准的20端口来连接ftp |
| listen_address=192.168.0.2 | #绑定到某个IP,其它IP不能访问 |
| listen_port=2121 | #绑定到某个端口 |
| ftp_data_port=2020 | #数据传输端口 |
| pasv_max_port=0 | #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。 |
| pasv_min_port=0 | #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。 |
#############数据传输选项#################
| anon_max_rate=51200 | #匿名用户的传输比率(b/s) |
| local_max_rate=5120000 | #本地用户的传输比率(b/s) |
#############安全选项####################
| Idle_session_timeout=600 | #(用户会话空闲后10分钟) |
| Data_connection_timeout=120 | #(将数据连接空闲2分钟断) |
| Accept_timeout=60 | #(将客户端空闲1分钟后断) |
| Connect_timeout=60 | #(中断1分钟后又重新连接) |
| Local_max_rate=50000 | #(本地用户传输率50K) |
| Anon_max_rate=30000 | # (匿名用户传输率30K) |
| Pasv_min_port=50000 | #将客户端的数据连接端口最小为50000 |
| Pasv_max_port=60000 | #将客户端的数据连接端口最小大为60000 |
| Max_clients=200 | #(FTP的最大连接数) |
| Max_per_ip=4 | #(每IP的最大连接数) |
| Listen_port=5555 | #(从5555端口进行数据连接) |
有什么错误请各位读者指出,谢谢!!
/etc/vsftpd.conf详解的更多相关文章
- vsftpd.conf 详解与实例配置
#################匿名权限控制############### anonymous_enable=YES #是否启用匿名用户 no_anon_password=YES #匿名用 ...
- vsftpd.conf 详解
//不允许匿名访问 anonymous_enable=NO //设定本地用户可以访问.注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问 local_enable=YES // ...
- vsftpd配置文件详解 ---配置解说
vsftpd配置文件详解 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名 ...
- vsftpd配置文件详解(转)
vsftpd配置文件详解 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2> ...
- Redis:默认配置文件redis.conf详解
转: Redis:默认配置文件redis.conf详解 # Redis配置文件样例 # Note on units: when memory size is needed, it is possibl ...
- Redis配置文件redis.conf详解
一.Redis配置文件redis.conf详解 # Note on units: when memory size is needed, it is possible to specifiy # it ...
- linux离线部署redis及redis.conf详解
一.离线部署redis 由于博主部署的虚拟机没有网络也没有gcc编译器,所以就寻找具备gcc编译器的编译环境把redis编译安装好,Copy Redis安装目录文件夹到目标虚拟机的目录下.copy时r ...
- yum的配置文件yum.conf详解
说明:经过网上抄袭和自己的总结加实验,非常详细,可留作参考. yum的配置一般有两种方式: 一种是直接配置/etc目录下的yum.conf文件, 另外一种是在/etc/yum.repos.d目录下 ...
- /etc/security/limits.conf 详解与配置
目录 一. /etc/security/limits.conf 详解 /etc/security/limits.conf 配置解析 /etc/security/limits.d/ 目录 二. ulim ...
随机推荐
- Hadoop Hive概念学习系列之hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建(五)
说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. 以 ...
- JavaScript设计模式-18.享元模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 微服务Kong(四)——添加插件
在本节中,您将学习到,如何配置使用KONG的插件来管理您的API.KONG的核心原则之一就是通过插件来实现API的扩展.插件可以使您更为简单的扩展和管理您的API. 在以下的步骤中,您将通过配置key ...
- 什么是 JWT -- JSON WEB TOKEN
看链接:http://www.jianshu.com/p/576dbf44b2ae 来个工具类: import java.io.Serializable; import java.util.Date; ...
- java注释详解--javadoc注释
一. Java注释分类// 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写法如下: /** * ...... ...
- 浅谈javascript函数,变量声明及作用域
javascript函数跟变量的声明.作用域这些概念网上都已经讲烂了. 这里写个博客,也相当于做个笔记. 变量声明 首先看个例子: var globalVar = "gv"; fu ...
- 四大CPU体系结构:ARM、X86/Atom、MIPS、PowerPC
补充介绍一下RISC:RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机) ...
- [转]MONTHS_BETWEEN Function - Oracle to SQL Server Migration
本文转自:http://www.sqlines.com/oracle-to-sql-server/months_between In Oracle, MONTHS_BETWEEN(date1, dat ...
- Orchard源码:热启动
概述 IIS线程池中的线程数量是有限制的.当有多个长时间请求时,可能会耗尽IIS可用线程.出现503错误.在MVC中.当遇到非CPU操作的长时间请求时,MVC提供了异步方法来解决这个问题. 例:利用a ...
- c# 删除文件,清理删除文件
c# 删除程序占用的文件,清理删除文件,彻底删除文件,解除文件占用 文件打开时,以共享读写模式打开 FileStream inputStream = new FileStream(name, File ...