ftpaccess - ftpd的配置档
描述 DESCRIPTION
这个ftpaccess档案是用来配置下述功能的运作
存取功能(AccessCapabilities)
- autogroup<群组名称><类别>[<类别>...]
- 如果一个匿名的(ANONYMOUS)使用者是任何<类别>的成员,那麽ftp伺服器将会实行一次setegid()到该<群组名称>。这允许特殊类别的匿名使用者存取group-and-owner-read-only的档案以及目录。<群组名称>是/etc/group里的一个有效群组(或是你的getgrent()呼叫所查阅的地方)。
- class<类别><类型列表><全球位址>[<全球位址>...]
- 定义使用者的<类别>,使用<全球位址>格式的来源位址。可以定义<类别>多个成员。可以有多个"class"指令列出该类别额外的成员。如果多个"calss"指令可以应用到该次的连线期间,会使用在access档案中第一个列出的。尝试为一台主机定义一个有效的类别失败的话将会引起存取被拒绝。<类型列表>是一个以任何"anonymous","guest"及"real"关键字所组成使用逗点隔开的列表。如果包含"real"关键字,该类别可以符合使用FTP存取真实的帐号的使用者,而如果包含"anonymous"关键字该类别可以符合使用匿名FTP的使用者。而"guest"关键字符合访客存取帐号(参阅"guestgroup"以取得更多资讯)
<全球位址>可以是一个全球的领域名称或是一个全球的数字位址。
- deny<全球位址><讯息档案>
- 永远拒绝符合<全球位址>主机的存取。显示<讯息档案>。<全球位址>可以是"!nameserved"用来拒绝没有名称伺服器服务中的节点的存取。
- guestgroup<群组名称>[<群组名称>...]
- 如果一个真实的(REAL)使用者是任何<群组名称>的成员,该次连线期间的设立完全如同匿名的FTP一般。换句话说,会执行一次chroot(),而且该使用者不再被允许发出USER及PASS指令。<群组名称>是/etc/group里的一个有效群组(或是你的getgrent()呼叫所查阅的地方)。
该使用者的home目录必须适当地加以设定,跟匿名FTP所要做的完全一样。在passwd项目里的home目录栏位被分成两个目录。第一个栏位将是chroot()呼叫的根目录参数。第二个部份是相对於该根目录的使用者home目录。这两半是以"/./"分隔开的。
在/etc/passwd里,该真实的项目:
guest1::100:92:Guest Account:/ftp/./incoming:/etc/ftponly
当guest1成功地签入的时候,此ftp伺服器将会执行一次chroot("/ftp")然後接著chdir("/incoming")。该guest使用者将只能够存取/ftp下的目录结构(此目录对guest1而言看起来跟用起来就像是/目录),就如同一个匿名FTP使用者所见到的。
- limit<类别><时间><讯息档案>
- 在某<时间>将某<类别>限制为个使用者,若使用者的存取被拒绝则显示<讯息档案>内容。限制的检查只在签入时期实行。如果多个"limit"指令可以应用到该次连线期间的话,会使用第一个适合的。尝试定义一个有效的限制失败,或是值为-1的限制,等於不设限。<时间>使用UUCPL.sys档案相同的格式。
- loginfails<数字>
- 在<数字>签入失败後,记录一个″重复签入失败(repeated loginfailures)讯息″并且终止该FTP连线。预设值是5。
- private
- 使用者签入之後,SITEGROUP及SITEGPASS指令可以用来指定一增强存取的群组以及与之有关的密码。如果该群组名称以及密码是有效的,该使用者变成(经由setegid())一个在群组存取档案/etc/ftpgroups中所指定群组的成员。
该群组存取档案的格式是:
存取群组名称:经编码的密码:真实群组名称
其中的存取群组是一个随意的(文数字+标点)字串。经编码的密码是经由crypt(3)编码过的密码,与/etc/passwd里的完全一样。真实群组名称是/etc/group里所列出有效群组其中的一个名称。
注意:要使这个选项能运作於匿名的FTP使用者,该FTP伺服器必须保持使/etc/group永久开启而且将群组存取档案载入记忆体。这意指(1)该ftp伺服器现在使一个额外的档案描述子(filedescriptor)开启,以及(2)经由SITEGROUP使用者必须的密码以及存取权利的承认在一次FTP连线期间以内将会是静态的。如果你有紧急的需求要*现在*改变存取群组以及/或是密码,那麽你只要砍掉(kill)所有正在执行中的FTP伺服器。
资讯功能(InformationalCapabilities)
- banner<路径>
- 作用与message指令类似,除了此banner是在使用者键入使用者名称/密码之前显示以外。该<路径>系相对於真实的系统根目录,不是匿名FTP所使用的根目录。
警告:这个指令的使用可以完全地防止不相容的FTP客户端程式使用该FTP伺服器。并非所有的客户端都能够处理多行回应(multi-lineresponses)(这正是banner显示的方式)
- email<名称>
- 定义ftp档案处(archive)维护者的电子邮递位址。这个字串将会在每一次使用%E代换变数(magiccookie)的时候印出。
- message<路径>{<时机>{<类别>...}}
- 定义一个配合<路径>的档案名称在使用者签入时或是在使用切换工作目录指令的时候ftpd将会显示该档案的内容。该项<时机>参数可以是"LOGIN"或"CWD=<目录>"。如果<时机>是"CWD=<目录>"的话,<目录>指定将会引发该通知的新预设目录。
该选择性的<类别>指定允许该讯息只对特殊类别的成员显示。可以指定超过一个类别。
在说明档中可以有″代换变数(magiccookies)″这会使ftp伺服器以指定的文字字串取代该变数:
-
- %T
- 本地时间(form ThuNov1517:12:42 1990)
- %F
- CWD所在分割区的剩馀空间(kbytes)[并非所有系统都有支援]
- %C
- 目前的工作目录
- %E
- 定义在ftpaccess中维护者的电子邮递位址
- %R
- 远端主机名称
- %L
- 本地主机名称
- %U
- 签入时所给的使用者名称
- %M
- 这个类别所允许的最大使用者数目
- %N
- 这个类别目前的使用者数目
此项message将只显示一次以避免惹使用者讨厌。要记得当MESSAGEs被一匿名的FTP使用者引发时,该<路径>必须是相对於匿名FTP目录树的根目录。
- readme<路径>{<时机>{<类别>}}
- 定义一个配合<路径>的档案名称在使用者签入时或是在使用切换工作目录指令的时候ftpd将会告知使用者该档案存在及修改的日期。<时机>参数可以是"LOGIN"或"CWD=<目录>"。若<时机>是"CWD=<目录>"的话,<目录>指定将会引发该通知的新预设目录。此项讯息将只显示一次以避免打扰使用者。要记得当README讯息被一匿名的FTP使用者引发时,该<路径>必须是相对於匿名FTP目录树的根目录。
该选择性的<类别>指定允许该讯息只对特殊类别的成员显示。可以指定超过一个类别。
记录功能(LoggingCapabilities)
- logcommands<类型列表>
- 以使用者启动个别的记录指令。<类型列表>是一个以任何的"anonymous","guest"及"real"关键字所组成使用逗点隔开的列表。如果包含"real"关键字,将会为使用FTP存取真实帐号的使用者做记录,而如果包含"anonymous"关键字则将会为使用匿名FTP的使用者做记录。"guest"关键字符合访客存取帐号(参阅"guestgroup"以取得更多资讯)
- logtransfers<类型列表><目录>
- 启动对真实的或匿名的FTP使用者的档案传输记录。对传输到伺服器(进来)的记录可以跟从伺服器传输(出去)分开来启动。<类型列表>是一个以任何的"anonymous","guest"及"real"关键字所组成使用逗点隔开的列表。如果其中包含有"real"关键字,将会为使用FTP存取真实帐号的使用者做记录,而如果包含"anonymous"关键字则将会为使用匿名FTP的使用者做记录。而"guest"关键字符合访客存取帐号(参阅"guestgroup"以取得更多资讯)。<目录>是一个以任何的"inbound"以及"outbound"两个关键字所组成以逗点隔开的列表,而且将会分别引发对送往该伺服器以及从该伺服器送出的传输记录。
其它功能(MiscellaneousCapabilities)
- alias<字串><目录>
- 为一个目录定义一个别名,<字串>。可以用来加入逻辑目录的其它概念。
例如:
aliasrfc:/pub/doc/rfc
允许使用者从任何目录以指令"cdrfc:"存取/pub/doc/rfc。别名只应用於cd指令上。
- cdpath<目录>
- 定义cdpath里的一个项目。这定义一个在改变目录时使用的搜寻路径。
例如:
cdpath/pub/packages cdpath/.aliases
允许使用者直接cd到任何/pub/packages或/.alias目录以下的目录。该搜寻路径系以该行出现在ftpaccess档案里的顺序定义。
如果使用者所下的指令是:
cdfoo
则会以下列的顺序搜寻该目录:
./foo 一个称为"foo"的别名 /pub/packages/foo /.aliases/foo
该cdpath只能够配合cd指令使用。如果你有数量很大的别名那麽你可能想要设立一个目录别名链结到所有你希望能让使用者使用的区域。
- compress[...] tar[...]
为任何符合任何的类别启动压缩(compress)或包裹(tar)功能。实际的转换(conversions)定义在外部的档案FTPLIB/ftpconversions之中。 - shutdown<路径>
- 如果<路径>所指的档案存在,伺服器将会规律地检查该档案以便得知该伺服器是否将要被停机。如果计画一次停机,则会通告使用者,新的连线在停机之前的一段指定的时间之後会被拒绝且目前的连线在停机之前的一段指定的时间之後会被停止。<路径>指到一个结构如下的档案:
<年><月><日><时><分><拒绝_期间><抛弃_期间><本文>
-
- <年>
- 任何>1970的年份
- <月>
- 0-11<----注意!
- <时>
- 0-23
- <分>
- 0-59
<拒绝_期间>以及<抛弃_期间>是在停机之前新的连线将会被拒绝以及存在的连线将会被抛弃的一段格式为HHMM的期间。
<本文>跟从任何讯息(参阅"message")的一般规则,配合下列额外可用的代换变数:
-
- %s
- 系统将要停机的时间
- %r
- 新的连线将会被拒绝的时间
- %d
- 目前的连线将会被抛弃的时间
所有时间的格式都是:dddMMMDDhh:mm:ssYYYY。在该配置档中只能有一个"shutdown"指令。
外部程式ftpshut(8)可以用来自动化产生这个档案的程序。
许可功能(PermissionCapabilities)
- chmod<类型列表> delete<类型列表> overwrite<类型列表> umask<类型列表>
允许或不允许执行指定功能的能力。依照预设值,允许所有的使用者执行。<类型列表>是一个以任何"anonymous","guest"及"real"关键字所组成使用逗点隔开的列表。
- passwd-check()
- 定义该伺服器对匿名ftp密码检查的层级与执行。
-
- none
- 不执行密码检查。
- trivial
- 密码中必须包含一个'@'字元。
- rfc822
- 密码必须是一个rfc822相容的位址。
- warn
- 警告该使用者,但是允许他们签入。
- enforce
- 警告该使用者,并且接著将之踢出。
- path-filter<类型列表><讯息><允许的字元集>{<不允许的正规表示式>...}
- 对於属於<类型列表>的使用者,path-filter定义控制何种档案名称允许或不允许的正规表示式(regularexpressions)。可以有多个不允许的正规表示式。如果一个档案名称因为不符合正规表示式的标准而无效的话,将会显示<讯息>给该使用者。例如:
path-filteranonymous/etc/pathmsg^[-A-Za-z0-9._]*$^.^-
指定所有匿名使用者所上传的档案名称只能以A-Z,a-z,0-9以及"._-"组成而且不能以一个"."或是一个"-"开始。如果该档案名称是不合法的,则将会显示/etc/pathmsg给该使用者。
- upload<拥有者><群组>["dirs"|"nodirs"]
- 配合定义一个认可或拒绝上传的目录。
如果其认可上传,所有档案将会由<拥有者>以及<群组>所拥有而且将会具有根据设置的权限(permission)。
目录系以最佳-符合(best-match)为基础。
例如:
upload*no upload/incomingyesftpdaemon0666 upload/incoming/gifsyesjlcguest0600
nodirs这将仅允许上传到/incoming以及/incoming/gifs。上传到/incoming的档案将由ftp/daemon所拥有并且具有0666的权限。上传到/incoming/gifs的档案将由jlc/guest拥有并且具有0600的权限。
选择性的"dir"以及"nodir"关键字可以指定允许或不允许使用mkdir指令建立新的子目录。
该upload关键字只应用於匿名的使用者。
ftpaccess - ftpd的配置档的更多相关文章
- nginx+keepalived+tomcat之具体配置档
前沿知识点: nginx负责负载均衡(反向代理) msm(memcached session manager)负责缓存会话信息,从而实现会话保持 所需包: nginx和memcached采用最新稳定版 ...
- web.xml配置详解之欢迎页面和错误页面
<!-- 应用的欢迎页面 采用list的方式罗列欢迎页面, 系统会从第一个找到最后一个,找到了文件就不继续往下找了.优先显示前边的. --> <welcome-file-list& ...
- mirror - 映射在远端节点上的档案
总览 SYNOPSIS mirror [flags] -gsite:pathname mirror [flags] [package-files] 描述 DESCRIPTION Mirror 是以 P ...
- boot loader:grub入门[转]
Boot Loader: Grub 在看完了前面的整个启动流程,以及核心模块的整理之后,你应该会发现到一件事情, 那就是『 boot loader 是加载核心的重要工具』啊!没有 boot loade ...
- 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)
目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...
- Linux 解压命令tar的理解
今天回顾了下tar 这个打包工具的一些常用参数 选项与参数: -c :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename) -t :察看打包文件的内容含有哪些档名,重点在察看『档名 ...
- 鸟哥的linux私房菜学习笔记 __ 命令与文件的搜寻
连续输入两次[tab]按键就能够知道使用者有多少命令可以下达.那你知不知道这些命令的完整档名放在哪里?举例来说,ls 这个常用的命令放在哪里呢? 就透过 which 或 type 来找寻吧! 范例一: ...
- 运维工程师必会的109个Linux命令
运维工程师必会的109个Linux命令 版本1.0 崔存新 更新于2009-12-26 目录 1 文件管理 6 1.1 basename 6 1.2 cat 6 1.3 cd 7 1.4 chgrp ...
- Beaglebone Black - 准备
首先要玩 BBB,你需要买一台 BBB,淘宝 Element14 Beaglebone Black,我购入价 RMB 310,带数据线,没电源适配器的.Seeedstudio 有台叫 Beaglebo ...
随机推荐
- QDUOJ LC的课后辅导 单调递增栈
LC的课后辅导 发布时间: 2015年9月19日 21:42 时间限制: 1000ms 内存限制: 256M 描述 有一天,LC给我们出了一道题,如图: 这个图形从左到右由若干个 宽为1 高不 ...
- GcSpreadSheet自定义Tab键选择
最开始的时候需要在GcSpreadSheet中按Tab在需要输入的cell中切换,在模板中定义Tab的切换规则:后来又有一个新的要求,因为在使用的时候会出现数据不平的情况,这个时候需要在标记中的不平数 ...
- jQuery 生成随机字符
//获取长度为len的随机字母 //获取长度为len的随机字母 function zimu(len){ len = len || 1; var $chars = 'ABCDEFGHIJKLMNOPQR ...
- 2 手写Java LinkedList核心源码
上一章我们手写了ArrayList的核心源码,ArrayList底层是用了一个数组来保存数据,数组保存数据的优点就是查找效率高,但是删除效率特别低,最坏的情况下需要移动所有的元素.在查找需求比较重要的 ...
- vuex实现购物车功能
购物车功能描述: 1. 点击+,-按钮,“已选:xx件”随之增减 2. checkbox选中时,当前项的已选数量增加到头部“已选择xx件”中,未选中时数量不计入 代码: 服务端 node+koa+ko ...
- E20181030-hm
conquer vt. 征服; 克服; 攻克; 打败(敌人); vi. 得胜,胜利; recur vi. 复发; 重现; 再发生; 回想; recurrence n. 复回,重现; 反复,隐现; ...
- bzoj 2406: 矩阵【二分+有源汇上下界可行流】
最大值最小,所以考虑二分 |Σaij-Σbij|<=mid,所以Σbij的上下界就是(Σaij-mid,Σaij+mid) 考虑建有上下界网络,连接(s,i,Σaik-mid,Σaik+mid) ...
- CF939D Love Rescue
题意 给定两个长度为n的由小写字母组成的字符串 每次可以花费1的代价,指定两个字母,把其中一个全部变为另一个 求使两个字符串相同的最小花费 n <= 100000 因为谁变成谁没有关系反正相等就 ...
- Java并发编程,互斥同步和线程之间的协作
互斥同步和线程之间的协作 互斥同步 Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLo ...
- 关于maven项目导入后缺jar包问题的处理方法
1.maven项目的好处:方便,我们在把自己写好的代码发送给目标人物时可以精简代码——把target目录,一些设置目录之类的都删除掉,接下来要做的就是尽可能的只留下一个src文件夹及pom.xml文件 ...