*********.tbz就可以安装了,不需要再用tar解压什么的了。
FreeBSD下tbz文件的安装
*********.tbz就可以安装了,不需要再用tar解压什么的了。
今天在使用php 的session 的时候,出现了以前就遇见但是又解决不了的问题,在页面上出现如下提示:
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at E:\php\code\admin.php:1) in E:\php\code\logolist\adminlogo.php on line 2
上网搜了一下,有人说是因为在session_start(); 语句之前有其他的html代码,但是我的session_start(); 已经在做前面了。
还有的说是因为没有设置session 保存路径,需要修改php.ini中的session.save_path = “C:/phpsession” [后边的路径自己设置,并且要保证存在。php.ini 文件一般应位于系统盘/Windows 目录下面]
但是我做如上设置之后还是会有这个提示。后来经过反复测试,终于解决问题。
解决办法:
修改php.ini中的session.auto_start = 0 为 session.auto_start = 1
博主点评:
博主尝试了一下,的确解决了问题,但是问题是PHP就是因为Session
Autostart有危险性,才将其禁掉,这样一来,安全性就有了问题。博主将继续寻找解决方案。
如果web application的编码规则是utf-8,如网页头中的:
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset=”gb2312″ 或 charset=”big5″(假设输出的是Big5繁体字)。
例:
<script type=”text/javascript” language=”javascript” src=”scripts/output.js” charset=”gb2312″></script>
PS:另一种解决方法是把js文件保存为utf-8编码。
博主点评:晕,这么简单的方法,原来我一直想有没有什么办法能够把Javascript的结果由GB2312转到UTF-8,找到了PHP的mb_convert_encoding,但由于不会把Javascript的输出结果指定为字符串从而一筹莫展,没想到居然有这么简单的办法。看来凡事都要多用两个角度想想。
转载自http://www.cnblogs.com/zgqys1980/archive/2007/11/13/957653.html
<?php echo strftime (“%m-%d %H:%M” ,1198591260);
?>
cdb_access | 用户权限表 |
cdb_adminactions | 管理动作表 |
cdb_admingroups | 管理组数据表 |
cdb_adminnotes | 管理员留言 |
cdb_adminsessions | 管理员后台在线记录 |
cdb_advertisements | 广告资料表 |
cdb_announcements | 论坛公告资料表 |
cdb_attachments | 附件资料表 |
cdb_attachtypes | 附件类型表 |
cdb_banned | 被禁止的ip列表 |
cdb_bbcodes | bb代码资料表 |
cdb_blogcaches | 博客缓存表 |
cdb_buddys | 好友信息表 |
cdb_creditslog | 积分交易记录表 |
cdb_crons | 计划任务表 |
cdb_failedlogins | 错误登录记录 |
cdb_favorites | 个人收藏信息表 |
cdb_forumfields | 板块扩展信息数据表 |
cdb_forumlinks | 友情链接数据表 |
cdb_forums | 版块资料表 |
cdb_medals | 勋章资料表 |
cdb_memberfields | 用户扩展资料表 |
cdb_members | 用户基本资料表 |
cdb_moderators | 版主信息数据表 |
cdb_modworks | 版主工作记录表 |
cdb_onlinelist | 在线列表定制 |
cdb_onlinetime | 用户在线时间信息表 |
cdb_orders | 订单数据表 |
cdb_paymentlog | 支付记录 |
cdb_pluginhooks | 插件钩子表 |
cdb_plugins | 插件表 |
cdb_pluginvars | 插件配置表 |
cdb_pms | 短信资料表 |
cdb_pmsearchindex | 短消息搜索缓存表 |
cdb_polls | 投票帖资料表 |
cdb_posts | 帖子资料表 |
cdb_profilefields | 用户栏目定制 |
cdb_promotions | 论坛推广 |
cdb_ranks | 头衔表 |
cdb_ratelog | 帖子评分记录表 |
cdb_regips | 注册ip记录表 |
cdb_relatedthreads | 相关主题 |
cdb_rsscaches | RSS缓存 |
cdb_searchindex | 搜索缓存 |
cdb_sessions | 在线表 |
cdb_settings | 论坛设置表 |
cdb_smilies | 表情信息表 |
cdb_stats | 统计数据表 |
cdb_statvars | 统计变量表 |
cdb_styles | 风格 |
cdb_stylevars | 风格变量表 |
cdb_subscriptions | 订阅信息表 |
cdb_templates | 模板 |
cdb_threads | 主题资料表 |
cdb_threadsmod | 主题管理记录表 |
cdb_threadtypes | 主题分类表 |
cdb_usergroups | 用户组数据表 |
cdb_validating | 等待人工审核的会员记录 |
cdb_words | 词语过滤表 |
Discuz默认库共53个数据表(以下表数据量注释均为默认)
cdb_access (用户权限表)
uid | 用户id |
fid | 论坛id |
allowview | 允许浏览 |
allowpost | 允许发新帖 |
allowreply | 允许回复 |
allowgetattach | 允许下载附件 |
allowpostattach | 允许上传附件 |
cdb_adminactions 关联用户组
admingid | 管理组id |
disabledactions | 关联后的权限 |
cdb_admingroups | 管理组权限设置(3条) |
admingid | 管理组id |
alloweditpost | 允许编辑帖子 |
alloweditpoll | 允许编辑投票 |
allowstickthread | 允许固定主题 |
allowmodpost | 允许编辑帖子 |
allowdelpost | 允许删除帖子 |
allowmassprune | 允许批量删除帖子 |
allowrefund | 允许强制退款 |
allowcensorword | 允许过滤词语 |
allowviewip | 允许查看用户IP信息 |
allowbanip | 允许禁止IP |
allowedituser | 允许编辑用户 |
allowmoduser | 允许审核用户 |
allowbanuser | 允许禁止用户访问 |
allowpostannounce | 允许发布公告 |
allowviewlog | 允许查看版主管理记录和用户评分记录 |
disablepostctrl | 发贴不受限制(不受灌水预防和最大字数等) |
cdb_adminnotes (后台留言表)
id | 后台留言id |
admin | 留言人 |
access | 阅读权限 |
adminid | 管理组id |
dateline | 发表时间 |
expiration | 过期时间 |
message | 留言内容 |
cdb_adminsessions 管理记录(0条)
uid | 用户id |
ip | ip |
dateline | 时间 |
errorcount | 错误次数 |
cdb_advertisements 后台广告管理
advid | 广告id |
available | 是否启用 |
type | 类型 |
displayorder | 排列顺序 |
title | 标题 |
targets | 投放范围 |
parameters | 参数 |
code | 代码 |
starttime | 开始时间 |
endtime | 结束时间 |
cdb_announcements 公告表(0条)
id | 公告ID |
author | 发布者用户名 |
subject | 公告标题 |
displayorder | 排列顺序 |
starttime | 公告开始时间 |
endtime | 公告失效时间 |
message | 公告内容 |
cdb_attachments 附件表(0条)
aid | 附件数据ID |
tid | 主题ID |
pid | 帖子ID |
dateline | 发布附件时间 |
readperm | 阅读权限 |
filename | 附件的原始文件名 |
description | 附件描述 |
filetype | 附件类型 |
filesize | 附件文件的大小 |
attachment | 服务器路径,相对于(config.php中$attachdir值) |
downloads | 下载/浏览次数 |
cdb_attachtypes 附件类型(0条)
id | 数据ID |
extension | 扩展名 |
maxsize | 最大允许的上传大小 |
cdb_banned | 被禁止访问表 |
id | 禁止访问id |
ip1 | ip字段1 |
ip2 | ip字段2 |
ip3 | ip字段3 |
ip4 | ip字段4 |
admin | 操作人 |
dateline | 操作时间 |
expiration | 过期时间 |
cdb_bbcodes 自定义Discuz!代码(3条)
id | 数据ID |
available | 是否启用 |
tag | 标签 |
replacement | 替换内容 |
example | 使用举例 |
explanation | 代码的解释说明 |
params | 参数个数 |
nest | 嵌套次数 |
cdb_buddys (好友表)
uid | 用户id |
buddyid | 好友的id |
dateline | 加入时间 |
description | 备注 |
cdb_creditslog (积分转帐交易记录表)
uid | 用户id |
fromto | 来自/到 |
sendcredits | 转出积分字段 |
receivecredits | 接受积分字段 |
send | 转出积分 |
receive | 收到积分 |
dateline | 操作时间 |
operation | 操作 |
cdb_failedlogins 登陆失败的记录(0条)
ip | IP地址 |
count | 失败的次数 |
lastupdate | 最后尝试登陆时间 |
cdb_favorites 用户主题收藏(0条)
uid | 用户id |
tid | 主题id |
cdb_forumfields 论坛扩展信息表
fid | 论坛id |
description | 论坛简介 |
password | 访问密码 |
icon | 论坛图标 |
postcredits | 自定义发主题增加积分 |
replycredits | 自定义发回复增加积分 |
redirect | 论坛转向URL |
attachextensions | 本论坛允许附件类型 |
moderators | 斑竹列表 |
rtablees | 本论坛规则 |
threadtypes | 主题分类 |
viewperm | 浏览论坛许可 |
postperm | 发新话题许可 |
replyperm | 发表回复许可 |
getattachperm | 下载/查看附件许可 |
postattachperm | 上传附件许可 |
cdb_forumlinks 联盟论坛(1条)
id | 数据ID |
displayorder | 显示顺序 |
name | 网站名称 |
url | 地址 |
note | 说明 |
logo | logo地址 |
cdb_forums 论坛表(1条)
fid | 论坛id |
fup | 上级论坛id |
type | 论坛类型,cat为分类,forum为论坛,sub为子论坛 |
name | 论坛的名字 |
status | 显示论坛 |
displayorder | 显示顺序 |
styleid | 风格方案id |
threads | 主题数量 |
posts | 帖子数量 |
todayposts | 今日发帖数量 |
lastpost | 最后发表信息 |
allowsmilies | 允许smilies图标 |
allowhtml | 允许html |
allowbbcode | 允许discuz!代码 |
allowimgcode | 允许[img]标签 |
allowblog | 允许加入blog |
allowtrade | 允许发起交易 |
alloweditrtablees | 允许版主修改本论坛规则 |
modnewposts | 发帖审核 |
jammer | 启用内容干扰码 |
disablewatermark | 禁用图片附件添加水印 |
inheritedmod | 本论坛或分类版主的权力继承到下级论坛 |
autoclose | 主题自动关闭 |
cdb_medals 勋章表
medalid | 勋章id |
name | 勋章名称 |
available | 是否启用 |
image | 图片地址 |
cdb_memberfields 用户扩展信息表
uid | 用户id |
nickname | 用户昵称 |
site | 主页 |
alipy | 支付宝帐号 |
icq | ICQ |
yahoo | Yahoo |
msn | MSN |
taobao | 淘宝旺旺 |
location | 来自 |
customstatus | 自定义头衔 |
medals | 勋章 |
avatar | 头像 |
avatarwidth | 头像宽度 |
avatarheight | 头像高度 |
bio | 生日 |
signature | 个人签名 |
sightml | html解析后的签名 |
ignorepm | 忽略PM列表(拒绝接受本名单中的用户发来的短消息) |
groupterms | 公众用户组信息 |
authstr | 待审核用户 |
cdb_members 用户表(1条)
uid | 用户id |
username | 用户名 |
password | 密码(md5) |
secques | 安全提示问题(独立加密) |
gender | 性别 |
adminid | 管理组id |
groupid | 用户组id |
groupexpiry | 用户组有效期 |
extgroupids | 扩展用户组 |
regip | 注册ip |
regdate | 注册时间 |
lastip | 最后登陆ip |
lastvisit | 上次访问时间 |
lastactivity | 上次访问时间(记录) |
lastpost | 最后发表时间 |
posts | 发贴数 |
digestposts | 精华帖数 |
oltime | 在线时间 |
pageviews | 页面访问量 |
credits | 总积分 |
extcredits1 | 扩展积分1 |
extcredits2 | 扩展积分2 |
extcredits3 | 扩展积分3 |
extcredits4 | 扩展积分4 |
extcredits5 | 扩展积分5 |
extcredits6 | 扩展积分6 |
extcredits7 | 扩展积分7 |
extcredits8 | 扩展积分8 |
avatarshowid | 天下秀 |
邮箱 | |
bday | 生日 |
sigstatus | 签名是否改动 |
tpp | 每页显示主题数 |
ppp | 每页显示帖子数 |
styleid | 个性定义风格id |
dateformat | 个性日期格式 |
timeformat | 个性时间格式 |
pmsound | 短消息提示音 |
showemail | 是否公开email地址 |
newsletter | 是否接受论坛通知 |
invisible | 是否隐身登录 |
timeoffset | 时区校正 |
newpm | 是否有新短消息 |
accessmasks | Access标志 |
cdb_moderators 版主表
uid | 用户id |
fid | 版区id |
displayorder | 显示顺序 |
inherited | 是否继承 |
cdb_onlinelist 在线列表定制(4条)
groupid | 用户组ID |
displayorder | 显示顺序 |
title | 组头衔 |
url | 用户组图例位置(相对于./images/common目录) |
cdb_onlinetime 在线时间表
uid | 用户id |
thismonth | 本月在线时间 |
total | 总计在线时间 |
lastupdate | 最后访问时间 |
cdb_orders 订单信息表
orderid | 订单号 |
status | 状态 |
buyer | 购买者 |
admin | 补单操作者 |
uid | 购买人id |
amount | 数量 |
price | 价格 |
submitdate | 提交日期 |
confirmdate | 确认日期 |
cdb_paymentlog 帖子买卖表
uid | 用户id |
tid | 主题id |
authorid | 作者id |
dateline | 时间 |
amount | 价格 |
netamount | 作者收入 |
cdb_plugins 插件管理表
pluginid | 插件id |
available | 是否启用 |
adminid | 管理插件的管理组id |
name | 插件名称 |
identifier | 唯一标识符 |
description | 描述 |
datatables | 插件的数据表 |
directory | 插件目录 |
copyright | 版权信息 |
modtablees | 记录插件详细信息 |
cdb_pluginvars
plginvarid | 插件变量id |
pluginid | 插件id |
displayorder | 显示顺序 |
title | 标题 |
description | 描述 |
variable | 变量 |
type | 类型 |
value | 数值 |
extra | 存储下拉列表的详细信息 |
cdb_pms 短消息表
pmid | 数据ID |
msgfrom | 发送者名 |
msgfromid | 发送者id |
msgtoid | 接收者id |
folder | 文件夹 |
new | 是否为已读 |
subject | 消息标题 |
dateline | 发送时间 |
message | 内容 |
cdb_polls 投票(0条)
tid | 主题ID |
pollopts | 投票数据 |
cdb_posts 帖子表(0条)
pid | 帖子id |
fid | 论坛id |
tid | 主题id |
first | 是否为主题(1为主题,0为帖子) |
author | 帖子作者用户名 |
authorid | 帖子作者用户id |
subject | 帖子标题 |
dateline | 帖子发表时间 |
message | 帖子正文内容 |
useip | 发贴时的IP |
invisible | 帖子状态(是否是被审核或者是否在回收站) |
usesig | 是否显示签名 |
htmlon | 是否开启html |
bbcodeoff | 是否允许Discuz!代码标签 |
smileyoff | 是否允许Smile表情图标 |
parseurloff | 是否允许自动加链接 |
attachment | 是否有附件 |
rate | 本帖子被评分数 |
ratetimes | 本帖子被评分次数 |
cdb_profilefields 用户栏目定制(0条)
fieldid | 数据id |
available | 是否可用 |
invisible | 是否隐藏 |
title | 栏目标题 |
description | 简短描述 |
size | 内容最大长度 |
displayorder | 显示顺序 |
required | 必填内容 |
unchangeable | 不可修改 |
showinthread | 在帖子中显示 |
selective | 是否可选 |
choices | 选项内容 |
cdb_ranks (用户级别表)
rankid | 级别id |
ranktitle | 发帖数级别头衔 |
postshigher | 发帖数级别阀值 |
stars | 星星数 |
color | 颜色 |
cdb_ratelog(帖子评分记录表)
pid | 帖子id |
uid | 用户id |
username | 用户名 |
extcredits | 评分字段 |
dateline | 时间 |
score | 分数 |
reason | 操作原因 |
cdb_regips (注册ip表(开启新用户注册验证后记录))
ip | IP |
dateline | 时间 |
count | 次数 |
cdb_rsscaches rss缓存表
lastupdate | 最后更新 |
fid | 版块id |
tid | 主题id |
dateline | 发表时间 |
forum | 版块名称 |
author | 作者 |
subject | 标题 |
description | 简短描述 |
cdb_searchindex 论坛搜索索引(0条)
searchid | 数据ID |
keywords | 搜索类型/关键字 |
searchstring | 搜索内容 |
useip | 搜索者IP |
uid | 用户id |
dateline | 搜索开始时间 |
expiration | 搜索失效时间 |
threads | 主题数量 |
tids | 主题id多个以,分割 |
cdb_sessions 在线统计(0条)
sid | 数据ID |
ip1 | IP地址第一栏 |
ip2 | IP地址第二栏 |
ip3 | IP地址第三栏 |
ip4 | IP地址第四栏 |
uid | 用户id |
username | 用户名 |
groupid | 用户组id |
styleid | 风格id |
invisible | 是否隐身登陆 |
action | 当前动作 |
lastactivity | 最后活动时间 |
lastolupdate | 在线时间最后更新 |
pageviews | 页面访问量 |
seccode | 记录验证码 |
fid | 正在浏览的版区id |
tid | 正在浏览的主题id |
bloguid | 记录blog用户id |
cdb_settings 论坛基本设置表(64条)
variable | 变量名 |
value | 赋值 |
cdb_smilies 论坛表情符号(18条)
id | 数据ID |
displayorder | 显示顺序 |
type | 类别(smiley/icon) |
code | smilies代码(对于type=smiley有效) |
url | 图标位置 |
cdb_stats 论坛统计记录(50条)
type | 统计类别 |
variable | 统计的变量名 |
count | 统计计数 |
cdb_statvars
论坛统计记录(在后台启用了论坛统计以后有记录)
type | 统计类别 |
variable | 统计的变量名 |
value | 统计的数值 |
cdb_styles 风格样式(1条)
styleid | 风格id |
name | 风格的名称 |
available | 是否可用 |
templateid | 关联的模板id |
cdb_stylevars 风格变量设置(25条)
stylevarid | 数据ID |
styleid | 关联的风格id |
variable | 风格的变量名 |
substitute | 变量赋值 |
cdb_subscriptions 用户定阅表(0条)
uid | 订阅用户id |
tid | 用户订阅的主题id |
用户email地址 | |
lastnotify | 上次email通知时间 |
cdb_templates 模板表(1条)
templateid | 数据ID |
name | 模板的名称 |
directory | 模板所在的目录 |
copyright | 设计者版权信息 |
cdb_threads 主题表(0条)
tid | 主题id |
fid | 论坛id |
iconid | 主题前面的表情图标id |
typeid | 主题类型id |
readperm | 阅读权限 |
price | 售价 |
author | 作者的用户名 |
authorid | 作者的id |
subject | 标题 |
dateline | 主题发表时间 |
lastpost | 最后回复者的id |
lastposter | 最后回复者的用户名 |
views | 浏览次数 |
replies | 回复数量 |
displayorder | 显示顺序(0为普通主题,1~3分别为I,II,III级置顶) |
highlight | 是否高亮显示 |
digest | 是否精华 |
rate | 是否评分 |
blog | 是否加入blog |
poll | 是否为投票帖 |
attachment | 是否包含附件,且附件类型 |
moderated | 是否被编辑过 |
closed | 主题是否关闭 |
cdb_threadsmod | 主题管理记录表 |
tid | 主题id |
uid | 用户id |
username | 用户姓名 |
dateline | 操作时间 |
action | 什么操作 |
我坐在领奖台上,看着赞助商们一张张狰狞恐怖的脸庞,准备开始哭泣。看到我的脸涨得通红,妈妈把我抱过来安慰着,疼惜着。当听到喇叭里传出的刺耳声音时,我实在没忍住,哭了,哭得极伤心,台下的观众们先是一脸诧异,然后他们开始笑,笑得很开心,任凭我在妈妈的怀中挣扎抽泣。
今年我一岁零三个月,几个巨大的电脑集团合资搞了一个未来天才的奖学金,我是过来领奖的,因为在同龄儿童中,我是唯一一个懂得如何设置proxy的人,这个对他们来说是个奇迹。虽然我还不是很会说话,但起码的礼貌还是有的,接过了主办者递来的金色奖牌后,我带着满脸的泪花儿对他说“啪啪”。我比他们想象得更聪明,因为在他们的视线之外,我还会做更多的事,比如在线聊天,我每分钟可以用那双面积不到一寸的手打出一百二十个字来,如果高兴的话,我会在一个能看得见阳光的日子里背着妈妈用photoshop画一张抽象画,这些不能被他们发现,否则我会有很多麻烦,我的潜意识告诉我,一个少年天才会在众人的崇拜目光的狙击之下变成彻底的白痴。
其实我不算是个天才,之所以能做到这些,也只因为当初我狠下心来没喝那个叫孟婆的人递来的一碗汤,现在的这些雕虫小技只是我前生的一点回忆。而我之所以没喝那碗汤,除了因为它非常刺鼻之外,还有个很重要的原因:我不能忘了她,我们之间还有一个不见不散的约会,我必须回来找她。记得以前看过一个叫胭脂扣的电影,那里面的女鬼带着一串数字去寻找前世的缘分,我和她有区别,我不是鬼,而是个投胎重生过的人。不过我们却有相同的境遇,我也带着一串数字来找人,那串数字是她的ICQ号码,这使我能在internet蓬勃发展的今天从世界的任何一个角落找到她。说到这里,我想有必要回忆一下过去,让我们从头说起。
三年零三个月前,也就是一九九六年的冬季的某一天,在网上闲逛的我(不知道用我是不是合适,因为这几段里的我属于前世,为了图个方便,就先不改称呼了吧)无意间闯入了一个叫青草地的论坛,在那里我碰到了一个叫莲的女子,也就是上文中提到的她。第一次见她的时候,她正在贴一首席慕容的诗:我,是一朵盛开的夏荷。多希望,你能看见现在的我。风霜还不曾来侵蚀,秋雨还未滑落,青涩的季节又已离我远去,我已亭亭
不忧 亦不惧。现在正是最美丽的时刻,重门却已深锁,在芬芳的笑颜之后,谁人知我莲的心事。无缘的你啊,不是来得太早
就是,太迟。我没多想,直接回了一贴,把这首诗连带她那无病呻吟的小资情趣批驳得体无完肤,后果可想而知,我们大吵,揭开了我们之间的爱情故事的第一幕:不打不相识。风雨之后,我问她在哪儿,她说人在朝阳门。我们之间只距离一站路,我在东四十条。
接下来的数月,我心存邪念,准备把这个清纯温顺的女孩骗到手,我放弃了所有的业余时间回到网上与她见面,总算皇天不负有心人,有一天她说她爱上我了,欣喜之余我想邀她出来见一面,要求被驳回,她说她还是喜欢在网络的幻境里飘浮游离,我说随你,我会等你。那时候,我并不清楚我是不是爱她,因为现实中的我很空虚,总是在人前显露出一丝孤寂,有个叫师爷的同事说我有点自闭,我把它叫作忧郁。在金秋的某一个凌晨,我突然发现自己是真的爱上她了,因为那天我睡不着,就起床画画,一开始神智还算清醒,到后来就漫无目的地乱涂了,迷糊中睡去,第二天中午起床时,我发现那张速写纸上除了一张模糊的面孔外,还写了无数个我爱你。我把这件事告诉莲,想证明我的真心,她不太相信,因为一直以来我把自己伪装得玩世不恭,她怕我在打什么坏主意。那天的事其他都记不太清了,只记得她对我说过的最后一句话:这么老套的游戏你也拿出来玩,没劲。我好象是气冲冲下网的,隔了许久也没再去那个地方。在其他的聊天室和论坛逛了许久,也没再碰到一个让人心动的女子,只能讪讪地回去,发现她又在灌水,还是席慕容的诗:人若真能转世,世间若真有轮回,那么,我爱,我们前生曾是什么?你若曾是江南采莲的女子,我必是你皓腕下错过的那一朵。你若曾是那个逃学的顽童,我必是你袋中掉落的那颗弹珠,在路旁草丛里,目送你毫不知情地远去,你若曾是面壁的高僧,我必是殿前的那一炷香,焚烧著,陪伴过你一段静穆的时光。我觉得那首诗该是送给我的,就换了名字上去,我问她:“是在想念什么人么?”,她说是,“为什么不和他联系?”,她说:“我在守株待兔,他一定会回来找我”,然后就毫不留情地拆穿了我,她竟然记得我用过的所有proxy的IP。
我们终于见面了,在布满了金色树叶的日坛东门,手持一个黑色Gucci手包的她比我早到了三分钟,满头大汗的我连连陪不是。我想不起来是怎么样去牵她的手了,记忆这种东西不太靠得住,不可能象红木家具一样历久弥新,转过一世之后,留在我脑海里影像只剩下一副模糊的画面:我们在一个不知所谓的公园里追逐嬉戏,是泛黄的慢镜头,没有背景音乐,在一洼绿色的水面旁我唱歌给她听,是那首“初初见你,人群中独自美丽”,她骂我五音不全,但从表情上看来,她对我还算满意。那天我带了许多胶卷,全部拍光后才悻悻归去。回了家我给她打电话,问:“现在信不信我爱你?”,她说:“这有什么关系,两个人在一起玩得开心就是真理”。虽然我是个大她八岁并且已经没有太多时间去玩去选择的老男人,可对这个观点,我还是表示同意。到这里,我怎么也想不起下面的故事了,只能把这一格跳过,接下来的画面就是:年龄之间的差异使我们的感情生活产生了较大的距离,我们又吵。象所有的爱情故事一样,她对于所谓的沧桑男人心存痴迷,而我则对她的贪玩习气不太满意。
回想起那夜在三里屯吵架的一幕,她那些伤人的话象一个个炸雷在我的耳边响起,那天我喝高了暴吐,她拎着那只漆黑依旧的Gucci手包扬长而去,这使我对我们之间的感情产生了怀疑,回到单位,师爷劝我说小女孩都不懂事,想哄就哄,想蹬就蹬,千万别陷进去,我很沮丧地告诉他:“很可惜,我陷进去了”,我才不管别人是否骂我没出息。过了几天,我想给她打电话,手刚触到话筒,铃声响了,她在电话里带着哭腔说:“我想你”,我说:“咱们还真是心有灵犀”。我们坐下来谈论关于以后的生活问题,她说:“我想嫁给你”,我说:“其实我早盘算着非你莫娶”。可我当时还是没什么勇气和她同居,我潜意识里一直认为距离保持美感,我不希望这么快就打破了她对我的幻想,不能让她发现我原来是这么平庸和碌碌无为的老男人,我拒绝了她提出的“搬到一起住”的提议。
我到现在还不太能想清楚,当初在旺死城的时候,是什么使我有勇气拒绝那碗孟婆汤的,因为他们告诉我,如果不消除前生的回忆,那么前世和今生就会纠缠在一起,届时将产生的精神分裂使人痛苦之极。老太太最后一次把碗端到我面前的时候,我礼貌地再一次拒绝了那碗汤,我告诉她,我还有一个约会未了。说到这儿,我想起来了,的确答应过她的,我们约好了在最寒冷的冬季带她去我的老家无锡,去看满树盛开的梅花。其实我并不算是个一诺千金的人,这个理由也许只是自己的一个托辞,用我现在的智慧去想,是肯定想不清楚的,毕竟经过一道轮回的心灵,如同开过十万公里的越野车一样,动不动就要出毛病。
我们都爱看话剧,尤其是孟京辉的戏,在实验剧场,我们看了一出叫“思凡”的戏,那里面小尼姑高唱着寂寞难奈朝山下飞奔,满心欢喜地朝着她见到的第一个男人抛着真诚的媚眼,而那第一个男人却只是一个同样寂寞难奈的小僧。看完戏我问她:“如果你的生命中再多些选择,你能确定你会选择我吗?”,她在路上跳着格子,边跳边气踹嘘嘘地回答着:“不会,肯定不会,如果可以任我选的话,我一定会选TomHanks”,我紧紧拽着她的手,让她看我的眼睛:“你会吗?”她有些楞了,用力甩开我的手,开始喊:“为什么对你自己没有信心?为什么?只因为你是个而立之年的老男人?还是因为你在社里呆了这么久连个职称也没混上?或者说是因为师爷的稿费千字八百而你只有千字五十?”,她边说边退,在漆黑的没有路灯的北兵马司胡同里,她滑倒在地上开始抽泣,我呆立在她面前,有些惶恐,有些无奈,她知道所有关于我的事,甚至知道我存心掩盖过的一些小秘密,而这么久以来我精心为自己设计的面具也在那一刹那被撕得粉碎,我无话可说。她捡起地上的小石子儿往我身上扔,边哭边扔,我没躲,因为这大概是我最后一次能表现自己豪迈一面的机会了。我的膝盖被一块尖利的石子打中,我呻吟了一声,她爬起来帮我揉,说对不起,我说没事,这时她不哭了,换我哭,倒不是因为我窝囊,我想主要还是因为那一刻她那种关怀备至的眼神触痛了我心里较为柔软的部分。我说:“你走吧,我们这样下去估计戏不大”,她没吭声,转身就走,把我一个人留在漆黑的胡同里,我点了支烟抽起来,看着烟头红色的光晕在黑夜里一闪一闪,心特乱。三分钟以后,她又回来了,递了个麦当劳的汉堡给我:“吃吧,你就跟猪一样,夜里吃饭才香,撑死你得了”,我说:“我没开玩笑,你真的可以走了”,她说:“怎么着啊?这么就想甩了我?分手费的问题咱得好好谈谈”,我边啃汉堡边含糊其词:“什么分手费,我怎么你了就分手费?”,她笑着,“那你还想怎么着啊,我都非你不嫁了,你这儿说分手就分手,就算没分手费也得给点遮羞费啊”,我哭笑不得,手僵在半空中,她又递了包橙汁过来:“喝点,回头再噎着”,我低着头继续吃东西,狼吞虎咽,她也点了只烟,用一种我从来没听到过的语气说:“其实你不说我也知道,你爱我比我爱你多挺多,这么久以来,能忍受我这么任性的人也就你一个,我也是混得走投无路了才跟了你的,你呢,千万别自卑,咱们俩绝对算是同病相怜了”,我乐了:“哈,合着你也知道自己这点臭毛病啊”。她说:“少废话,今天我底儿也跟你露了,你丫要走要留给个准话儿”,我拉起她的手深情地道了句:“都到这份儿上了,我无路可逃,就依了你吧”。
我们相遇一周年的时候,师爷赞助了我一大捧玫瑰花,是他大力吹捧过的一个花店免费提供的,我带着那束花和一枚从灯市口买的小钻戒前往朝阳门。进了门第一句话:“嫁我得了,都是熟张儿,回头嫁不出去再砸手里,多不值当啊”,她半掩房门,从门缝里接过花和戒指就把门关了,在里面喊:“忒便宜了吧,你这个有半克拉吗?这么就想娶媳妇了?”,我掏出一个从白云观求来的铜制弥乐佛说:“还有呢”,她一开门,我把佛像给她看:“这个估计一千克拉都有了”。我告诉她:“你也老大不小的了,再不嫁更待何时啊,我这儿一早准备好了,大龄男青年,要模样有模样,要文化有文化,要婚房有婚房,最主要的是,这位男青年决定这辈子娶鸡随鸡、娶狗随狗”,“别贫,就烦你这样的,要不是看在咱多年深厚感情的份上,你这号人我一早大鸡毛掸子哄将出去”。此时夕阳美景,人约黄昏,两颗假装苍老的心灵紧靠在二十八楼A座的窗台上,滋拉滋拉冒着电火花。她点头应许时,我实在是按捺不住心头的愉悦,吼了两嗓子“你总是心太软心太软”。经过仔细筹划后,我们决定旅行结婚。在网上贴完婚讯后,似乎全世界的闲人都在那一刹那涌到了台前,端详者有之,艳羡者有之,祝福者有之,狂砸不已者亦有之,我们才不管别人怎么想,最后夫妻俩合着回了一贴“祝我们自己个儿白头偕老百姓永结同心”后,就义无反顾地下网收拾行李去了。那次,是我最后一次上网。
居委会大妈要了几颗喜糖,呲着没牙的嘴笑眯眯说“一路顺风,要注意计划生育啊”。她得回单位去办交接,到时候单位车送她去机场,她让我先把行李带过来,我们在机场碰头。她从家出去的时候,让我把护身符带上,我没搭茬,直接揽将过来狂吻一口,道声:“去吧,机场见,不见不散”,“恩,不见不散”。看着她的背影消失在胡同口,我拎上行李直奔机场,一路上,看不尽的大路牌,数不清的老杨树,这些原本熟视无睹的景致在我眼中曼妙之极。开到四元桥的时候,很不幸,我们的车出事了,被路上的薄冰搓了一下,整个车“轰”地飞天而起,估计在旁人眼里就是那些警匪片里的飞车特技,我只觉得头晕目眩,眼冒金星,人随着车在空中翻了无数个滚儿,比坐过山车刺激,落地的一刹那,我才想起来忘了系安全带,于是我的大脑袋磕在了前挡风板上,顿时晕菜。迷蒙中,觉得一股热流从头顶向下流淌,热热的湿湿的….不知过了多久,我又醒了,眼前一片光海,乌泱乌泱的各色人等如潮水般朝着最亮的地方挺进,我属于爱凑热闹的人,也跟着毯儿哄,勇往直前。走到一半才想起来今儿旅行结婚的事,赶紧四处张望,发现每个人神情肃然,身板儿挺直,我觉得有些怪异,皱着眉头硬着头皮往脚下看,好家伙,哥们儿竟然悬浮在半空中往前飘着,这才知道,刚才那场车祸使我当场歇菜。也罢,即来之则安之,跟着蹭吧,继续前行。到了中转站的时候,那个叫孟婆的老太太如期出现在我们的眼帘,再接下去就是我拒绝喝汤的那一幕了。孟婆说:“很多人不喝汤是为了回去报仇的,你这种事也有过,但结局好象都不算太好”,我说没关系,我这人没别的好,就是负责任,答应人家的事一定得办到。孟老太太继续说:“你现在回去投胎的话,就比她小了二十几岁,她会等你吗?这样值得吗?”,我白了她一眼:“看来你们真是在下面呆久了不了解行情,现在都是棒小伙儿傍老太太的,小三四张的都有,我这算什么”。在众人诧异的目光中,我施施然回到了人间,在通过一条极其黑暗的隧道之后,我的眼前又是一片光明,此时,一双巨手将我从隧道中拽将出来,用一种带着回音儿的声音说话:“恭喜你啊,张太太,是个大胖儿子”。
那,上面就是我前世的故事了。现在对我来说,最艰巨的任务就是在世界上寻找她了。我们的新家没装电话,老家已经拆迁,估计靠电话找她是没戏了,最可恨的是,我根本不知道我身处何方,这要万一生在了台湾,那何年何月才能与她重逢啊。我眯着怕见光的小眼睛四处打探,终于在窗口的一隅看到了我期待已久的字样:积水潭医院。哈哈,合着转半天又转回来了,从这儿回家估计打车都不出起步费。可我怎么才能使她相信那就是我呢?我甚至还不会说话啊,迄今为止,我只能用哭声来表达吃喝拉撒的要求,这使我很羞涩,所以我尽量少哭,于是我那新妈就被所有人簇拥着夸道:“张太太真是好福气,你儿子不哭不闹,性格随你,特恬静”。爱谁谁吧,我现在一门心思得出去找她,可实在是动弹不得,只能在无聊无知和空虚中虚度每一天,过了些日子,我出院了。襁褓中的我好奇地观察着窗外的每一处熟悉而又陌生的景致,赫然发现,这才几天啊,北京怎么变得面目全非了,一没留神,三环旁边多了这么多高层,我心里有点发毛,顺着车里的挂历看去,竟然已是一九九八年,也就是说我在那条隧道里虚度了整整一年,天那。想到这儿,我眼框又湿了,我知道她等得好辛苦,心里念叨着:“我回来了我回来了”。很令人头疼的是,我那抹清泪被误认成某种讯息,我被新妈当场从襁褓中拽出来,检视我那块一尘不染的尿不湿,TMD,什么世道。
到了家,我欣喜地发现新家里有电脑,还有一个56K的白猫,这说明,我可以在熟练使用双手以后,凭一己之力去寻找她了。想到这里,我双拳紧握,下定决心排除万难,一定要在最短时间内找回失去的春天。七八个月有余,我已经能顺利地爬行,但还不足以爬到电脑桌上去,我试过很多次,都失败了,那桌子太高,后来新妈见我爬的辛苦,就抱了我上桌,鼓励着:“宝贝儿子,以后好好学习,长大了当个科学家”,我没搭理她,死命地按开关,经过数次不懈的努力与尝试后,我把机器打开了。这时门铃响了,家里开了客人,新妈去开门,我继续操作,在她与客人寒喧的那几分钟内,我上了网,等他们发现时,每个人都惊呆了。妈妈把我举得老高,笑着说:“我儿子是个天才”,她大概认为我是看了爸爸平时的操作才懂这东西的。从这以后,我有很多机会接触电脑,终于在我满一岁的那天,趁他们不注意,我成功地down了一个ICQ下来。我心中狂喊着:“等我等我,我这就来了”。
我成功地与她联系上了,虽然她不给我确认讯息,使我无法看到她的在线情况,但我不气馁,我孜孜不倦地给她发着消息,当然不会是以前那段往事的暗示,那会使她伤心,甚至恐惧,我不能这么做,我尝试着把自己伪装成一个与前世的我性格差不多的人,事实上也无需伪装,我坚信,如果她第一次能爱上我,那第二次也不成问题。终于在一个深夜,她给我回了一个MSG,当时我真的是欣喜若狂,要不是怕被爸妈听见,我真想大哭一场以示极度兴奋。我们开始交谈了,她看上去变了许多,有种历遍红尘的感觉,那件事对她的伤害太大了。她说她不想再嫁人了,我百感交集。我尝试着安慰她,鼓励她,但并未要求她开始新生活,我说我想见她,她说不方便,我没再强求。但日子久了,我知道我们的感情在一天天加深。有一天,新妈兴冲冲地过来捏我的脸蛋儿,她说:“宝贝儿子,你帮妈妈赚了五千块钱,妈妈明天带你领奖”,这对我来说是个机会,因为这是我唯一能见到她的机会。妈妈看我笑得开心,赏了我一个喜之郎果冻,撑得我半死。晚上的时候,我告诉她我明天去领奖,让她来看我,她答应了。
我坐在领奖台上,看着赞助商们一张张狰狞恐怖的脸庞,准备开始哭泣。看到我的脸涨得通红,妈妈把我抱过来安慰着,疼惜着。当听到喇叭里传出的刺耳声音时,我实在没忍住,哭了,哭得极伤心,台下的观众们先是一脸诧异,然后他们开始笑,笑得很开心,任凭我在妈妈的怀中挣扎抽泣。我试图在人群中寻找她,可是乱无头绪,人太多,我眼花缭乱。有个很胖的四眼把我抱过去高高举在天上,我奋力挣扎,这时,一袭黑衣的她,出现在门旁,漠然扫视着云云众生,我大喊大哭,想引起她的注意,可她没看我,只是在寻找着那个网络上的我有可能出现的形象。人渐渐散了,她还没走,场内只剩下不到十个人,她终于看到我了,她朝我走过来了,越来越近,我几乎不能控制自己的情绪,不争气的眼泪顺腮直下,她走到了我的面前,饶有兴致地看着我,嘴里说着谁也听不清的话,我想问她“这么久以来,你过的好吗?”,可话到嗓子眼儿里只剩下哽咽,她掏出纸巾来帮我擦鼻涕,使我有机会拉住她的手,我死死拽住那只手,想永远永远都不放开,我把另外一只手臂张开,让她抱我,在得到妈妈的允许后,她把我抱起来了,我把头埋着她的颈中继续抽泣,低声说“我想你”,她把我的头扳起来,诧异地看着我,然后觉得自己大概是产生错觉了,我继续把嘴埋到她的耳边,在她的脸上吻了一下,含含糊糊说“终于回到你身边了”,这下她有些慌了,我再也控制不住自己的情绪了,只是一个劲儿抓住她的手不肯放,妈妈很奇怪,因为在这以前,我对陌生人一向是爱理不理的。她凝视着我,我看着她的眼睛,用手在她的脸庞上疼惜地摩梭着。妈妈这时被组委会和记者围住采访,无暇顾及这边的事,电脑旁只剩下我和她。
我指了指电脑,她把我抱过去了,我打开写字板打道:“莲,我想你,所以我回来了”。她惊呆了,我运手如飞在键盘上敲着:“你若曾是江南采莲的女子,我必是你皓腕下错过的那一朵”,她摇着头后退,我继续打“是我啊,咱们说过要不见不散的”,她几乎崩溃,呆在原地不动。我死盯着她,她的眼框里瞬间渗满了泪,可她还是不敢靠近我,我打道:“过来抱抱我好么?”,她慢慢地走近我,小心翼翼地摸着我的头颅,我把手臂张开,拥她入怀,这次她紧紧地抱着我,贴在她的心上,我能感觉到那里在剧烈跳动,我的手在她那滑满泪水的脸上和那头黑发上轻柔抚摸,我把她的手托到我的胸口,让她感觉我的心跳,她一句话也说不出来,只是在我的脸上狂吻不已,直到被妈妈发现后喝止。妈妈把我抢回怀抱,她魂不守舍站在原地,我又哭又闹,还是被带走了,离开的那一刹那,她冲过来拽住我的手,哑着嗓子说了句:“我等你,不见不散”。在迅速后退的视野中,我看到她慢慢地瘫软,颓坐在地上。当她的影像差不多消失在走廊尽头时,我死命昂着头用心喊了句:“不见不散”。
财神按:好也罢赖也罢,总算是把这段子写完了,用了整整一个晚上,真累。谢谢您又看到了结尾,这次除了欣慰之外,我还多了一种成就感,再次感谢。
新成语:【正龙拍虎】
词目:正龙拍虎
发音:zhèng lóng
pāi hǔ
释义:
① 意指某人或某集团为利益驱动做假,被揭穿后还抵死不认;
② 社会公信力缺失;
典故:
① 《史记·周正龙列传》:
“周氏正龙者,秦地金州镇坪人也…正龙置彼画于深山密林中,遮淹修饰,远近数数摄之,得虎照数十副.照中虎卧于林下,双目炯炯,俨然真大虫也.归而献
之县官,官喜,以呈上官,州府台阁皆不疑,布之互联网,传告天下,厚赏正龙.网民见之,咸以为假,竟相怒骂之,有好事者遍搜天下旧年画,果得虎照原版画,
多不可数.正龙之谋遂败焉,天下皆以为耻.”
②
《正龙列传之龙克赝虎》第一篇:“呜呼!彼以其伪虎诈利为可恒也哉,是囚灾物也!只增龙克赝虎笑.”
③ 《诌氏全书·正龙传》:“古有武松打虎,今有正龙拍虎,更有关克挺虎”
④《天涯史记之周正龙大传》:“太史公曰:陕府本民情纯朴,素为文重德厚之地,奈其民周正龙者,心术多邪,妄以一己之智,愚天下士人,自是愚不可及,然天下愚者,又何止周正龙耶?”
例句:
① 汉芯造假者正龙拍虎,最终咎由自取.[关键词:汉芯]
② 中石油上市,各媒体正龙拍虎,使新股民站在48元之巅.[关键词:中石油
第一套]
③ 中国彩票正龙拍虎,再次告诉国民双色球再创彩市中奖纪录
一名彩民独中1.02亿元,使彩民趋之若骛.[关键词:双色球 1.02亿]
施文建
0 关于本文档
1 VSFTPD简述
2 VSFTPD的安装
2.1 RHL9+vsftpd-1.1.3-8.i386.rpm包的安装
2.2 vsftpd-1.2.0.tar.gz的安装
3 VSFTPD的文件结构
4 VSFTPD的启动与停止
5 VSFTPD的设置选项
5.1 连接选项
5.1.1 监听地址与控制端口
5.1.2 FTP模式与数据端口
5.1.3 ASCII模式
5.2 性能与负载控制
5.2.1 超时选项
5.2.2 负载控制
5.3 用户选项
5.3.1 匿名用户
5.3.2 本地用户
5.3.3 虚拟用户
5.4 安全措施
5.4.1 用户登录控制
5.4.2 目录访问控制
5.4.3 文件操作控制
5.4.4 新增文件权限设定
5.5 提示信息
5.6 日志设置
5.7 其他设置
6 VSFTPD应用
6.1 允许匿名用户上传文件
6.2 限制用户在自家目录
6.3 配置高安全级别的匿名FTP服务器
6.4 基于IP地址的虚拟FTP服务器
6.5 虚拟用户的配置
6.5.1 VSFTPD的虚拟用户介绍
6.5.2 用户创建和目录设置
6.5.3 配置文件的设置
6.5.3.1 基本设置
6.5.3.2 权限设置
6.5.3.3 虚拟用户的其他配置
6.5.3.4 虚拟用户个人目录设置
6.5.4 MySQL保存虚拟用户
——————————————-
0、关于本文档
本文档是个人的学习整理。允许大家翻阅,摘抄,引用。更欢迎指出其中不对之处。文档的内容主要来自VSFTPD自身文档、个人学习心得以及网络资料,若有类同,实属正常,∶)。
时间:2005-04-27 作者:施文建 来源:不详 |
![]() |
|
VSFTPD
施文建 0 关于本文档 ——————————————- 0、关于本文档 本文档是个人的学习整理。允许大家翻阅,摘抄,引用。更欢迎指出其中不对之处。文档的内容主要来自VSFTPD自身文档、个人学习心得以及网络资料,若有类同,实属正常,∶)。 本文档基于RedHat Linux 9和VSFTPD-1.1.3-8。如果有不同版本,则有专门文字说明。 1、VSFTPD简述 如果试问哪种FTP服务器最安全?那么在UNIX和Linux中,首推的就是VSFTP(Very Secure FTP 2、VSFTPD的安装 2.1、RHL9+vsftpd-.1.1.3-8.i386.rpm包的安装 VSFTPD的安装很简单。在RHL9中,在图形界面下依次执行“Main Menu”-“System 2.2、vsftpd-1.2.0.tar.gz的安装 ⑴准备条件 VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。 VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。 [root@hpe45 root]# mkdir /usr/share/empty/ VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。 ⑵编译VSFTPD 从官方站点下载到/root目录,执行以下命令: ⑶安装编译好的VSFTPD 执行“make install”将编译好的二进制文件、手册等复制到相应目录。在RHL9上,可能需要手动执行以下复制: ⑷为本地用户设置PAM 如果允许本地用户登录VSFTPD,执行以下操作: 3、VSFTPD的文件结构 VSFTPD的文件结构是很简洁的,主要包括: 此外VSFTPD的日志文件位于/etc/logrotate.d/vsftpd.log。 4、VSFTPD的启动与停止 当listen参数值为YES时,RHL9中的默认值,VSFTPD单独运行,我们可以使用脚本/etc/rc.d/init.d/vsftpd来启动、关闭以及重启VSFTPD。命令如下: /etc/rc.d/init.d/vsftpd start|stop|restart 如果说在RHL9上,您还希望使用Xinetd启动VSFTPD的运行方式,那么首先要将vsftpd.conf配置文件中的listen参数值改为NO。其次,生成一个/etc/xinetd.d/vsftpd文件,内容如下: service vsftpd 由于VSFTPD的单独模式已经拥有足够的能力,所以后面6中讨论到的应用,都是以单独模式来运行的,而非Xinetd方式。 注:还可以直接执行vsftpd来启动FTP服务,关闭时使用“kill”命令。 5、VSFTPD的设置选项 VSFTPD包中所带的vsftpd.conf文件配置比较简单,而且非常偏执狂的(文档自称:-))。我们可以根据实际情况对其进行一些设置,以使得VSFTPD更加可用。 5.1、连接选项 本部分主要是一些与建立FTP链接相关的选项。 5.1.1、监听地址与控制端口 listen_address=ip address listen_port=port_value 5.1.2、FTP模式与数据端口 FTP 分为两类,PORT FTP和PASV FTP,PORT port_enable=YES|NO connetc_from_port_20=YES|NO ftp_data_port=port number port_promiscuous=YES|NO pasv_enable=YES|NO pasv_min_port=port number pasv_promiscuous=YES|NO pasv_address= 5.1.3 ASCII模式 默认情况下,VSFTPD是禁止使用ASCII传输模式。即使FTP客户端使用asc命令,指明要使用ASCII模式,但是,VSFTPD表面上接受了asc命令,而在实际传输文件时,还是使用二进制方式。下面选项控制VSFTPD是否使用ASCII传输模式。 ascii_upload_enable=YES|NO ascii_download_enable=YES|NO 5.2、性能与负载控制 5.2.1、超时选项 idle_session_timeout= data_connection_timeout= accept_timeout=numerical value connect_timeout=numerical value 5.2.2 负载控制 max_clients=numerical value max_per_ip=numerical value anon_max_rate=value local_max_rate=value 步骤如下: VSFTPD 对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s, 5.3 用户选项 VSFTPD的用户分为三类:匿名用户、本地用户(local user)以及虚拟用户(guest)。 5.3.1、匿名用户 anonymous_enable=YES|NO ftp_username= no_anon_password=YES|NO banned_email_file=/etc/vsftpd.banned_emails anon_root= anon_world_readable_only=YES|NO anon_upload_enable=YES|NO anon_mkdir_write_enable=YES|NO anon_other_write_enable=YES|NO chown_uploads=YES|NO chown_username=whoever 5.3.2、本地用户 在使用FTP服务的用户中,除了匿名用户外,还有一类在FTP服务器所属主机上拥有账号的用户。VSFTPD中称此类用户为本地用户(local local_enable=YES|NO local_root= user_config_dir= 5.3.3、虚拟用户 guest_enable=YES|NO guest_username= 5.4、安全措施 5.4.1、用户登录控制 pam_service_name=vsftpd /etc/vsftpd.ftpusers userlist_enable=YES|NO userlist_file=/etc/vsftpd.user_list userlist_deny=YES|NO 5.4.2、目录访问控制 chroot_list_enable=YES|NO chroot_list_file=/etc/vsftpd/chroot_list chroot_local_users=YES|NO passwd_chroot_enable 5.4.3、文件操作控制 hide_ids=YES|NO ls_recurse_enable=YES|NO write_enable=YES|NO secure_chroot_dir= 5.4.4、新增文件权限设定 anon_umask= file_open_mode= local_umask= 5.5、提示信息 ftpd_banner=login banner string banner_file=/directory/vsftpd_banner_file dirmessage_enable=YES|MO message_file= 5.6、日志设置 xferlog_enable=YES|NO xferlog_file= xferlog_std_format=YES|NO log_ftp_protocol=YES|NO 5.7、其他设置 setproctitle_enable=YES|NO text_userdb_names=YES|No user_localtime=YES|NO check_shell=YES|NO nopriv_user= pam_service_name= 6、VSFTPD应用 本部分介绍VSFTPD的具体应用方法。 6.1、允许匿名用户上传文件 在vsftpd.conf文件中修改或增加以下选项: 然后创建供匿名用户上传文件的目录,并设定权限: 6.2、限制用户在自家目录 在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限范围内进行上传和下载,这无疑是个不安全因素。 1、限制所有的本地用户在自家目录 6.3、配置高安全级别的匿名FTP服务器 VSFTPD自带的简单配置文件已经自称是偏执狂了,这里看看能否更加偏执一些,:)。有些选项默认已经采用安全性的设置,这里就不再写出了。 #只允许匿名访问,不允许本地用户访问 #使用ftpd_banner取代VSFTPD默认的欢迎词,免得泄漏相关信息 #取消写权限 #使用单独模式,并指定监听的IP地址 #启用详细的日志记录格式 6.4、基于IP地址的虚拟FTP服务器 假定服务器有两个IP地址,192.168.0.1和192.168.0.2。VSFTPD是建立在192.168.0.1上的,现在我们在192.168.0.2上再提供一个虚拟FTP服务器。如何在一台服务器上使用多个IP 1、创建虚拟FTP服务器的根目录。 2、增加虚拟FTP服务器的匿名用户帐号。原先的FTP服务器使用系统用户ftp作为其匿名用户帐号。我们要增加一个ftp2用于虚拟FTP服务器。 useradd -d /var/ftp2 -M ftp2 3、创建虚拟FTP服务器的配置文件。复制原来的vsftpd.conf作为虚拟FTP服务器的配置文件,并修改相关参数。 4、启动虚拟FTP服务器。 以下命令单独启动虚拟FTP服务器: 6.5、虚拟用户的配置 6.5.1、VSFTPD的虚拟用户介绍 配置虚拟用户分为几部分:guest用户的创建、用户/口令的保存、PAM认证配置、vsftpd.conf文件设置等。具体的配置方法,参考下面小节。注:在后面的例子中,假定存在虚拟用户xiaotong和xiaowang。 6.5.2 用户创建和目录设置 在系统中添加vsftpdguest用户,作为虚拟用户在系统中的代表。 useradd vsftpdguest 当虚拟用户登录后,所在的位置为vsftpdguest的自家目录/home/vsftpdguest。如果要让虚拟用户登录到/var/ftp等其他目录,修改vsftpdguest的自家目录即可。 6.5.3、配置文件的设置 6.5.3.1、基本设置。 在vsftpd.conf配置文件中,加入以下参数: 6.5.3.2、虚拟用户的权限配置。 ①控制虚拟用户浏览目录 [root@hpe45 vsftpd]# chown vsftpdguest.vsftpdguest 在VSFTPD-1.2.0中当virtual_use_local_privs=YES时,只需write_enable=YES,虚拟用户就可以就拥有写权限。 6.5.3.3、虚拟用户的其他配置 ①限定虚拟用户在自家目录。 chroot_local_user=NO ②虚拟用户的个人配置。 如果想让个别的虚拟用户拥有自己特别的配置,同样可以建立虚拟用户的个人配置文件。在主配置文件中加入: 6.5.3.4、虚拟用户个人目录设置 大家可以发现,无论是哪个虚拟用户,登录后所在的目录都是/home/vsftpdguest,即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户建立自家目录。 一种作法是在虚拟用户的个人配置文件中使用local_root选项指定虚拟用户的自家目录。以xiaowang为例,在第上步的基础上,首先/etc/vsftpd/vsftpd_user_conf/xiaowang文件中加入: local_root=/home/xiaowang 6.5.4、MySQL保存虚拟用户 1、虚拟用户的用户名/口令的保存。这部分在MySQL数据库中完成。首先,创建数据库vsftpdvu以及表users,并插入虚拟用户xiaotong、xiaowang。执行以下命令: [root@hpe45 vsftpd]#mysql -p 然后,授权vsftpdguest只能读vsftpdvu数据库的users表。执行以下命令: 如果要验证刚才的操作是否成功可以执行下面命令: 2、设置PAM认证。这里我们要用到一个利用mysql进行pam验证的开源项目(http: 接下来,我们要设置vsftpd的PAM验证文件。打开/etc/pam.d/vsftpd文件,加入以下内容: |