vsftpd服务权限配置

news2025/3/27 10:20:57

主配置文件:/etc/vsftpd/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用户,other要有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=022  		#本地用户上传文件的umask
userlist_enable=YES 	#限制了这里的用户不能访问
local_root=  			#设置一个本地用户登录后进入到的目录
user_config_dir=  		#设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名
download_enable=  		#限制用户的下载权限

chown_uploads=YES 		#所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever	#匿名上传文件所属用户名

chroot_list_enable=YES # 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_file=/etc/vsftpd/chroot_list	# 指定限制的用户文件,此列表中用户被锁定用户主目录

参数:chroot_list_enable、chroot_local_user、chroot_list_file搭配使用

# 在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
chroot_list_enable=YES
chroot_local_user=NO
chroot_list_file=/etc/vsftpd/chroot_list

# 所有的用户均不能切换到其他目录
chroot_list_enable=NO
chroot_local_user=YES

# 所有的用户均可以切换到其他目录
chroot_list_enable=NO
chroot_local_user=NO

只能上传。不能下载、删除、重命名。

cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

对于参数的详细的解释

ABOR - abort a file transfer 取消文件传输
CWD - change working directory 更改目录
DELE - delete a remote file 删除文件
LIST - list remote files 列目录
MDTM - return the modification time of a file 返回文件的更新时间
MKD - make a remote directory 新建文件夹
NLST - name list of remote directory
PASS - send password
PASV - enter passive mode
PORT - open a data port 打开一个传输端口
PWD - print working directory 显示当前工作目录
QUIT - terminate the connection 退出
RETR - retrieve a remote file 下载文件
RMD - remove a remote directory
RNFR - rename from
RNTO - rename to
SITE - site-specific commands
SIZE - return the size of a file 返回文件大小
STOR - store a file on the remote host 上传文件
TYPE - set transfer type
USER - send username

# less common commands:

ACCT* - send account information
APPE - append to a remote file
CDUP - CWD to the parent of the current directory
HELP - return help on using the server
MODE - set transfer mode
NOOP - do nothing
REIN* - reinitialize the connection
STAT - return server status
STOU - store a file uniquely
STRU - set file transfer structure
SYST - return system type

只能下载、删除、重命名。不能上传。

cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

虚拟用户配置,虚拟用户使用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)。

访问控制设置:控制主机访问与控制用户访问
控制主机访问:

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文件中添加以下内容:

vsftpd:192.168.1.
vsftpd:192.168.1.12
vsftpd:192.168.1.0/255.255.255.0		# 192.168.1.0/24格式vsftp识别不了

控制用户访问:

vsftpd.ftpusers		# 用于保存不允许进行FTP登录的本地用户帐号,就是vsftp用户的黑名单;
vsftpd.user_list
1、设置禁止vsftpd.user_list文件中的用户登录,需要在主配置文件/etc/vsftpd/vsftpd.conf中修改如下两项
userlist_enable=yes
userlist_deny=yes
# 除了vsftpd.ftpusers文件和vsftpd.user_list文件中记录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。
 
2、设置只允许vsftpd.user_list文件中的用户登录,需要在主配置文件/etc/vsftpd/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				# 将客户端的数据连接端口改在
pasv_max_port=60000				# 50000—60000之间

max_clients=200					# FTP的最大连接数
max_per_ip=4					# 每IP的最大连接数
listen_port=5555				# 从5555端口进行数据连接

配置FTP匿名用户的主目录为/data/ftp_data/user01。下载带宽限制为100kB/s

建立一个名为abc,口令为xyz的FTP账户。下载带宽限制为500kB/s。

设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES
anon_root=/data/ftp_data/user01
anon_max_rate=100000
local_enable=YES
local_max_rate=500000
max_clients=100
max_per_ip=3
connect_timeout=300

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

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

相关文章

操作系统——(管程、线程、进程通信)

目录 一、管程机制 (1)管程定义 (2)特点: 二、进程通信 (1)概念 (2)高级通信机制 三、线程 (1)概念 (2)与进程比较…

Sqlserver安全篇之_启用和禁用Named Pipes的案列介绍

https://learn.microsoft.com/zh-cn/sql/tools/configuration-manager/named-pipes-properties?viewsql-server-ver16 https://learn.microsoft.com/zh-cn/sql/tools/configuration-manager/client-protocols-named-pipes-properties-protocol-tab?viewsql-server-ver16 默认…

Web开发-JS应用原生代码前端数据加密CryptoJS库jsencrypt库代码混淆

知识点: 1、安全开发-原生JS-数据加密&代码混淆 2、安全开发-原生JS-数据解密安全案例 一、演示案例-WEB开发-原生JS&第三方库-数据加密 前端技术JS实现: 1、非加密数据大致流程: 客户端发送->明文数据传输-服务端接受数据->…

比特币牛市还在不在

在加密货币的风云世界里,比特币的一举一动始终牵动着投资者们的神经。近期比特币的涨幅动作,再次引发了市场对于牛市是否仍在延续的激烈讨论。 在深入探索比特币市场的过程中,获取全面且及时的资讯至关重要。您可以通过访问Techub News&#…

Python、MATLAB和PPT完成数学建模竞赛中的地图绘制

参加数学建模比赛时,很多题目——诸如统计类、数据挖掘类、环保类、建议类的题目总会涉及到地理相关的情景,往往要求我们制作与地图相关的可视化内容。如下图,这是21年亚太赛的那道塞罕坝的题目,期间涉及到温度、降水和森林覆盖率…

跨平台RTSP高性能实时播放器实现思路

跨平台RTSP高性能实时播放器实现思路 目标:局域网100ms以内超低延迟 一、引言 现有播放器(如VLC)在RTSP实时播放场景中面临高延迟(通常数秒)和资源占用大的问题。本文提出一种跨平台解决方案,通过网络层…

编写一个简单的chrome截图扩展

文件结构: screenshot |-- background.js ---> service_worker运行的js |-- images ---> 图片 | |-- logo-128x128.png | |-- logo-16x16.png | |-- logo-32x32.png | -- logo-48x48.png -- manifest.json --->…

吴恩达机器学习笔记复盘(六)梯度下降算法

简介 梯度下降(Gradient Descent)是一种常用的优化算法,广泛应用于机器学习、深度学习等领域,在这里是用于求J(w,b)局部最小值。 我自己觉得这样说有点过于抽象。换个直观点的说法就是,一个人…

【机器学习chp14 — 3】生成式模型—生成对抗网络GAN(超详细分析,易于理解,推导严谨,一文就够了)

目录 三、生成对抗网络 ( Generative Adversarial Networks,GAN ) 1、GAN的基本思想 (1)生成器与判别器的基本结构与演变 (2)“对抗”机制及名词由来 2、GAN训练的基本算法 (1)网络初始化与…

机器人打磨控制技术

工具姿态调整运动 法线方向对齐运动:机器人实时调整工具姿态,使打磨工具的轴线与工件曲面的法线方向一致。例如,在球面打磨时,工具需始终垂直于球面切线。角度补偿运动:针对倾斜或不规则曲面,通过调整机器人…

K8S学习之基础四十:K8S配置altermanager发送告警到钉钉群

配置altermanager发送告警到钉钉群 ​ 创建钉钉群,设置机器人助手(必须是管理员才能设置),获取webhook webhook: https://oapi.dingtalk.com/robot/send?access_token25bed933a52d69f192347b5be4b2193bc0b257a6d9ae68d81619e3ae3d93f7c6…

Spring Boot + Spring Integration整合MQTT打造双向通信客户端

1. 概述 本文分两个章节讲解MQTT相关的知识,第一部份主要讲解MQTT的原理和相关配置,第二个章节主要讲和Spring boot的integration相结合代码的具体实现,如果想快速实现功能,可直接跳过第一章节查看第二章讲。 1.1 MQTT搭建 为了…

Java 填充 PDF 模版

制作 PDF 模版 安装 OnlyOffice 从 OnlyOffice 官网下载 OnlyOffice Desktop,安装过程很简单,一路下一步即可。用 OnlyOffice 制作 PDF 模版(表单) 使用 OnlyOffice 表单设计器,制作表单,如下图 注意命名…

Vulnhub-dedecms织梦通关攻略

姿势一、通过文件管理器上传WebShell 第一步:进入后台,找到文件管理器上传木马文件 第二步:使用蚁剑进行连接 #文件地址 http://localhost/dedecms/shell.php 姿势二、修改模板⽂件拿WebShell 第一步:修改模板文件,删除…

数据集获取

sklearn数据集 sklearn有四部分数据。其中sklearn的数据集有两部分真实的数据,一部分嵌入到了sklearn库中,即安装好sklearn后就自带了一部分数据,这些数据的规模比较小称为small toy datasets ,还有一部分数据是需要在网上下载的,sklearn提供了下载的api接口,这些数据规…

实验12深度学习

实验12深度学习 一、实验目的 (1)理解并熟悉深度神经网络的工作原理; (2)熟悉常用的深度神经网络模型及其应用环境; (3)掌握Anaconda的安装和设置方法,进一步熟悉Jupyte…

2024年消费者权益数据分析

📅 2024年315消费者权益数据分析 数据见:https://mp.weixin.qq.com/s/eV5GoionxhGpw7PunhOVnQ 一、引言 在数字化时代,消费者维权数据对于市场监管、商家诚信和行业发展具有重要价值。本文基于 2024年315平台线上投诉数据,采用数…

零知识证明:区块链隐私保护的变革力量

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

【CSS文字渐变动画】

CSS文字渐变动画 HTML代码CSS代码效果图 HTML代码 <div class"title"><h1>今天是春分</h1><p>正是春天到来的日子&#xff0c;花都开了&#xff0c;小鸟也飞回来了&#xff0c;大山也绿了起来&#xff0c;空气也有点嫩嫩的气息了</p>…

Qt 控件概述 QLabel

目录 QLabel显示类控件 label如何做到与窗口同步变化 边框 Frame QLabel显示类控件 ​​ ​​ textFormat &#xff1a;设置文件格式 ​ Pixmap &#xff1a;标签图片 label如何做到与窗口同步变化 Qt中对应用户的操作 &#xff1a; 事件和信号 拖拽窗口大小就会触发…