vsftp local_umask=022 要不很郁闷的!

2023-05-16

 先是最基本的配置,请看我的/etc/vsftpd/vsftpd.conf

###############################################################################
#接受匿名用户
anonymous_enable=YES
#匿名用户login时不询问口令
no_anon_password=YES
#接受本地用户
local_enable=YES

#可以上传(全局控制).若想要匿名用户也可上传则需要设置anon_upload_enable=YES,若想要匿名用户可以建立目录则需要设置anon_mkdir_write_enable=YES.这里禁止匿名用户上传,所以不设置这两项.
write_enable=YES
#本地用户上传文件的umask
local_umask=022


#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改
xferlog_enable=YES
#日志使用标准xferlog格式
xferlog_std_format=YES

 

#login时的欢迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#设置的话将覆盖上面的ftpd_banner设置,用户login时将显示/etc/vsftpd/banner中的内容
banner_file=/etc/vsftpd/banner
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES
#本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录(/etc/passwd的第六个字段)中.匿名用户的对应选项是anon_root
local_root=/var/ftp

#设置为YES则下面的控制有效
chroot_list_enable=YES
#若为NO,则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里选择YES.
chroot_local_user=YES


#若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES
#若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_deny=NO
#注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将无法login!!


#服务器以standalong模式运行,这样可以进行下面的控制
listen=YES
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=512000
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5


connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=vsftpd

##############################################################################

 

下面是我的/etc/vsftpd.user_list
##############################################################################

ftpuser
anonymous

##############################################################################
/etc/vsftpd.ftpusers可以使用系统自带的文件
/etc/vsftpd.chroot_list内容为空
接着建立系统用户ftpuser,将他加入ftp组并将/etc/passwd中他的记录的最后一个字段改成/sbin/nologin(禁止本地登录).
设置/var/ftp的所有者和所有组为root,权限为755
设置/var/ftp/pub的所有者为root,所有组为ftp,权限为775

至此vsftpd的基本配置就完成了.这里我们接受匿名用户anonymous和本地用户ftpuser的请求.anonymous只能下载,ftpuser可以下载和上传.他们登录后均在/var/ftp目录下且无法离开这个目录(被chroot了).ftpuser可以在/var/ftp/pub目录中建立目录和上传文件,上传文件的权限为755(设置了local_umask=022).匿名用户的传输比率为50kb/s,ftpuser的传输比率为500kb/s.可联接的最多客户数为100,每ip可联接的最多客户数为5.
如果需要使本地用户ftpput可以login,只需要将他加入/etc/vsftpd.user_list,要使他可以上传,只需将他加入ftp组.
接着我们可以在/var/ftp下的各个目录(包括/var/ftp)下建立.message文件,这样用户进入这个目录时vsftpd将显示.message的内容,你可以在这里面写上欢迎信息或者注意事项等等.另外可以编辑/etc/vsftpd/banner,建立login时的欢迎信息,让你的ftp更加个性化.


下面我们使用quota为ftpuser加入磁盘限额,避免恶意用户用垃圾数据塞满你的硬盘.
假设/var/ftp在根分区/(/dev/hda5)中,则将/etc/fstab中根分区的记录的第4个字段改成defaults,usrquota,这样这条记录看起来类似这样:
LABEL=/ / ext3 defaults,usrquota 1 1
接着重启系统后输入下列命令:
quotacheck -acu #检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表
quotacheck -avu #生成每个启用了配额的文件系统的当前磁盘用量表
edquota ftpuser #为用户ftpuser设置磁盘配额
这时系统会在默认文本编辑器(vi)中打开配额文件,显示类似这样:
Disk quotas for user ftpuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda5 0 0 0 0 0 0
第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为 过渡期(grace period)。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置.按你的需要修改后存盘推出.
要校验用户的配额是否被设置,使用以下命令:
quota testuser
接着使用edquota -t来设置过渡期(grace period)
和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda5 7days 7days
按你的需要修改后存盘退出

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vsftp local_umask=022 要不很郁闷的! 的相关文章

  • web本地存储(localStorage、sessionStorage)

    web 本地存储 localStorage sessionStorage 说明 对浏览器来说 使用 Web Storage 存储键值对比存储 Cookie 方式更直观 而且容量更大 它包含两种 localStorage 和 sessionS
  • VsFTP离线安装

    vsftp离线安装 安装包链接 https pan baidu com s 1qNmXWh3Ks5bzc rn1ytchQ 提取码 397i 1 查看服务器是否安装FTP 如图则表示没有安装 Shell gt rpm qa grep vsf
  • 如何将 svg 画布保存到本地文件系统

    有没有办法允许用户在使用浏览器在 javascript svg 画布上创建矢量图之后 将此文件下载到本地文件系统 SVG 对我来说是一个全新的领域 所以如果我的措辞不准确 请耐心等待 您可以避免往返服务器 对 SVG xml 进行 Base
  • 您建议将哪个数据库与 C# (.NET) 应用程序一起使用?

    我正在制定一个小项目计划 当我需要决定使用什么本地数据库系统时 输入数据将存储在网络服务器上 托管 MySQL DB 这个想法是建立一个流程来下载所有必要的数据 例如在午夜 并处理它们 然而 会有很多输入和处理阶段 所以我需要使用某种本地数
  • umask() 什么时候有用?

    umask 0 fd open dev null O RDWR Here s man 2 umask umask sets the calling process s file mode creation mask umask to mas
  • 如何通过文件名访问本地文件夹?

    我有一个文件夹是我的动画 游戏 该文件夹中有 pyw 文件和 wav 音乐文件 我有 import wave wave open 而且我不知道括号里该放什么 我知道它应该是文件名 但有人可能会将游戏安装在未知的目录中 如何通过文件名访问本地
  • Python:访问另一个文件中函数中的变量

    我有两个文件 lib py global var def test var Hello return test py from lib import test print var 但是尽管它们位于同一文件夹中 当我运行 test py 时
  • CORS 策略已阻止从来源“null”访问图像

    我在 OpenLayers 3 中有 JavaScript 应用程序 我的基础层是从本地图块创建的 我只在我的计算机上工作 所以我不知道为什么会出现 CORS 错误 var newLayer new ol layer Tile source
  • 如何在 UIWebview 的目录(js、images、css)中加载本地 html 资源? (iOS)

    具体来说 如何在不更改原始 HTML 内容 删除目录 的情况下从各自的目录 images css js 加载所有资源 我正在使用此代码将 index html 加载到 UIWebview 中 NSURL url NSBundle mainB
  • C# 在 if 循环中使用未分配的局部变量

    因为我是一个该死的初学者 所以我需要一些帮助 using System using System Collections Generic using System Linq using System Text using System Th
  • 分离本地数据库.mdf,复制,附加新文件

    我尝试分离本地数据库 mdf 将其复制到另一个文件夹中 并在启动时附加新文件 并在关闭时复制到旧文件夹 它似乎在启动时有效 但在表单关闭时出现错误 该进程无法访问文件 C ProgramData MyData db1 mdf 因为它正在被另
  • 访问 ASM Java 库中的局部变量

    我试图在插入方法时调用局部变量 到目前为止 我能够获取节点中的局部变量 但在实际访问任何内容时遇到困难 这是我的插入内容 非常杂乱 我已经这样做了一段时间 设计不再是我的首要任务 不久前 final ClassReader reader n
  • ios - 应用程序关闭时本地通知不更新徽章号码

    我注意到 当 iOS 设备中收到本地通知时 通知会显示在通知中心 但应用程序关闭时应用程序徽章编号不会更新 我需要点击通知中心的通知才能将本地推送消息传输到应用程序 这是正常行为吗 可以通过远程推送通知来解决这个问题吗 您可以利用appli
  • 访问类方法内的变量

    我正在使用 Tkinter Python 创建一个预算程序 这是我的代码的基础知识 class Expense def init self def Save self TotalAmount blah 所以我需要访问TotalAmount在
  • 如果只使用一次本地函数,那么使用它们还有什么意义吗?

    想象一下我有这样的代码 public void Foo Do bar work Do baz work Do foobar work 我意识到我可以 而且应该因为它做了不止一件事 将其重构为 public void Foo bar baz
  • 在本地运行“python manage.pysyncdb”时出错,但通过 Heroku 运行相同命令时没有错误

    我是 Heroku 和 Django Python 的新手 我希望找到我遇到的问题的答案 我一直在关注 Heroku 开发中心的入门教程 https devcenter heroku com articles django https de
  • “重置”对象变量的“Pythonic”方式?

    我认为 这里的 变量 指的是 名称 不完全确定pythonistas使用的定义 我有一个对象和一些方法 这些方法都需要并且都改变对象的变量 我怎样才能以最Pythonic和最好的方式 尊重OOP的技术 实现让方法使用对象变量 同时又保留其他
  • 是否可以在 C++11 之前创建函数局部闭包?

    借助 C 11 我们获得了 lambda 并且可以在我们真正需要的地方 而不是在它们不真正属于的地方 即时创建函数 函子 闭包 在 C 98 03 中 创建函数局部函子 闭包的好方法如下 struct void operator int i
  • 神经网络的局部逆

    我有一个带有 N 个输入节点和 N 个输出节点的神经网络 可能还有多个隐藏层和循环 但让我们先忘记这些 神经网络的目标是学习一个N维变量Y 给定N维值X 假设神经网络的输出是Y 学习后应该接近Y 我的问题是 是否有可能得到输出 Y 的神经网
  • 如何修改python中的本地命名空间

    如何修改Python中函数的本地命名空间 我知道 locals 在函数内部调用时返回函数的本地命名空间 但我想做这样的事情 我有一个原因为什么我想在 f 无法访问 g 的情况下执行此操作 但给出更快一个简单的 愚蠢的例子来说明问题 def

随机推荐

  • iOS --- 为UISlider添加点击事件

    UISlider是iOS中非常常见的UI控件 继承自UIControl 可设置valueChanged等事件响应方法 但其默认不支持单击事件 本文即简单地实现了可单击选值的UISlider UISlider的常见IBAction Value
  • 阿里云linux服务器开启图形界面并用windows远程 并修改远程端口

    阿里云CentOS服务器安装图形界面 并安装xrdp远程 1 安装Gnonme yum groupinstall 34 GNOME Desktop 34 34 Graphical Administration Tools 34 y 如需卸载
  • 数论-约数和公式

    约数定义 约数 xff0c 又称因数 整数a除以整数b b 0 除得的商正好是整数而没有余数 xff0c 我们就说a能被b整除 xff0c 或b能整除a a称为b的倍数 xff0c b称为a的约数 在大学之前 xff0c 34 约数 34
  • 高手在民间——SDH、MSTP、OTN和PTN的区别和联系

    个人觉得作者总结得非常牛 xff0c 忍不住转载 分享 SDH MSTP OTN和PTN的区别和联系 首先要说的是TDM的概念 xff0c TDM就是时分复用 xff0c 就是将一个标准时长 xff08 1秒 xff09 分成若干段小的时间
  • bash:fdisk:command not found

    bash fdisk command not found lansir 64 Red Hat fdisk l bash fdisk command not found 原因是fdisk不在PATH路径中 lansir 64 Red Hat
  • java-A+B【NEUQACM】

    1002 A 43 B xff08 基本输入输出2 xff09 时间限制 1 Sec 内存限制 128 MB 提交 979 解决 668 提交 状态 讨论版 题目描述 输入两个数A B xff0c 输出A 43 B的值 输入 第一行是数据的
  • Opencv调取摄像头失败的处理方法

    最近想学习一下opencv xff0c 就弄了一本 学习opencv 的书看 xff0c 书中的例子也随便敲一敲 可是 xff0c 在调去摄像头时出现了如下问题 具体代码如下 xff1a include 34 stdafx h 34 inc
  • Python编辑器 Sublime text2 +JEDI(python自动补全插件)

    以前写python的时候都是用eclipse写的 用mac后 xff0c 今天突然看到了这个Sublime text2 xff0c 目测很好用 先记下来 xff0c 到时再来补充 Win Linux gt cmd 43 shifp 43 p
  • 连接MySQL出现Host is not allowed to connect to this MySQL server 解决方法

    一 报错的原因 xff1f 英语翻译 不允许主机连接到此MySQL服务器 xff08 意思是本地账号连接可以登录 xff0c 但是远程登陆不行 xff09 二 解决步骤 1 打开cmd 进入到php的bin文件 2 以下命令按顺序执行 1
  • Debian 安装并切换配置使用 Xfce 4 桌面环境

    1 首先 使用 sudo tasksel 选择安装 Xfce 4 环境 或者 通过 sudo apt install kali defaults kali root login desktop base xfce4 xfce4 places
  • Qt 设置Widget背景图片并实现透明度的三种方式

    一 场景 在平常的开发过程中 xff0c 我们常常会遇到需要设置Widget窗口背景图片透明度的方式 一般会有三种方式可以进行设置 二 方式一 xff08 使用图形遮罩功能SetMask函数 xff09 class BackGroundWi
  • 穿山甲的广告聚合平台-GroMore

    很多同学微信私聊问我 xff0c TogetherAd 和其他市面上的广告聚合平台有什么区别 xff1f 接了你这个收入会不会提高啊 xff1f 毕竟个人时间有限 xff0c 我很难每个同学都去详细的回答 这篇文章我们就深入的探讨一下 我见
  • 使用Python的Tkinter库创建GUI(附实例:回归)

    我们前面介绍了树回归中的回归树和模型树 两种回归方式 本节我们首先将树回归和标准回归进行比较 xff0c 然后创建出一个GUI xff0c 通过交互的形式更好去观察模型树和回归树之间的奥秘 1 树回归与标准回归的比较 我们之前介绍过几种回归
  • django-模板语言-传输各种数据类型

    复习 django的三种返回方式 HttpResponse render redirect 了解这三个功能的导入位置 from django shortcuts import HttpResponse render redirect 模板语
  • 数据结构—顺序表

    目录 绪论 逻辑结构 xff1a 数据的逻辑结构可以看作从具体问题抽象出来数学模型 xff0c 他与数据的存储无关 A 集合结构 B 线性结构 C 树形结构 D 图形结构 物理结构 xff1a 是指数据的逻辑结构在计算机中的存储形式 xff
  • C语言 求2*3矩阵的转置

    C语言 求2 3矩阵的转置 span class token macro property span class token directive hash span span class token directive keyword in
  • cmd找不到conda

    cmd找不到conda以及通过cmd启用Anaconda中的Python环境 xff08 base xff09 1 gt 在系统环境中添加Anaconda路径 在环境变量path中选择新建 xff0c 并将Anaconda安装目录下的Scr
  • 201409-2 画图

    试题编号 xff1a 201409 2 试题名称 xff1a 画图 时间限制 xff1a 1 0s 内存限制 xff1a 256 0MB 问题描述 xff1a 问题描述 在一个定义了直角坐标系的纸上 xff0c 画一个 x1 y1 到 x2
  • sublime 设置识别语言

    cmd 43 shift 输入语言入 object c 自动跳出 Set Syntax Object C 这样就能识别OC的代码片段了 个人觉得用sublime做代码片段管理比较好
  • vsftp local_umask=022 要不很郁闷的!

    先是最基本的配置 请看我的 etc vsftpd vsftpd conf 接受匿名用户 anonymous enable 61 YES 匿名用户login时不询问口令 no anon password 61 YES 接受本地用户 local