免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7643 | 回复: 0
打印 上一主题 下一主题

[新手入门] AIX5.3 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-24 16:45 |只看该作者 |倒序浏览

使用openssh
测试环境:aix5.3ML02
1)直接用AIX toolbox光盘安装smitty installp openssl-0.9.7d
2)直接用expansion pack盘安装
openssh,base
openssh.license
openssh.man.en_us
安装后自动会起sshd进程,就可以用putty登录了。
4)如想每次启动直接起ssh,在/etc/initab中加:
startsshd:2:wait:/usr/sbin/sshd
22:52 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!158');]写入日志[/url]
|
AIX

HBA的属性
570 aix5.3 。
连fastt600时找不到盘。检查连线有问题,2个controller连在一个switch上(没有划zone的情况下是不允许的)。改正。
检查FC switch,连570上5716的port为L port,正常应为F port。
注:brocade的交换机(2005或2109系列)
F port为连终端设备(主机或存储),E port为连另外switch,L port为loop设备,U port为没有连线,G port为中间状态。
由于已有4-5起相同案例(有520,550,570),均为P5(aix5.3)+brocade交换机。
个人认为是HBA设置问题,老毛说可能有一些HBA卡本身有问题。
解决方法:先将HBA的属性“INIT Link flags”改为"Pt2Pt",再改回”al",虽然改后不改回使用正常,一个客户已经用了4个月了,但我们的手册上是不支持Pt2Pt模式的,所以要是有这样的问题,还是尽量用"al"先,不行再用我的野路子。
注:
al means: "try to initialize the link as fabric/pt2pt mode first, then if that fails, fall back to arbitrated loop"。
pt2pt means: "try to initialize the link as fabric/pt2pt mode first, then if that fails, give up"。
so对于5716连交换机的情况,这2个模式应该是一样的,对于直连存储才会有区别。
22:50 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!160');]写入日志[/url]
|
AIX

mksysb failed
mksysb failed.
建立 rootvg 的信息文件 (/image.data)
建立磁带引导映象
bosboot: 引导映象是 17102 个 512 字节块。
建立要备份的文件列表。wc: : 无效的多字节字符。
/tmp/mksysb.442568/.archive.list.442568: 无效的多字节字符。
/usr/bin/mksysb[944]:  expected_size = expected_size / 1024 : 0403-009 指定的数
对此命令无效。
客户用的中文系统,检查IBM补丁,发现没有打IY70570.
22:18 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!156');]写入日志[/url]
|
AIX

Pserver 四位代码总结
客户的一台机器550报0555,用aix 5.3的boot盘引导时报0C44.
可能引起0C44的原因有:90%是由于主机连了大量的外置磁盘阵列(如EMC)或部分老型号磁盘陈列,导致0C44时间过长。
其他的原因可能是光盘或微码问题。
由于客户处的53光盘是2004/9月出的,在拔HBA线无效的情况下,判断为CD问题。可惜现场工程师没有自带光盘。
第2天带光盘到现场,用我的5304光盘引导正常。
-------------------------
0C33
进维护方式
# lscons
应返回 /dev/lft0
如果返回的值不是/dev/lft0,则需要使用下述命令:
# smit chcons
PATHNAME of console ---------[/dev/lft0]  
-------------------------
0C45
老机器装新系统报0C45
可能是cdrom微码问题。
Lscfg –vl cd0
如果PN是04N2964且ROS小于1.04,就升级到1.06  
22:13 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!155');]写入日志[/url]
|
AIX

2006/7/30
AIX服务级别---你所需要了解的基本资料
TL是什么?
TL是”Technology Level”的缩写。 从2006年开始,原来的AIX的Maintenance Level 将改称为 Technology Level。 并且,每年只发布两个新版本。第一个TL 只限于硬件的特征和功能增强,以及软件服务。 第二个TL,将包括新的硬件特征和功能增强,软件服务,和新的软件特征,因此是这两个版本中较大的一个。
显示系统的TL 级别可用以下命令:
oslevel -r
SP是什么?
SP 是 “Service Pack” 的缩写。Service Pack 概念的引入是为了把产生在相邻的两个Technology Level之间的仅仅关于服务的更新(即PTF)打包以便于识别。这些程序补钉是针对于高度普遍的,关键的,或与安全性相关的问题的。IBM将针对AIX的N 和N-1 release (例如:V5.3 和V5.2) 的最新的Technology Level (例如:5300-04和5200-08) 提供Service Pack. 发布的周期大约为Technology Level发布后的每4到6周。
查看系统的Service Pack 级别,可用以下命令:
oslevel -s
例如:对于一个AIX V5.3, Technology Level 4, Service Pack 2的系统来说,会有以下的输出
oslevel -s
5300-04-02
CSP是什么?
Concluding Service Pack 是指一个Technology Level的最后一个Service Pack.
同SP一样,CSP将会包括高度普遍的,关键的,或与安全性相关的问题的程序补钉,
但CSP还会包括新的Technology Level的补钉中那些与本Technology Level 的这些问题相关的补钉。因此,一个CSP中会含有一个是新Technology Level的一部分的服务子集。CSP会在新的Technology Level 发布以后很快发布。
例如:若Technology Level 5300-04 的发布日期为2006年2月,前一版本5300-03的CSP会于约4至8周后发布。安装CSP后,运行“oslevel -s” 的输出会是 “5300—03-CSP”。
通过使用Interim Fix,某个TL的CSP认可获得延续的服务。
IF是什么?
在AIX 5L 中,使用”Interim Fix”作为以前的”emergency fix” 或“efix”的新的名称。目的是简化命名方式,并避免在IBM所有的产品中的命名混淆。因为”Interim Fix”的词义更好地表达了它的临时性,暗指将来会有经过更完全测试的补钉可供使用。
IBM将会给目前所支持的最新的两个AIX release(例如:AIX 5.3 和 V5.2) 的每个release的最新的两个Technology Level 提供非安全性相关问题的IF.。
所有的IF的应用,需使用”emgr”工具。
Fileset是什么?
在AIX 5L操作系统的文件打包结构中,把操作系统分成许多fileset。每个fileset 包含的是一组逻辑上相关的文件。例如:与TCP/IP 客户端功能相关的文件都打包在bos.net.tcp.client fileset 中。
由于每个fileset可独立安装和更新,从而安装的颗粒度更细,更新程序的打包更小。Fileset的版本由Version, Release, Maintenance level 和Fix level组成,称作VRMF。 (例如: bos.rte 5.3.0.0 代表 version 5, release 3, Maintenance level 0 , Fix level 0)。
PTF是什么?
PTF是 Prgram Temporary Fix的缩写。它是AIX 5L 的某个fileset 的更新程序。PTF的编号只用于软件分发用途,而不会被记录在 AIX 5L software vital product database 中。只有已安装的fileset 及其VRMF才会被AIX 5L所记录追踪。
官方解释:
http://www.ibm.com/servers/eserver/support/unixservers/aix_service_strategy.pdf
9:42 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!154');]写入日志[/url]
|
AIX

2006/7/24
提示符前加主机名、路径
在.profile或者.dtprofile中加入

export PS1=`hostname`'[$PWD]#'
14:33 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!152');]写入日志[/url]
|
AIX

2006/7/20
在 AIX 系统上跟踪以太网信息包
请使用以下命令:
#/usr/sbin/iptrace -i en0 /tmp/iptrace
要查看跟踪的输出,请运行以下命令:
#/usr/sbin/ipreport -rns /tmp/iptrace >/tmp/ipreport
10:48 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!150');]写入日志[/url]
|
AIX

2006/7/13
oracle RAC 创建数据库时没有权限访问并发裸设备
解决方法:
在安装oracle rac时oracle无法正常访问并行裸设备。
export PGSD_SUBSYS=grpsvcs 在oracle用户下的.profile里加入即可解决oracle无法并行访问raw lv
或者不安装VSD用的pssp rsct.basic.sp &rsct.compat.basic.sp和所有的VSD安装包
11:23 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!149');]写入日志[/url]
|
AIX

hmc中不能打开小机终端的解决办法
1、利用网络登录到出现问题的逻辑分区,用root账户登录。
2、找出虚拟终端所对应的“串口卡”设备:
#lsdev -C |grep available
sa3                             Available                        LPAR Virtual Serial Adapter
3、找出虚拟终端所对应的tty设备:
#lsdev -p sa3
tty0                             Available                        Asynchronous Terminal
4、启用此tty设备上的登录界面:
penable tty0
登录提示将出现在HMC上的虚拟终端窗口中。
10:52 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!148');]写入日志[/url]
|
AIX

2006/6/28
aix如何用ssh
1)直接用AIX toolbox光盘安装smitty installp openssl-0.9.7d
2)直接用expansion pack盘安装
openssh,base
openssh.license
openssh.man.en_us
3)安装后自动会起sshd进程,就可以用putty登录了。
如想每次启动直接起ssh,在/etc/initab中加:
startsshd:2:wait:/usr/sbin/sshd

-------------------------------------------------------------------------------------
在AIX 4.3.3系统里,openSSH是用RPM格式的安装包来安装的,而在5.1和5.2的系统里是用installp格式的安装包来安装的。在4.3.3系统上安装有如下三个步骤:
1.安装首要必备的文件集;
2.下载rpm格式的安装包;
3.安装openSSH必需的rpm安装包。
1.安装首要必备的文件集
在安装rpm格式的安装包之前需要安装文件集rpm.rte和perl.rte,rpm.rte文件集能够通过以下途径获得:
Linux Toolbox CD 光盘或者Linux Toolbox 站点:
http://www-1.ibm.com/servers/aix/products/aixos/linux/download.html
这些文件集可以通过smitty installp 命令来安装
2.下载rpm格式的安装包
rpm格式的安装包能够从以下网址下载:
http://www-1.ibm.com/servers/aix/products/aixos/linux/download.html
在这个网页上,prngd程序(Psuedo Random Number Generator Daemon)和zlib压缩和解压缩库能被下载,它们是安装openssl rpm安装包所首要必需的,他们各自对应的文件集为:prngd-0.9.23-2.aix4.3.ppc.rpm和zlib-1.aix4.3..ppc.rpm。
在分类内容下载区域的右上方点击AIX TOOLbox Cryptographic Content,如果你不是一个已注册的用户,你应该先注册你自己。然后点击在面板底部出现的Accept License按钮并开始下载openssl和openssh rpm安装包:
openssl-0.9e-2.aix4.3.ppc.rpm
openssl-devel-0.9.6e-2.aix4.3.ppc.rpm
openssl-doc-0.9.6e-2.aix4.3.ppc.rpm
openssh-3.4p1-4.aix4.3.ppc.rpm
openssh-server-3.4p1-4.aix4.3.ppc.rpm
openssh-clients-3.4p1-4.aix4.3.ppc.rpm
3.安装openSSH必需的rpm安装包
把上一步下载的rpm文件包放到一个目录下面,并在此当前目录下运行如下命令进行安装:
# rpm -i zlib-1.1.4-1.aix4.3.ppc.rpm
# rpm -i prngd-0.9.23-2.aix4.3.ppc.rpm
# rpm -i openssl-0.9e-2.aix4.3.ppc.rpm
# rpm -i openssl-devel-0.9.6e-2.aix4.3.ppc.rpm
# rpm -i openssl-doc-0.9.6e-2.aix4.3.ppc.rpm
# rpm -i openssh-3.4p1-4.aix4.3.ppc.rpm
# rpm -i openssh-server-3.4p1-4.aix4.3.ppc.rpm
# rpm -i openssh-clients-3.4p1-4.aix4.3.ppc.rpm
有时在安装openssl文件包时会得到 error: failed dependencies错误,如果出现这种错误请运行如下命令:
# rpm -i --nodeps openssl-0.9.6e-2.aix4.3.ppc.rpm
下面的命令能用来更新AIX-rpm:
# /usr/sbin/updtvpkg
prngd必须在openssl和openssh安装之前安装,并且openssl又是安装openssh rpm 文件包所首要必需的。
文件集 openssl-devel-0.9.6e-2.aix4.3.ppc.rpm 和 openssl-doc-0.9.6e-2.aix4.3.ppc.rpm 不是安装openSSH所必需的。
想验证一下这些文件包是否被安装,请运行如下命令:
# rpm -qa | egrep '(openssl|openssh|prng)'
-->;
zlib-1.1.4-1
prngd-0.9.23-2
openssl-0.9.6e-2
openssl-devel-0.9.6e-2
openssl-doc-0.9.6e-2
openssh-3.4p1-4
openssh-server-3.4p1-4
openssh-clients-3.4p1-4
这些文件包被装在/opt/freeware目录下,并且建立了一些连接在/usr/bin或者/usr/sbin目录里,如下所示:
# ls -l /usr/bin/ssh
lrwxrwxrwx --1 root --system -----26 Oct 17 08:07 /usr/bin/ssh ->; ------------------------------------------------../../opt/freeware/bin/ssh
# ls -l /usr/sbin/sshd
lrwxrwxrwx ----1 root ----system ----28 Oct 17 08:06 /usr/sbin/sshd ->; ../../opt/freeware/sbin/sshd
(二)在AIX 5.1系统上安装OpenSSH
在5.1系统里,openssh本身的安装包是installp格式,但是所有的首要必备文件包(包括openssl)只能用rpm -i命令来安装(用与4.3.3一样的rpm文件包)。
installp 格式的安装包能够从以下网址下载:
http://oss.software.ibm.com/develoerworks/projects/opensshi
首先需要安装首要必备的文件包如下:
# rpm -i zlib-1.1.4-1.aix4.3.ppc.rpm
# rpm -i prngd-0.9.23-2.aix4.3.ppc.rpm
# rpm -i openssl-0.9e-2.aix4.3.ppc.rpm
# rpm -i openssl-devel-0.9.6e-2.aix4.3.ppc.rpm
# rpm -i openssl-doc-0.9.6e-2.aix4.3.ppc.rpm
用smitty installp命令来安装从openssh34p1_51.tar文件中解压缩出来的openssh文件集,下面这些是安装openssh所需要的从tar文件里解压缩的文件集:
openssh.base.client
openssh.base.server  
openssh.license
openssh.man.en_US
openssh.msg.en_US  
在用smit菜单安装时必须更改Accept new License agreement栏的值为yes,否则安装将会失败。  
用下面的命令来验证你安装了的文件集:
# lslpp -l | grep ssh  
openssh.base.client --3.4.0.0 COMMITTED Open Secure Shell Commands
openssh.base.server --3.4.0.0 COMMITTED Open Secure Shell Server
openssh.license -- -- 3.4.0.0 COMMITTED Open Secure Shell License
openssh.man.en_US -- -3.4.0.0 COMMITTED Open Secure Shell
openssh.msg.en_US -- -3.4.0.0 COMMITTED Open Secure Shell Messages -
openssh.base.client --3.4.0.0 COMMITTED Open Secure Shell Commands
openssh.base.server --3.4.0.0 COMMITTED Open Secure Shell Server
你也将发现ssh命令位于/usr/bin目录下:
# ls -al /usr/bin/ssh
-r-xr-xr-x --1 root -- system -- --503240 Sep 06 13:11 /usr/bin/ssh
# ls -al /usr/bin/scp
-r-xr-xr-x --1 root --system -- --64654 Sep 06 13:11 /usr/bin/scp
(三)在4.3和5.1系统上的初始化配置
在/etc/inittab文件里有如下条目将在系统启动时调用在/etc/rc.d/rc2.d目录下所有以S开始的脚本:
l2:2:wait:/etc/rc.d/rc 2
在/etc/rc.d/rc2.d目录下,下面的例子显示出启动sshd所必需的符号连接:
在4.3.3:
#ls -l /etc/rc.d/rc2.d | grep ssh
lrwxrwxrwx --1 root --system --14 Oct 17 08:06 K55sshd ->; ../init.d/sshd
lrwxrwxrwx --1 root --system --14 Oct 17 08:06 S55sshd ->; ../init.d/sshd
在5.1 :
# ls -l /etc/rc.d/rc2.d | grep ssh
-r-xr-xr-x --1 root --system -- --307 Oct 21 16:11 Ksshd
-r-xr-xr-x --1 root --system -- --308 Oct 21 16:11 Ssshd
prngd程序被/etc/inittab文件里的如下条目启动:
prng:2:wait:/usr/bin/startsrc -s prngd
如果想要指定SSH2协议在OPenSSH被用,需要在/etc/ssh/sshd.config文件里加入如下行:
Protocol 2
可以用telnet命令来验证SSH协议的版本:
# telnet localhost 22
Trying...
Connected to localhost.austin.ibm.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_3.4p1
上面显示你现在正在用ssh2.
如果你看到如下信息:
# telnet localhost 22
Trying...
telnet: connect: A remote host refused an attempted connect operation.
那么说明sshd程序现在没有运行,用Ctrl-c和q来终止,然后运行如下命令:
#startsrc -s sshd
不管什么时候调整了/etc/ssh/sshd.config文件,ssh都需要停掉并重新启动:
#stopsrc -s sshd
#startsrc -s sshd
prngd也能用同样的方法停止和启动。
10:24 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!147');]写入日志[/url]
|
AIX

2006/6/15
AIX:在AIX 上MOUNT *.ISO镜像文件
经测试,在aix4.3.3和aix5.1都可以。
1、建立一个逻辑卷,大小和ISO image相同或者大些。
2、在/etc/filesystems文件中加入并编辑该逻辑卷条目,设置vfs为cdrfs
例如:
# vi /etc/filesystems
/isocd:
   dev = /dev/isocd
   vfs = cdrfs
   mount = false
   options = ro
   account = false
3) 为该LV创建加载点  /iso_dir
4) 用dd命令拷贝该iso images到该LV  
# dd if=/cdrom/domino.iso of=/dev/isocd   
5) 和mount CD-ROM一样,mount该  
# mount -rv cdrfs /dev/isocd /iso_dir
6) cd /iso_dir就可以看到你想要的东东了。没有刻录机也没有关系啦  :)
15:38 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!146');]写入日志[/url]
|
AIX

2006/6/8
LINUX:RPM的使用--详细演示安装,删除和查询
声明:可以自由转载本文,但请务必保留本文的完整性。
作者:张子坚
说明:本文所涉及示例均在fedora core3下得到。所使用RPM包为:lynx-2.8.5-11.i386.rpm和lynx-2.8.5-18.i386.rpm。
--------------------------------------------------------------------------------
  
Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
  
安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
  
一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
  
任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。  
--------------------------------------------------------------------------------
以下简要介绍RPM包的安装,删除和查询
RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
  
rpm命令的格式为:
rpm [options] [packages]
  
第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
  
对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。  
--------------------------------------------------------------------------------
  
RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
  
以下为rpm --showrc命令显示的节选:
  
示例:
  
此为部分显示结果
[root@localhost ~]# rpm --showrc
ARCHITECTURE AND OS:
build arch            : i386
compatible build archs: athlon i686 i586 i486 i386 noarch
build os              : Linux
compatible build os's : linux
install arch          : athlon
install os            : Linux
compatible archs      : athlon i686 i586 i486 i386 noarch
compatible os's       : linux
RPMRC VALUES:
macrofiles            : /usr/lib/rpm/macros:/usr/lib/rpm/i386-linux/macros:/usr/lib/rpm/redhat/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/i386-linux/macros:~/.rpmmacros
optflags              : %{__global_cflags} -m32 -march=athlon
Features supported by rpmlib:
    rpmlib(VersionedDependencies) = 3.0.3-1
        PreReq:, Provides:, and Obsoletes: dependencies support versions.
    rpmlib(CompressedFileNames) = 3.0.4-1
        file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
    rpmlib(PayloadIsBzip2) = 3.0.5-1
        package payload can be compressed using bzip2.  
--------------------------------------------------------------------------------
  
rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
  
示例:
[root@localhost ~]# rpm -ivh ftp://fr.rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/lynx-*
Retrieving ftp://fr.rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/lynx-2.8.5-18.i386.rpm
Preparing...                ########################################### [100%]
   1:lynx                   ########################################### [100%]  
--------------------------------------------------------------------------------
  
以下列出一些通用选项(可以用于所有模式):
--dbpath path
  用path作为RPM数据库的路径。
--ftpport prot
  用port作为FTP端口。
--ftpproxy host
  用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
--help
  输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
--justdb
  只更新数据库;不改变任何文件。
--pipe command
  用管道把rpm输出到commond。
--quiet
  仅显示错误信息。
--rcfile filename
  用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
--root dir
  在dir目录内执行所有操作。
--version
  输出rpm版本号。
-vv
  输出调试信息。
--------------------------------------------------------------------------------
  
安装升级和刷新
  
安装或升级一个RPM包,install命令的语法为:
rpm -i [install-options] package_file
rpm --install [install-options] package_file
  
示例:
[root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
        package lynx-2.8.5-18 is already installed
[root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm  
--------------------------------------------------------------------------------
  
为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
  
rpm -U [install-options] package_file
rpm --upgrade [install-options] package_file
  
示例:
先安装旧版
[root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
  
再安装新版
[root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
  
显示出新版本信息
[root@localhost ~]# rpm -q lynx
lynx-2.8.5-18
  
说明:
-U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
  
与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。  
--------------------------------------------------------------------------------
  
刷新的语法是:
  
rpm -F [install-options] package_file
rpm --freshen [install-options] package_file
  
示例:
从未安装过lynx包,使用-F选项,将无法升级。
[root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
[root@localhost ~]# rpm -q lynx
package lynx is not installed  
--------------------------------------------------------------------------------
  
安装和更新选项为:
  
--allfiles
  安装或更新所有文件。
--badreloc
  与--relocate一起使用,强制重新定位,即使包不是可重定位的。  
--excludedocs
  不安装任何文档文件。
--excludepath path
  不安装文件名以path开始的任何文件。
--force
  强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
-h,--hash
  当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
--ignorearch
  即使二进制包用于不同的体系结果也进行安装。
--ignoreos
  即使操作系统不匹配也安装二进制包。
--ignoresize
  安装前不检查磁盘的可用空间。
--includedocs
  安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
--nodeps
  不检查这个包是否依赖于其他包的存在。
--noorder
  安装之前,不为了满足依赖关系而对包进行重新排序。
--noscripts
  不执行任何预安装或后安装脚本。
--notriggers
  不执行任何由包安装触发的脚本。
--oldpackage
  允许升级以用旧包替换新包。
--percent
  当文件被解压时输出完成百分比的信息。
--prefix path
  把可重定位包的安装前缀设置为path。
--replacefiles
  即使包替换了来自其他安装包的文件,也安装这些包。
--replacepkgs
  即使某些包已经被安装,也安装他们。
--test
  检查安装过程,看整个过程都做了些什么,但并不真正安装包。
--------------------------------------------------------------------------------
  
查询
  
query命令的语法为:
  
rpm -q[information-options] [package-options]
rpm --query[information-options] [package-options]
  
查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。  
--------------------------------------------------------------------------------
  
以下简单示演示一下包查询:
  
简单查询:
最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
  
示例:
[root@localhost ~]# rpm -q lynx
lynx-2.8.5-18  
--------------------------------------------------------------------------------
  
信息查询:
rpm -qi packagename命令可以得到安装包的汇总信息。
  
示例:
[root@localhost ~]# rpm -qi lynx
Name        : lynx                         Relocations: (not relocatable)
Version     : 2.8.5                             Vendor: Red Hat, Inc.
Release     : 18                            Build Date: 2004年07月08日 星期四 18时52分16秒
Install Date: 2006年05月30日 星期二 13时27分21秒      Build Host: tweety.build.redhat.com
Group       : 应用程序/互联网        Source RPM: lynx-2.8.5-18.src.rpm
Size        : 4837340                          License: GPL
Signature   : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
Packager    : Red Hat, Inc.  
URL         : http://lynx.isc.org/
Summary     : 一个基于文本的网页浏览器。
Description :
Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
图像,但是它支持框架、表格、以及多数其它 HTML
标签。Lynx 优于图形化浏览器的地方是它的速度――
Links 能够快速启动、退出、及显示网页。
标识拥有者  
--------------------------------------------------------------------------------
  
找出什么包拥有文件file:
  
示例:
[root@localhost ~]# rpm -qf /etc/lynx-site.cfg
lynx-2.8.5-18  
--------------------------------------------------------------------------------
  
列表包中的文件:
  
如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
  
示例:
此为部分显示结果
[root@localhost ~]# rpm -ql lynx
/etc/lynx-site.cfg
/etc/lynx.cfg
/etc/lynx.cfg.cs
/etc/lynx.cfg.ja
/etc/lynx.cfg.sk
/usr/bin/lynx
/usr/share/doc/lynx-2.8.5
/usr/share/doc/lynx-2.8.5/INSTALLATION
/usr/share/doc/lynx-2.8.5/README
/usr/share/doc/lynx-2.8.5/docs
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
/usr/share/doc/lynx-2.8.5/docs/CMU.announce
/usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
/usr/share/doc/lynx-2.8.5/docs/FM.announce
/usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
/usr/share/doc/lynx-2.8.5/docs/OS-390.announce
/usr/share/doc/lynx-2.8.5/docs/README.TRST
/usr/share/doc/lynx-2.8.5/docs/README.chartrans
--------------------------------------------------------------------------------
  
列出包所提供的实际能力:
--provides选项的作用是列出这个包所提供的实际能力。
  
示例:
[root@localhost ~]# rpm -q --provides lynx
config(lynx) = 2.8.5-18
webclient
lynx = 2.8.5-18  
--------------------------------------------------------------------------------
  
列出这个包所倚赖的任何包:
  
-R,--requires选项的作用是列出这个包所依赖的任何包。
示例:
  
[root@localhost ~]# rpm -qR lynx
/bin/sh
config(lynx) = 2.8.5-18
indexhtml
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libcrypto.so.4
libncursesw.so.5
libssl.so.4
libz.so.1
rpmlib(CompressedFileNames)  2.8.5-18
- Removed perl dependencies (bug #127423).
* 三  6月 16 2004 Elliot Lee  
- rebuilt
* 三  5月 26 2004 Tim Waugh  2.8.5-16
- No longer need lynx-284-ipv6-salen.patch.
- No longer need lynx2-8-2-telnet.patch.
* 六  2月 14 2004 Elliot Lee  2.8.5-15
- rebuilt
* 二 12月 02 2003 Tim Waugh  2.8.5-14
- Updated to dev16, fixing bug #110196.
- No longer need crlf patch.
- Use shipped ja translations.
- Use %find_lang.
- Default config file now sets UTF-8 (bug #110986).  
--------------------------------------------------------------------------------
  
包选择选项
package_name
    查询已安装包的package_name。
-a,--all
  查询所有已安装拨。
-f file,--file file
  找出什么包拥有文件file。
-g group,--group group
  找出什么包拥有组group。
-p package_file
  查询未安装包package_file
--querybynumber num
  查询第num个数据库条目。主要用于调试。
-qf,--queryformat num
  指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
--specfile specfile
  查询specfile,就好象它是个包
--triggeredby pkg
  列出触发安装pkg包的包。
--whatrequires capability
  列出要求特定能力来行使职责的包。
--whatprovides capability
  列出提供特定能力的包。  
--------------------------------------------------------------------------------
信息选择选项:
-c,--configfiles
  列出包中的配置文件。
--changelog
  显示有关于包的改变信息的日志。
-d,--docfiles
  列出包中的文档文件。
--dump
  转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
  以下列顺序输出信息:
  path size mtime md5sum mode owner group isconfig isdoc rdev symlink
--filebypkg
  列出每个包中的所有文件。
-i
  显示包的信息,包括名字,版本和描述。
-l,--list
  列出包中所有文件
--last
  根据安装时间列出包,最新的包排第一位。
--provides
  列出这个包所提供的实际能力。
-R,--requires
  列出这个包所依赖的任何包。
-s,--state
  列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
--scripts
  列出任何在安装和卸载过程中所使用的包特定的shell脚本。
--------------------------------------------------------------------------------
卸载
uninstall命令的语法为:
rpm -e package_name
rpm --erase package_name
  
示例:
[root@localhost ~]# rpm -e lynx
[root@localhost ~]# rpm -q lynx
package lynx is not installed  
--------------------------------------------------------------------------------
  
卸载选项为:
--allmatches
  删除包的所有版本。应该只指定一个包,否则会导致错误。
--nodeps
  在卸载包之前不检查依赖性。
--noscripts
  不执行任何预卸载和后卸载脚本。
--notriggers
  不执行任何由这个包的删除而出发的脚本。
--test
  不真正卸载任何包,仅仅查看活动过程。
--------------------------------------------------------------------------------
  
以上简要介绍和演示了一下RPM包的安装,删除和查询。下一篇将讲解和演示RPM的一些其他特性。  
--------------------------------------------------------------------------------
  
参考文献:
《红帽Linux 9 从入门到精通》,[美] Michael jang著 邱仲潘 等译 SYBEX 电子工业出版社  
《Linux in a Nutshell》,Ellen Siever,Stepben Spainbour,Stepben
14:58 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!145');]写入日志[/url]
|
计算机与 Internet

LINUX:Liunx 环境下vsftpd的三种实现方法
以下文章介绍Liunx 环境下vsftpd的三种实现方法
ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz
,目前已经到2.0.3版本。假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录
# cd /home/xuchen
# tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序
# cd vsftpd-2.0.3
三、三种方式的实现
1、匿名用户形式实现
# vi builddefs.h \\\\编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL
# make //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功
创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin
安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-ano
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-ano.conf
这样就安装完成了,那么我们开始进行简单的配置
# vi /etc/vsftpd-ano.conf ,将如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES
anon_root=/var/ftp //设置匿名用户本地目录,和ftp用户目录必须相同
listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & //以后台方式启动vsftpd
注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误:
500 OOPS: bad bool value in config file for: listen
测试搭建好的匿名用户方式
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 \"/\"
ftp> quit
221 Goodbye.
#
OK,已经完成了,very nice.
高级配置
细心的朋友可能已经看出来我们只在默认配置文件增加了四行,就实现了FTP连接(也证明了vsftpd的易用性),那么让我们传个文件吧,呀!!传输失败了(见图1)
为什么呢?因为 vsftpd 是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。
# mkdir /var/ftp/pub
# chmod -R 777 /var/ftp/pub
为了测试方便,我们先建立一个名为kill-ano的脚本,是为了杀掉FTP程序的
#!/bin/bash
a=`/bin/ps -A | grep vsftpd-ano | awk \'{print    $1}\'`
kill -9    $a
那么现在大家看看我的匿名服务器配置文件吧
anonymous_enable=YES //允许匿名访问,这是匿名服务器必须的
write_enable=YES //全局配置可写
no_anon_password=YES //匿名用户login时不询问口令
anon_umask=077 //匿名用户上传的文件权限是-rw----
anon_upload_enable=YES //允许匿名用户上传文件
anon_mkdir_write_enable=YES //允许匿名用户建立目录
anon_other_write_enable=YES //允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
dirmessage_enable=YES //当使用者转换目录,则会显示该目录下的.message信息
xferlog_enable=YES //记录使用者所有上传下载信息
xferlog_file=/var/log/vsftpd.log //将上传下载信息记录到/var/log/vsftpd.log中
xferlog_std_format=YES //日志使用标准xferlog格式
idle_session_timeout=600 //客户端超过600S没有动作就自动被服务器踢出
data_connection_timeout=120 //数据传输时超过120S没有动作被服务器踢出
chown_uploads=YES
chown_username=daemon //上传文件的属主
ftpd_banner=Welcome to d-1701.com FTP service. //FTP欢迎信息
anon_max_rate=80000 //这是匿名用户的下载速度为80KBytes/s
check_shell=NO //不检测SHELL
现在再测试,先kill掉再启动FTP程序
# ./kill-ano
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf &
上传一个文件测试一下,怎么样?OK了吧,下载刚上传的那个文件,恩?不行,提示
550 Failed to open file.
传输已失败!
传输队列已完成
1 个文件传输失败
没有关系,你记得咱们设置了anon_umask=077了吗?所以你下载不了,如果你到服务器上touch 一个文件(644),测试一下,是可以被下载下来的,好了,匿名服务器就说到这里了。
2、本地用户形式实现
# cd /home/xuchen/vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录
# make clean //清除编译环境
# vi builddefs.h \\\\继续编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
将以上define VSF_BUILD_PAM行的define改为undef,支持tcp_wrappers,不支持PAM认证方式,支持SSL,记住啊,如果支持了PAM认证方式,你本地用户是不能登陆的。
# make //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x 1 root root 84712 Jun 6 18:56 vsftpd //可执行程序已被编译成功
创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin
安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-loc
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-loc.conf
这样就安装完成了,那么我们开始进行简单的配置
# vi /etc/vsftpd-loc.conf ,将如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式),注意事项请参看匿名用户的配置。
anonymous_enable=NO
local_enable=YES //这两项配置说不允许匿名用户登陆,允许本地用户登陆
# /usr/local/sbin/vsftpd-loc /etc/vsftpd-loc.conf & //以后台方式启动vsftpd
测试搭建好的匿名用户方式,先测试root用户吧 :)
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 \"/root\"
ftp> quit
221 Goodbye.
我们看到root用户可以登陆到ftp,他的登陆目录就是自己的主目录。
再测试一个系统用户,那我们先建立一个用户名叫xuchen的
# useradd xuchen
# passwd xuchen
Changing password for user xuchen.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
建立好了,让我们开始测试吧!!
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): xuchen
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 \"/home/xuchen\"
ftp> quit
221 Goodbye.
我们看到xuchen用户可以登陆到ftp,他的登陆目录也是自己的主目录。哈哈,又完成了!
高级配置
细心的朋友可能已经看出来如果我们不支持PAM认证方式,那么本地用户就可以登陆,而默认编译的vsftpd支持PAM认证方式,所以是不支持本地用户登陆的。恩,从这点说,这也是vsftp安全的一个表现----禁止本地用户登陆。
我们登陆后进行测试,传一个文件上去,得,失败了,那下载个文件下来吧,恩,这是成功的(见图2),而且我们发现我们可以进入到系统根目录(见图3),这样很危险。
那么改配置文件吧,为了测试方便,我们先建立一个名为kill-loc的脚本,也是为了杀掉FTP程序的
#!/bin/bash
a=`/bin/ps -A | grep vsftpd-loc | awk \'{print    $1}\'`
kill -9    $a
现在提供我的本地用户验证服务器配置文件吧(在匿名里写过的注释我就不在这里写了)
listen=YES
listen_port=21
tcp_wrappers=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022 //本地用户文件上传后的权限是-rw-r-r
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
connect_from_port_20=YES
chroot_local_user=YES //限制用户在自己的主目录
#local_root=/ftp //你可以指定所有本地用户登陆后的目录,如果不设置此项,用户都会登陆于自己的主目录,就跟咱们前面测试的结果是一样的
local_max_rate=500000 //本地用户的下载速度为500KBytes/s
idle_session_timeout=600
data_connection_timeout=120
nopriv_user= nobody //设定服务执行者为nobody,vsftpd推荐使用一个权限很低的用户,最好是没有家目录(/dev/null),没有登陆shell(/sbin/nologin),系统会更安全
ftpd_banner=Welcome to d-1701.com FTP service.
check_shell=NO
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.denyuser
以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.denyuser中,一行一个帐号如果我把xuchen这个用户加到vsftpd.denyuser里,那么登陆时会出现如下错误:
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 Welcome to d-1701.com FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): xuchen
530 Permission denied.
Login failed.
呵呵,有意思吧,自己测试吧,本地用户登陆方式就介绍到这里吧!
3、虚拟用户形式实现(db及mysql形式)
# cd /home/xuchen/vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录
# make clean //清除编译环境
# vi builddefs.h \\\\继续编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_PAM
#define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
将以上define VSF_BUILD_PAM行的undef改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL,和匿名用户形式是一样的。
# make //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x 1 root root 86088 Jun 6 22:26 vsftpd //可执行程序已被编译成功
创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin
安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-pam
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-pam.conf
这样就安装完成了,那么我们开始进行简单的配置
对于用DB库存储用户名及密码的方式来说:
(1)查看系统是否有相应软件包
# rpm –qa | grep db4
db4-devel-4.2.52-7.1
db4-4.2.52-7.1
db4-utils-4.2.52-7.1
(2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如
# vi /home/logins.txt
xuchen
12345
(3)建立数据库文件并设置文件属性
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db
(4)建立认证文件
# vi /etc/pam.d/ftp 插入如下两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
(5)建立一个虚拟用户
useradd -d /home/vsftpd -s /sbin/nologin vsftpd
ls -ld /home/vsftpd
drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/
(6)编写配置文件(注意事项请参看匿名用户的配置,这里不再赘述)
# vi /etc/vsftpd-pam.conf
listen=YES
listen_port=21
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
anonymous_enable=NO
local_enable=YES //PAM方式此处必须为YES,如果不是将出现如下错误:
500 OOPS: vsftpd: both local and anonymous access disabled!
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd //这两行的意思是采用虚拟用户形式
virtual_use_local_privs=YES //虚拟用户和本地用户权限相同
pasv_enable=YES //建立资料联机采用被动方式
pasv_min_port=30000 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。
pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。
(7)启动程序
# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam.conf &
(8)测试连通及功能
# vi /home/vsftpd/test //建立一个文件,内容如下
1234567890
# chown vsftpd.vsftpd /home/vsftpd/test
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): xuchen
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 \"/\"
ftp> size test
213 11
ftp> quit
221 Goodbye.
OK,用户名为xuchen,密码为12345可以连接到FTP服务器,看不到文件列表,但可以下载已知文件名的文件,不能上传文件,非常安全吧!!
如果我们需要用户看到文件,怎么办?也好办,在配置文件中加入如下语句:
anon_world_readable_only=NO //匿名登入者不能下载可阅读的档案,默认值为YES
如果需要让用户上传文件和下载文件分开,建议如下这么做
# vi /home/logins.txt
xuchen
12345
upload
45678
//首先建立虚拟用户upload,密码为45678
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db //更新数据文件
# mkdir /home/vsftpd/upload
# vi /etc/vsftpd-pam.conf 加入如下语句
user_config_dir=/etc/vsftpd_user_conf
# mkdir /etc/vsftpd_user_conf
# vi /etc/vsftpd_user_conf/upload 文件内容如下
local_root=/home/vsftpd/upload
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# chmod 700 /home/vsftpd/upload
# chown vsftpd.vsftpd /home/vsftpd/upload/
这样,xuchen用户可以下载/home/vsftpd里的文件及upload里的文件,而upload用户可以上传和下载/home/vsftpd/upload文件夹的东西,但不能到/home/vsftpd里下载文件,很简单得实现了分用户上传和下载
对于用Mysql库存储用户名及密码的方式来说:
就是把用户名和密码放在mysql库里,实现起来也相当简单
(1)建立一个库并设置相应权限
# mysql –p
mysql>create database ftpd;
mysql>use ftpd;
mysql>create table user(name char(20) binary,passwd char(20) binary);
mysql>insert into user (name,passwd) values (\'test1\',\'12345\');
mysql>insert into user (name,passwd) values (\'test2\',\'54321\');
mysql>grant select on ftpd.user to ftpd@localhost identified by \'123456\';
mysql>flush privileges; 刷新权限设置
mysql>quit
(2)下载libpam-mysql进行安装编译
下载地址如下:
http://nchc.dl.sourceforge.net/s
... am_mysql-0.5.tar.gz
假设我们把它放在了/home/xuchen目录下
# cd /home/xuchen
# tar xzvf pam_mysql-0.5.tar.gz
# cd pam_mysql
# make
# cp pam_mysql.so /lib/security
(3)建立PAM认证信息
# vi /etc/pam.d/ftp ,内容如下
auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0
注意:
crypt= n
crypt=0: 明文密码
crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
crypt=2: 使用MYSQL中的password()函数加密
crypt=3:表示使用md5的散列方式
(4)建立本地虚拟用户
# useradd -d /home/ftpd -s /sbin/nologin ftpd
(5)下面就差修改vsftpd.conf文件了,我把我的提供给大家参考吧:)
# vi /etc/vsftpd-pam1.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=ftpd
listen=YES
listen_port=21
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
anon_world_readable_only=NO
virtual_use_local_privs=YES
#user_config_dir=/etc/vsftpd_user_conf
可以看出,和前面的用db库来验证没有多大区别,其实就是一个东西,一个用mysql来验证,一个用db库,我个人比较倾向于用db库来验证,在这个环境下,相对于Mysql来说,安全系数更高一点。
(6)# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam1.conf & //以后台方式启动
(7)测试连通
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): test1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 \"/\"
ftp> quit
221 Goodbye.
看,成功了!!这样就实现了mysql的认证方式,很简单吧??
4、为FTP增加磁盘配额,从而避免恶意用户用垃圾数据塞满你的硬盘
我首先要说的是这个功能是系统自带的,而不是vsftp 的功能之一,千万别搞混了。好了,我们先假设我们的系统用户ftpd的主目录是/home/ftpd,它是建立在/home分区中,那么如果我们要对ftpd用户进行磁盘限额,那我们需要修改/etc/fstab中根分区的记录,将/home分区的第4个字段改成defaults,usrquota,如下:
LABEL=/home /home ext3 defaults,usrquota 1 2
# reboot //重新启动系统使设置生效
也可以用
# mount -o remount /dev/sda6 ///dev/sda6的挂接点就是/home,这样可以不用启动系统。
这里我还要说明一下,如果我们对一个组进行磁配额,那我们需要增加参数grpquota,例如
LABEL=/home /home ext3 defaults,grpquota 1 2
也可以
LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
你想怎么限制都可以,自己组合参数吧。
# quotacheck -avu
说明:a-自动开启挂载文件系统的配额,v-显示信息,u-启用用户配额or g-启用组配额
# edquota ftpd //为用户ftpd设置磁盘配额
or
# edquota -g grp //为组grp设置磁盘配额
系统会自动打开配额文件,如下:
Disk quotas for user ftpd (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/sda6 424 0 0 13 0 0
第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数,单位为KB。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period),默认七天的超越。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置。我设置了硬块限度为1KB,是为了测试方便。
# quotaon -avu //打开磁盘配额监控进程,u是用户g是组,这里我没设置g参数
要校验用户的配额是否被设置,我们可以使用以下命令:
# quota ftpd
Disk quotas for user ftpd (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda6 424* 0 1 13 0 0
# edquota –t(-g)来设置过渡期(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/sda6 7days 7days
按你的需要修改后存盘退出
用以下命令显示磁盘配额使用状态
# repquota -a 或 repquota /dev/sda6(用户配额)
# repquota -g -a 或 repquota -a /dev/sda6 (组的配额)
如果一切按照你的意思实施了,那么我们就进行测试了!如下图4
我们传了一个>1k的文件,没有成功,这样我们就成功的为用户ftpd增添了磁盘配额,要是哪一天你不想加磁盘配额了,怎么办?参看如下命令:
取消某个文件系统的配额限制
#quotaoff -vug /dev/sda6 //删除home分区的磁盘限额
#删除/etc/fstab中设置配额的部分
修改软配额的最大超越时间
注意:
/,/boot/,/proc,/mnt/cdrom等不要使用配额,没用。而且磁盘配额不适合FAT和FAT32系统。
以后当新设置了某个用户的配额,可以使用如下命令,马上生效。
# quotacheck -auvgm --是不尝试重新挂载文件系统
备注:
1、vsftpd配置参数详细整理
#接受匿名用户
anonymous_enable=YES
#匿名用户login时不询问口令
no_anon_password=YES
#匿名用户主目录
anon_root=(none)
#接受本地用户
local_enable=YES
#本地用户主目录
local_root=(none)
#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录
deny_email_enable=YES
#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录
check_shell=YES
#若启用此选项,userlist_deny选项才被启动
userlist_enable=YES
#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
userlist_deny=NO
#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下)
passwd_chroot_enable=NO
#定义匿名登入的使用者名称。默认值为ftp。
ftp_username=FTP
#################用户权限控制###############
#可以上传(全局控制).
write_enable=YES
#本地用户上传文件的umask
local_umask=022
#上传文件的权限配合umask使用
#file_open_mode=0666
#匿名用户可以上传
anon_upload_enable=NO
#匿名用户可以建目录
anon_mkdir_write_enable=NO
匿名用户其它的写权利(更改权限?)
anon_other_write_enable=NO
如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。
anon_world_readable_only=YES
#如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名
#guest_enable=NO
所有匿名上传的文件的所属用户将会被更改成chown_username
chown_uploads=YES
匿名上传文件所属用户名
chown_username=lightwiter
#如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_enable=YES
#允许使用\"async ABOR\"命令,一般不用,容易出问题
async_abor_enable=YES
管控是否可用ASCII 模式上传。默认值为NO。
ascii_upload_enable=YES
#管控是否可用ASCII 模式下载。默认值为NO。
ascii_download_enable=YES
#这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty
secure_chroot_dir=/usr/share/empty
###################超时设置##################
#空闲连接超时
idle_session_timeout=600
#数据传输超时
data_connection_timeout=120
#PAVS请求超时
ACCEPT_TIMEOUT=60
#PROT模式连接超时
connect_timeout=60
################服务器功能选项###############
#开启日记功能
xferlog_enable=YES
#使用标准格式
xferlog_std_format=YES
#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
#log_ftp_protocol=NO
#允许使用pasv模式
pasv_enable=YES
#关闭安全检查,小心呀.
#pasv_promiscuous+NO
#允许使用port模式
#port_enable=YES
#关闭安全检查
#prot_promiscuous
#开启tcp_wrappers支持
tcp_wrappers=YES
#定义PAM 所使用的名称,预设为vsftpd。
pam_service_name=vsftpd
#当服务器运行于最底层时使用的用户名
nopriv_user=nobody
#使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)
pasv_address=(none)
#################服务器性能选项##############
#是否能使用ls -R命令以防止浪费大量的服务器资源
#ls_recurse_enable=YES
#是否使用单进程模式
#one_process_model
#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
listen=YES
#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。
text_userdb_names=NO
#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
use_localtime=NO
#测试平台优化
#use_sendfile=YES
################信息类设置################
#login时显示欢迎信息.如果设置了banner_file则此设置无效
ftpd_banner=欢迎来到湖南三辰Fake-Ta FTP 网站.
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
#显示会话状态信息,关!
#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
#############用户连接选项#################
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5
#使用标准的20端口来连接ftp
connect_from_port_20=YES
#绑定到某个IP,其它IP不能访问
listen_address=192.168.0.2
#绑定到某个端口
#listen_port=2121
#数据传输端口
#ftp_data_port=2020
#pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
pasv_max_port=0
#pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。
pasv_min_port=0
##############数据传输选项#################
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=5120000
########################################
别外,如果要对每个用户进行单独的控制,只需要在user_config_dir中建立username文件,内容为数据传输和用户权利里面设置个人的合适的选项,用户自定义文件同样适合用pam支持的虚拟用户
附: FTP 数字代码的意义
110 重新启动标记应答。
120 服务在多久时间内ready。
125 数据链路埠开启,准备传送。
150 文件状态正常,开启数据连接端口。
200 命令执行成功。
202 命令执行失败。
211 系统状态或是系统求助响应。
212 目录的状态。
213 文件的状态。
214 求助的讯息。
215 名称系统类型。
220 新的联机服务ready。
221 服务的控制连接埠关闭,可以注销。
225 数据连结开启,但无传输动作。
226 关闭数据连接端口,请求的文件操作成功。
227 进入passive mode。
230 使用者登入。
250 请求的文件操作完成。
257 显示目前的路径名称。
331 用户名称正确,需要密码。
332 登入时需要账号信息。
350 请求的操作需要进一部的命令。
421 无法提供服务,关闭控制连结。
425 无法开启数据链路。
426 关闭联机,终止传输。
450 请求的操作未执行。
451 命令终止:有本地的错误。
452 未执行命令:磁盘空间不足。
500 格式错误,无法识别命令。
501 参数语法错误。
502 命令执行失败。
503 命令顺序错误。
504 命令所接的参数不正确。
530 未登入。
532 储存文件需要账户登入。
550 未执行请求的操作。
551 请求的命令终止,类型未知。
552 请求的文件终止,储存位溢出。
553 未执行请求的的命令,名称不正确。
2、VSFTPD官方资料翻译版(不完整版)---摘自中国Linux公社
翻译了部分VSFTPD的官方资料。
有些知道是什么意思,但难于翻译。有些涉及专业的知识,我自己也不懂,只好按字面翻译。有些我自己看不懂,只好尽量翻译。
如果看了其中一部分觉得糊涂,请参阅官方文挡。
安装篇
===============
这个文件详细介绍了如何从VSFTPD的.tar.gz分发包开始,建立和安装并运行VSFTPD。
1)建立VSFTPD
先进入解压.tar.gz文件后产生的目录内。如下:
cd vsftpd-2.0.1
编辑\"builddefs.h\"以操作compile-time设定。(tcp_wrappers build,等)
输入make,回车(如果它不工作请发邮件通知我 .
这将产生一个二进制文件,你可以验证一下。如下:
[chris@localhost vsftpd]   $ ls -l vsftpd
-rwxrwxr-x 1 chris chris 61748 Sep 27 00:26 vsftpd
2)满足VSFTPD安装所需的一些条件
VSFTPD默认设置需要一个\"nobody\"用户,如果这个用户不存在,那么添加它。如下:
[root@localhost root]# useradd nobody
useradd: user nobody exists
VSFTPD默认设置需要一个空目录:/usr/share/empty.增加这个目录,如果它还不存在的话。如下:
[root@localhost root]# mkdir /usr/share/empty/
mkdir: cannot create directory `/usr/share/empty\': File exists
如果容许匿名用户(anonymous),那么你将需要一个\"ftp\"用户和其home目录(这个home目录不属于“ftp”用户,而且“ftp\"用户也对其没有写权限)在你的系统中存在。
以下命令用来创建一个\"ftp\"用户,如果它还不存在的话。
[root@localhost root]# mkdir /var/ftp/
[root@localhost root]# useradd -d /var/ftp ftp
(即使你的\"ftp\"用户已经存在,完成以下这两步也是很有好处的:)
[root@localhost root]# chown root.root /var/ftp
[root@localhost root]# chmod og-w /var/ftp
3)安装VSFTPD的配置、执行和帮助文件。
输入\"make install\"后会将二进制文件和帮助文件拷贝到适当的目录。
你也可以手工拷贝这些文件:
cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
\"make install\"不会拷贝默认的配置文件,所以建议你手工拷贝:
cp vsftpd.conf /etc
daidong注:根据你系统版本的不同,也可能是 cp vsftpd.conf /etc/vsftpd
4)测试 (无inetd影响)
VSFTPD能运行在独立模式(standalone)或者通过inetd(xinetd)来启动。
你能通过inetd来运行vsftpd以更好地控制它。但我们在首次运行时不这么做,以便检查系统是否现在配置正常。
编辑/etc/vsftpd.conf(daidong注:也可能是/etc/vsftpd/vsftpd.conf),并在最下面加入以下这一行:
listen=YES
这将告诉VSFTPD不要从inetd启动。
OK,现在试着启动FTP。
以ROOT登录。
确定你没有运行其他FTP服务(否则VSFTPD不能占用FTP所需的21端口)。
运行那个二进制文件,如下:
[root@localhost root]# /usr/local/sbin/vsftpd &
[1] 2104
如果一切正常,那么你将连上FTP服务器,如下:
[chris@localhost chris]   $ ftp localhost
Connected to localhost (127.0.0.1).
220 (vsFTPd 1.1.1)
Name (localhost:chris): ftp
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,229,133)
150 Here comes the directory listing.
d--x--x--x 2 0 0 4096 Jan 14 2002 bin
d--x--x--x 2 0 0 4096 Apr 21 20:52 etc
drwxr-xr-x 2 0 0 4096 Apr 21 20:52 lib
drwxr-sr-x 2 0 50 4096 Jul 26 22:58 pub
226 Directory send OK.
ftp>
5)从inetd或者类似方式启动(官方推荐使用standalone方式)
你也许想通过inetd或者类似方式启动VSFTPD,因为这能给你更多的感受。例如xinetd就有很多的设置。
(注意:VSFTPD的内在机制屏蔽了xinetd的大多数的有用的设置)。
如果使用标准的\"inetd\",你需要编辑/etc/inetd.conf,在其中加入以下一行:
ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd
(确定你删除或者注释掉一些已存在的FTP服务配置行。如果你没有安装tcp_wrappers,或者不想使用它们,那么请去掉/usr/sbin/tcpd part).
inetd需要指定并重新载入它的配置文件:
kill -SIGHUP `pidof inetd`
如果你想使用\"xinetd\",请参阅我们提供的范例 /EXAMPLE/INTERNET_SITE/README. 而其他范例文件将告诉你如何调配出更强大的xinetd功能。
6)为本地登录配置PAM文件(可选)
如果你在一台激活了PAM的设备上运行VSFTPD,你需要提供一个 /etc/pam.d/ftp 文件。否则非匿名用户将无法登录服务器。
(注:如果你的PAM版本比较老,那么这个文件也许是 /etc/pam.conf).
做为一个标准设置,你可以拷贝一个已提供的范例文件,如下:
cp RedHat/vsftpd.pam /etc/pam.d/ftp
7)自定义你的配置文件
完成以上的配置后,建议你安装一个配置文件。默认的配置文件位置是/etc/vsftpd.conf. 在VSFTPD软件分发包内有一个范例配置文件。
你可以拷贝其为/etc/vsftpd.conf以做进一步修改。
cp vsftpd.conf /etc
(daidong注:也可能是 cp vsftpd.conf /etc/vsftpd ).
这个默认配置即不容许本地登录也不容许匿名用户上传,也许你希望更改这个配置。
其它
===================
测试平台 (已通过)
-流行的,功能完善的平台都能测试通过。在以下平台的较新版本,VSFTPD工作得很好。在其大部分较早的版本下,也运行正常。
- RedHat Linux
- RedHat Enterprise Linux
- Solaris / GNU tools (Solaris 8 or newer)
- SuSE Linux
- Debian Linux
- OpenBSD
- FreeBSD
- NetBSD
- HP-UX / GNU tools
- IRIX / GNU tools
- Mac OS X (note; older versions have setgroups() problem. 10.3.4 reported OK)
虚拟用户1
=============
这个例子示范了如何为虚拟用户设置VSFTPD/PAM。
虚拟用户是一个在系统中并不作为一个登录实体而存在的用户。使用虚拟用户比使用真实的用户更安全,因为这个账号只能用于FTP服务器。
虚拟用户经常用来提供给不大可信任的用户访问某些资源,而这些资源通常是其他普通用户不能访问的。
1)创建虚拟用户数据库
我们将使用pam_userdb来认证虚拟用户。这需要提供一个“db\"格式(一种通用数据库格式)的用户名/密码文件。
创建一个\"db\"格式的文件,首先要创建一个标准文本文件,并把用户名,密码以竖直排列方式输入。如logins.txt:
tom
foo
fired
bar
这个例子中,tom用户的密码是foo.fired用户的密码是bar.
以ROOT登录,创建一个数据库文件,如下:
db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
(这要求berkeley db程序已经安装)
(注:一些系统也许安装了多个版本的\"db\",所以某些情况下你可能使用\"db3_load\"才是正确的。对于一些 Debian系统就是这样。
关键在于要让pam_userdb相信它的登录数据库是哪一个db版本所产生(一般都是db3,尽管你的系统里可能安装的是db4).)
这将创建/etc/vsftpd_login.db文件。显然,你希望设定这个文件的权限:
chmod 600 /etc/vsftpd_login.db
要了解更多关于维护你的登录数据库的信息,请在\"berkeley DB\"察看相关文档:
http://www.sleepycat.com/docs/utility/index.html

2)用你的新数据库创建一个PAM文件
请参考范例vsftpd.pam,它包含2行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
这是告诉PAM用新的数据库去验证用户。把这个PAM文件拷贝到PAM目录,一般是/etc/pam.d
cp vsftpd.pam /etc/pam.d/ftp
3)为虚拟用户设置home目录
useradd -d /home/ftpsite virtual
ls -ld /home/ftpsite
(which should give):
drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite
我们已经创建了一个名叫\"virtual\"的用户,home目录是\"/home/ftpsite\".
我们拷贝一些东西到这个下载目录:
cp /etc/hosts /home/ftpsite
chown virtual.virtual /home/ftpsite/hosts
4)创建你的vsftpd.conf配置文件
请参考这个目录下的例子。让我们一行行地看一看这些配置:
anonymous_enable=NO
local_enable=YES
安全起见,屏蔽了匿名用户,只启用了非匿名用户(即虚拟用户使用的账号)
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
为了安全请确认这几个配置,这将关闭写的权限。
chroot_local_user=YES
这将把虚拟用户锁定在我们在以上设置的/home/ftpsite目录内。
guest_enable=YES
guest_username=virtual
guest_enable非常重要-它激活了虚拟用户!而guest_username说明所有的虚拟用户都对应我们在上面设置的真实用户:“virtual\".
这同时确定了虚拟用户在文件系统中的位置,也就是说,虚拟用户的home目录即\"virtual\"用户的home目录:/home/ftpsite。
listen=YES
listen_port=10021
这让VSFTPD以独立模式(standalone)运行,而不是从inetd方式启动。也就是说,你运行VSFTPD可执行文件就启动了FTP服务。
同时也让VSFTPD启用非标准端口10021来监听FTP请求(FTP一般使用21端口)。
pasv_min_port=30000
pasv_max_port=30999
这设定了被动模式的FTP请求端口。当你配置了一个防火墙的时候,这个配置就很好用。
拷贝范例配置文件到/etc
cp vsftpd.conf /etc/
(daidong注:也可能是/etc/vsftpd)
5)启动VSFTPD
到VSFTPD二进制文件所在的目录,输入:
./vsftpd
如果一切正常,这个命令将生效。否则,你将会看到一些错误信息的反馈。
6)测试
启动另一个会话。(或者ctrl-z,再输入\"bg\",让VSFTPD在后台运行)。
这是一个FTP会话的例子:
ftp localhost 10021
Connected to localhost (127.0.0.1).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (localhost:chris): tom
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 \"/\"
ftp> ls
227 Entering Passive Mode (127,0,0,1,117,135)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).
ftp> size hosts
213 147
ftp>
注释:
密码是\"foo\"
出现”failed to open directory“的话,别担心。这是因为/home/ftpsite目录不容许被任意浏览。
(我们可以更改anon_world_readable_only=NO以消除告警,但为了安全,还是保留这个配置)。
我们能通过size命令看到我们已经访问了被我们拷贝到这里的\"hosts\"文件。
vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=10021
pasv_min_port=30000
pasv_max_port=30999
虚拟用户2
===============
这个例子将演示如何扩展“VIRTUAL_USERS”那个范例,从而实现更复杂一点的配置。
让我们假定我们需要2种不同的虚拟用户:一种只能浏览并下载资源,另一种能上传文件并浏览站内资源。
要激活这个设置,我们将使用VSFTPD的强大的“单个用户配置”功能(是V1.1.0后出现的新功能)。
在前一个虚拟用户范例中,我们创建了2个用户-tom和fred.
我们将实现fred有写权限以上传新文件,同时tom只能下载文件。
1)激活单个用户配置功能。
要激活这个功能,需要增加以下配置行到配置文件:
user_config_dir=/etc/vsftpd_user_conf
并且创建目录:
mkdir /etc/vsftpd_user_conf
2)授予tom读取所有文件和目录的权限
在上一个例子的最后,我们注意到虚拟用户只能浏览所有的完全可读属性的目录和文件。我们使/home/ftpsite完全可读,而且被上传的文件也
赋予了完全可读的权限(daidong注:意思是说这样虚拟用户就能读取所有的文件了)。但实现这个目的的另一个方法是授权tom能下载那些非完全可读的文件。
对于tom,他的配置文件中需要修改一个设置:
anon_world_readable_only:
设为\"anon_world_readable_only=NO\" > /etc/vsftpd_user_conf/tom
(daidong注:既把默认配置修改了anon_world_readable_only后,复制到/etc/vsftpd_user_conf下,名字为tom)
验证一下结果-以tom登录,“ls”将返回一个目录列表。如果以fred登录将不会如此。
注意:重启VSFTPD以启用配置文件/etc/vsftpd.conf(高级用户也可以发送SIGHUP给VSFTPD的监听进程).
3)授予freg读取所有文件/目录并创建新文件/目录的权限,但让他不能对已存在的文件/目录进行操作.
echo \"anon_world_readable_only=NO\" > /etc/vsftpd_user_conf/fred
echo \"write_enable=YES\" >> /etc/vsftpd_user_conf/fred
echo \"anon_upload_enable=YES\" >> /etc/vsftpd_user_conf/fred
验证一下-以tom登录,将不能上传,而fred就可以.
试图删除一个文件--噢,你们俩都不行!
配置详解
=============
VSFTPD.CONF.5
================
名字
vsftpd.conf :VSFTPD的配置文件
描述:
vsftpd.conf 用来控制VSFTPD的各项功能。默认状态下,它的位置是/etc/vsftpd.conf。
(译者注:也许老的LINUX版本下,配置文件是这个位置,但新的LINUX版本,例如FC2,配置文件是在/etc/vsftpd目录下。
但是也很可能和安装方式有关,RPM包安装,配置文件是/etc/vsftpd.conf. 源码包安装:/etc/vsftpd/vsftpd.conf.我不确定。
但以后我不再特别指出了,真累!!)
然而,你也可以通过修改配置行来指定到其它目录。这一点很有用,因为也许你想使用一些高级inetd功能,例如xinetd,在一个多虚拟主机的机器上调用不同的配置文件。
格式
VSFTPD.conf 的格式非常简单,每行要么是一个注释,要么是一个指令。注释行以#开始并被忽略掉。指令行格式如下:
配置项=参数值
很重要的一点是,这个格式里不存在任何空格。
默认的,每一个配置项在配置文件里都占一编辑行,可以被修改。
布尔选项
参数值的布尔选项可以是:
YES或者NO
allow_anon_ssl
只有ss1_enable激活了才可以启用此项。如果设置为YES,匿名用户将容许使用安全的SSL连接服务器。
默认值:NO
anon_mkdir_write_enable
如果设为YES,匿名用户将容许在指定的环境下创建新目录。如果此项要生效,那么配置write_enable必须被激活,并且匿名用户必须在其父目录有写权限。
默认值:NO
anon_other_write_enable
如果设置为YES,匿名用户将被授予较大的写权限,例如删除和改名。一般不建议这么做,除非想完全授权。
默认值:NO
anon_upload_enable
如果设为YES,匿名用户就容许在指定的环境下上传文件。如果此项要生效,那么配置write_enable必须激活。并且匿名用户必须在相关目录有写权限。
默认值:NO
anon_world_readable_only
启用的时候,匿名用户只容许下载完全可读的文件,这也就容许了ftp用户拥有对文件的所有权,尤其是在上传的情况下。
默认值:YES
anonymous_enable
控制是否容许匿名用户登录。如果容许,那么“ftp”和“anonymous”都将被视为“anonymous\"而容许登录。
默认值:YES
ascii_download_enable
启用时,用户下载时将以ASCII模式传送文件。
默认值:NO
ascii_upload_enable
启用时,用户上传时将以ASCII模式传送文件。
默认值:NO
async_abor_enable
启用时,一个特殊的FTP命令\"async ABOR”将容许使用。只有不正常的FTP客户端要使用这一点。而且,这个功能又难于操作,所以,
默认是把它关闭了。但是,有些客户端在取消一个传送的时候会被挂死(daidong注:估计是客户端无响应了),那你只有启用这个功能才能避免这种情况。
默认值:NO
background
启用时,并且VSFTPD是“listen”模式启动的(daidong注:就是standalone模式),VSFTPD将把监听进程置于后台。但访问VSFTPD时,控制台将立即被返回到SHELL。
默认值:NO
check_shell
注意:这个选项只对非PAM结构的VSFTPD才有效。如果关闭,VSFTPD将不检查/etc/shells以判定本地登录的用户是否有一个可用的SHELL。
默认值:YES
chmod_enable
启用时,将容许使用SITE CHMOD命令。注意,这只能用于本地用户。匿名用户绝不能使用SITE CHMOD。
默认值:YES
chown_uploads
如果启用,所以匿名用户上传的文件的所有者将变成在chown_username里指定的用户。这对管理FTP很有用,也许也对安全有益。
默认值:NO
chroot_list_enable
如果激活,你要提供一个用户列表,表内的用户将在登录后被放在其home目录,锁定在虚根下(daidong注:进入FTP后,PWD一下,可以看到当前目录是\"/\",这就是虚根。是FTP的根目录,并非FTP服务器系统的根目录)。如果chroot_local_user设为YES后,其含义会发生一点变化。
在这种情况下,这个列表内的用户将不被锁定在虚根下。
默认情况下,这个列表文件是/etc/vsftpd.chroot_list, 但你也可以通过修改chroot_list_file来改变默认值。
默认值:NO
chroot_local_user
如果设为YES,本地用户登录后将被(默认地)锁定在虚根下,并被放在他的home目录下。
警告:
这个配置项有安全的意味,特别是如果用户有上传权限或者可使用SHELL的话。在你确定的前提下,再启用它。
注意,这种安全暗示并非只存在于VSFTPD,其实是广泛用于所有的希望把用户锁定在虚根下的FTP软件。
默认值:NO
connect_from_port_20
这用来控制服务器是否使用20端口号来做数据传输。为安全起见,有些客户坚持启用。相反,关闭这一项可以让VSFTPD更加大众化。
默认值:NO (但在范例配置文件中,启用了,即YES)
deny_email_enable
如果激活,你要提供一个关于匿名用户的密码E-MAIL表(daidong注:我们都知道,匿名用户是用邮件地址做密码的)以阻止以这些密码登录的匿名用户。
默认情况下,这个列表文件是/etc/vsftpd.banner_emails,但你也可以通过设置banned_email_file来改变默认值。
默认值:NO
dirlist_enable
如果设置为NO,所有的列表命令(daidong注:如ls)都将被返回“permission denied”提示。
默认值:YES
dirmessage_enable
如果启用,FTP服务器的用户在首次进入一个新目录的时候将显示一段信息。默认情况下,会在这个目录中查找.message文件,但你也可以
通过更改message_file来改变默认值。
默认值:NO (但在配置范例文件中启用了它)
download_enable
如果设为NO,下载请求将返回“permission denied”。
默认值:YES
dual_log_enable
如果启用,两个LOG文件会各自产生,默认的是/var/log/xferlog和/var/log/vsftpd.log。前一个是wu-ftpd格式的LOG,能被通用工具分析。
后一个是VSFTPD的专用LOG格式。
默认值: NO
force_dot_files
如果激活,即使客户端没有使用“a”标记,(FTP里)以.开始的文件和目录都会显示在目录资源列表里。但是把\".\"和\"..\"不会显示。(daidong注:即LINUX下
的当前目录和上级目录不会以‘.’或‘..’方式显示)。
默认值:NO
force_local_data_ssl
只有在ssl_enable激活后才能启用。如果启用,所有的非匿名用户将被强迫使用安全的SSL登录以在数据线路上收发数据。
默认值:YES
force_local_logins_ssl
只有在ssl_enable激活后才能启用。如果启用,所有的非匿名用户将被强迫使用安全的SSL登录以发送密码。
默认值:YES
guest_enable
如果启用,所有的非匿名用户登录时将被视为”游客“,其名字将被映射为guest_username里所指定的名字。
默认值:NO
hide_ids
如果启用,目录资源列表里所有用户和组的信息将显示为\"ftp\".
默认值:NO
listen
如果启用,VSFTPD将以独立模式(standalone)运行,也就是说可以不依赖于inetd或者类似的东东启动。直接运行VSFTPD
的可执行文件一次,然后VSFTPD就自己去监听和处理连接请求了。
默认值:NO
listen_ipv6
类似于listen参数的功能,但有一点不同,启用后VSFTPD会去监听IPV6套接字而不是IPV4的。这个设置和listen的设置互相排斥。
默认值:NO
local_enable
用来控制是否容许本地用户登录。如果启用,/etc/passwd里面的正常用户的账号将被用来登录。
默认值:NO
log_ftp_protocol
启用后,如果xferlog_std_format没有被激活,所有的FTP请求和反馈信息将被纪录。这常用于调试(debugging)。
默认值:NO
ls_recurse_enable
如果启用,\"ls -R\"将被容许使用。这是为了避免一点点安全风险。因为在一个大的站点内,在目录顶层使用这个命令将消耗大量资源。
默认值:NO
no_anon_password
如果启用,VSFTPD将不会向匿名用户询问密码。匿名用户将直接登录。
默认值:NO
no_log_lock
启用时,VSFTPD在写入LOG文件时将不会把文件锁住。这一项一般不启用。它对一些工作区操作系统问题,如Solaris / Veritas文件系统共存时有用。
因为那在试图锁定LOG文件时,有时候看上去象被挂死(无响应)了。(daidong注:这我也不是很理解。所以翻译未必近乎原意。原文如下:It exists to workaround
operating system bugs such as the Solaris / Veritas filesystem combination
which has been observed to sometimes exhibit hangs trying to lock log files.)
默认值:NO
one_process_model
如果你的LINUX核心是2.4的,那么也许能使用一种不同的安全模式,即一个连接只用一个进程。只是一个小花招,但能提高FTP的性能。请确定需要后再启用它,而且也请确定你的
站点是否会有大量的人同时访问。
默认值:NO
passwd_chroot_enable (daidong注:这段自己看,无语...)
if enabled, along with
.BR chroot_local_user
, then a chroot() jail location may be specified on a per-user basis. Each
user\'s jail is derived from their home directory string in /etc/passwd. The
occurrence of /./ in the home directory string denotes that the jail is at that
particular location in the path.
默认值:NO
pasv_enable
如果你不想使用被动方式获得数据连接,请设为NO。
默认值:YES
pasv_promiscuous
如果你想关闭被动模式安全检查(这个安全检查能确保数据连接源于同一个IP地址)的话,设为YES。确定后再启用它(daidong注:原话是:只有你清楚你在做什么时才启用它!)
合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。
默认值:NO
port_enable
如果你想关闭以端口方式获得数据连接时,请关闭它。
默认值:YES
port_promiscuous
如果你想关闭端口安全检查(这个检查可以确保对外的(outgoing)数据线路只通向客户端)时,请关闭它。确认后再做!
默认值:NO
run_as_launching_user
如果你想让一个用户能启动VSFTPD的时候,可以设为YES。当ROOT用户不能去启动VSFTPD的时候会很有用(daidong注:应该不是说ROOT用户没有权限启动VSFTPD,
而是因为别的,例如安全限制,而不能以ROOT身份直接启动VSFTPD)。强烈警告!!别启用这一项,除非你完全清楚你在做什么(daidong:无语....)!!!随意地启动这一项会导致
非常严重的安全问题,特别是VSFTPD没有或者不能使用虚根技术来限制文件访问的时候(甚至VSFTPD是被ROOT启动的)。有一个愚蠢的替代方案是启用deny_file,将其设置为{/*,*..*}等,
但其可靠性却不能和虚根相比,也靠不住。
如果启用这一项,其他配置项的限制也会生效。例如,非匿名登录请求,上传文件的所有权的转换,用于连接的20端口和低于1024的监听端口将不会工作。其他一些配置项也可能被影响。
默认值:NO
secure_email_list_enable
如果你想只接受以指定E-MAIL地址登录的匿名用户的话,启用它。这一般用来在不必要用虚拟用户的情况下,以较低的安全限制去访问较低安全级别的资源。如果启用它,匿名用户除非
用在email_password_file里指定的E-MAIL做为密码,否则不能登录。这个文件的格式是一个密码一行,而且没有额外的空格(daidong注:whitespace,译为空格,不知道是否正确)。
默认的文件名是:/etc/vsftpd.email_passwords.
默认值:NO
session_support
这将配置是否让VSFTPD去尝试管理登录会话。如果VSFTPD管理会话,它会尝试并更新utmp和wtmp。它也会打开一个pam会话(pam_session),直到LOGOUT才会关闭它,如果使用PAM进行认证的话。
如果你不需要会话纪录,或者想VSFTPD运行更少的进程,或者让它更大众化,你可以关闭它。
注:utmp和wtmp只在有PAM的环境下才支持。
默认值:NO
setproctitle_enable
如果启用,VSFTPD将在系统进程列表中显示会话状态信息。换句话说,进程名字将变成VSFTPD会话当前正在执行的动作(等待,下载等等)。为了安全目的,你可以关闭这一项。
默认值:NO
ssl_enable
如果启用,vsftpd将启用openSSL,通过SSL支持安全连接。这个设置用来控制连接(包括登录)和数据线路。同时,你的客户端也要支持SSL才行。
注意:小心启用此项.VSFTPD不保证OpenSSL库的安全性。启用此项,你必须确信你安装的OpenSSL库是安全的。
默认值:NO
ssl_sslv2
要激活ssl_enable才能启用它。如果启用,将容许SSL V2协议的连接。TLS V1连接将是首选。
默认值:NO
ssl_sslv3
要激活ssl_enable才能启用它。如果启用,将容许SSL V3协议的连接。TLS V1连接将是首选。
默认值:NO
ssl_tlsv1
要激活ssl_enable才能启用它。如果启用,将容许TLS V1协议的连接。TLS V1连接将是首选。
默认值:YES
syslog_enable
如果启用,系统log将取代vsftpd的log输出到/var/log/vsftpd.log.FTPD的了log工具将不工作。
默认值:NO
tcp_wrappers
如果启用,vsftpd将被tcp_wrappers所支持。进入的(incoming)连接将被tcp_wrappers访问控制所反馈。如果tcp_wrappers设置了
VSFTPD_LOAD_CONF环境变量,那么vsftpd将尝试调用这个变量所指定的配置。
默认值:NO
text_userdb_names
默认情况下,在文件列表中,数字ID将被显示在用户和组的区域。你可以编辑这个参数以使其使用数字ID变成文字。为了保证FTP性能,默认
情况下,此项被关闭。
默认值:NO
tilde_user_enable
如果启用,vsftpd将试图解析类似于~chris/pics的路径名(一个\"~\"(tilde)后面跟着个用户名)。注意,vsftpd有时会一直解析路径名\"~\"和\"~/\"(在这里,~被解析成内部登录目录)。
~用户路径(~user paths)只有在当前虚根下找到/etc/passwd文件时才被解析。
默认值:NO
use_localtime
如果启用,vsftpd在显示目录资源列表的时候,在显示你的本地时间。而默认的是显示GMT(格林尼治时间)。通过MDTM FTP命令来显示时间的话也会被这个设置所影响。
默认值:NO
use_sendfile
一个内部设定,用来测试在你的平台上使用sendfile()系统呼叫的相关好处(benefit).
默认:YES
userlist_deny
这个设置在userlist_enable被激活后能被验证。如果你设置为NO,那么只有在userlist_file里明确列出的用户才能登录。
如果是被拒绝登录,那么在被询问密码前,用户就将被系统拒绝。
默认值:YES
userlist_enable
如果启用,vsftpd将在userlist_file里读取用户列表。如果用户试图以文件里的用户名登录,那么在被询问用户密码前,他们就将被系统拒绝。
这将防止明文密码被传送。参见userlist_deny。
默认值:NO
virtual_use_local_privs
如果启用,虚拟用户将拥有和本地用户一样的权限。默认情况下,虚拟用户就拥有和匿名用户一样的权限,而后者往往有更多的限制(特别是写权限)。
默认值:NO
write_enable
这决定是否容许一些FTP命令去更改文件系统。这些命令是STOR, DELE, RNFR, RNTO, MKD, RMD, APPE 和 SITE。
默认值:NO
xferlog_enable
如果启用,一个log文件将详细纪录上传和下载的信息。默认情况下,这个文件是/var/log/vsftpd.log,但你也可以通过更改vsftpd_log_file来指定其默认位置。
默认值:NO (但在范例配置文件中,启用了这一项)
xferlog_std_format
如果启用,log文件将以标准的xferlog格式写入(wu-ftpd使用的格式),以便于你用现有的统计分析工具进行分析。但默认的格式具有更好的可读性。默认情况下,log文件是在/var/log/xferlog。
但是,你可以通过修改xferlog_file来指定新路径。
默认值:NO
======
数字选项
以下是数字配置项。这些项必须设置为非负的整数。为了方便umask设置,容许输入八进制数,那样的话,数字必须以0开始。
accept_timeout
超时,以秒为单位,设定远程用户以被动方式建立连接时最大尝试建立连接的时间。
默认值:60
anon_max_rate
对于匿名用户,设定容许的最大传送速率,单位:字节/秒。
默认值:0 (无限制)
anon_umask
为匿名用户创建的文件设定权限。注意:如果你想输入8进制的值,那么其中的0不同于10进制的0。
默认值:077
connect_timeout
超时。单位:秒。是设定远程用户必须回应PORT类型数据连接的最大时间。
默认值:60
data_connection_timeout
超时,单位:秒。设定数据传输延迟的最大时间。时间一到,远程用户将被断开连接。
默认值:300
file_open_mode
对于上传的文件设定权限。如果你想被上传的文件可被执行,umask要改成0777。
默认值:0666
ftp_data_port
设定PORT模式下的连接端口(只要connect_from_port_20被激活)。
默认值:20
idle_session_timeout
超时。单位:秒。设置远程客户端在两次输入FTP命令间的最大时间。时间一到,远程客户将被断开连接。
默认值:300
listen_port
如果vsftpd处于独立运行模式,这个端口设置将监听的FTP连接请求。
默认值:21
local_max_rate
为本地认证用户设定最大传输速度,单位:字节/秒。
默认值:0(无限制)
local_umask
设置本地用户创建的文件的权限。注意:如果你想输入8进制的值,那么其中的0不同于10进制的0。
默认值:077
max_clients
如果vsftpd运行在独立运行模式,这里设置了容许连接的最大客户端数。再后来的用户端将得到一个错误信息。
默认值:0(无限制)
max_per_ip
如果vsftpd运行在独立运行模式,这里设置了容许一个IP地址的最大接入客户端。如果超过了最大限制,将得到一个错误信息。
默认值:0(无限制)
pasv_max_port
指定为被动模式数据连接分配的最大端口。可用来指定一个较小的范围以配合防火墙。
默认值:0(使用任何端口)
pasv_min_port
指定为被动模式数据连接分配的最小端口。可用来指定一个较小的范围以配合防火墙。
默认值:0(使用任何端口)
trans_chunk_size
你一般不需要改这个设置。但也可以尝试改为如8192去减小带宽限制的影响。
默认值:0(让vsftpd自行选择)
===========
STRING 配置项
以下是STRING 配置项
anon_root
设置一个目录,在匿名用户登录后,vsftpd会尝试进到这个目录下。如果失败则略过。
默认值:无
banned_email_file
deny_email_enable启动后,匿名用户如果使用这个文件里指定的E-MAIL密码登录将被拒绝。
默认值:/etc/vsftpd.banned_emails
banner_file
设置一个文本,在用户登录后显示文本内容。如果你设置了ftpd_banner,ftpd_banner将无效。
默认值:无
chown_username
改变匿名用户上传的文件的所有者。需设定chown_uploads。
默认值:ROOT
chroot_list_file
这个项提供了一个本地用户列表,表内的用户登录后将被放在虚根下,并锁定在home目录。这需要chroot_list_enable项被启用。
如果chroot_local_user项被启用,这个列表就变成一个不将列表里的用户锁定在虚根下的用户列表了。
默认值:/etc/vsftpd.chroot_list
cmds_allowed
以逗号分隔的方式指定可用的FTP命令(post login. USER, PASS and QUIT 是始终可用的命令)。
其他命令将被屏蔽。这是一个强有力的locking down一个FTP服务器的手段。例如:cmds_allowed=PASV,RETR,QUIT
默认值:无
deny_file
这可以设置一个文件名或者目录名式样以阻止在任何情况下访问它们。并不是隐藏它们,而是拒绝任何试图对它们进行的操作(下载,改变目录层,
和其他有影响的操作)。这个设置很简单,而且不会用于严格的访问控制-文件系统权限将优先生效。然而,这个设置对确定的虚拟用户设置很有用。
特别是如果一个文件能多个用户名访问的话(可能是通过软连接或者硬连接),那就要拒绝所有的访问名。
建议你为使用文件系统权限设置一些重要的安全策略以获取更高的安全性。如deny_file={*.mp3,*.mov,.private}
默认值:无
dsa_cert_file
这个设置为SSL加密连接指定了DSA证书的位置。
默认值:无(有一个RSA证书就够了)
email_password_file
在设置了secure_email_list_enable后,这个设置可以用来提供一个备用文件。
默认值:/etc/vsftpd.email_passwords
ftp_username
这是用来控制匿名FTP的用户名。这个用户的home目录是匿名FTP区域的根。
默认值:ftp
ftpd_banner
当一个连接首次接入时将现实一个欢迎界面。
默认值:无(默认的界面会被显示)
guest_username
参见相关设置guest_enable。这个设置设定了游客进入后,其将会被映射的名字。
默认:ftp
hide_file
设置了一个文件名或者目录名列表,这个列表内的资源会被隐藏,不管是否有隐藏属性。但如果用户知道了它的存在,
将能够对它进行完全的访问。hide_file里的资源和符合hide_file指定的规则表达式的资源将被隐藏。vsftpd的
规则表达式很简单,例如hide_file={*.mp3,.hidden,hide*,h?}
默认值:无
listen_address
如果vsftpd运行在独立模式下,本地接口的默认监听地址将被这个设置代替。
需要提供一个数字化的地址。
默认值:无
listen_address6
如果vsftpd运行在独立模式下,要为IPV6指定一个监听地址(如果listen_ipv6被启用的话)。
需要提供一个IPV6格式的地址。
默认值:无
local_root
设置一个本地(非匿名)用户登录后,vsftpd试图让他进入到的一个目录。如果失败,则略过。
默认值:无
message_file
当进入一个新目录的时候,会查找这个文件并显示文件里的内容给远程用户。dirmessage_enable需启用。
默认值:.message
nopriv_user
这是vsftpd做为完全无特权的用户的名字。这是一个专门的用户,比nobody更甚。用户nobody往往用来在一些机器上做一些重要的事情。
默认值:nobody
pam_service_name
设定vsftpd将要用到的PAM服务的名字。
默认值:ftp
pasv_address
当使用PASV命令时,vsftpd会用这个地址进行反馈。需要提供一个数字化的IP地址。
默认值:无(地址将取自进来(incoming)的连接的套接字)
rsa_cert_file
这个设置指定了SSL加密连接需要的RSA证书的位置。
默认值:/usr/share/ssl/certs/vsftpd.pem
secure_chroot_dir
这个设置指定了一个空目录,这个目录不容许ftp user写入。在vsftpd不希望文件系统被访问时,目录为安全的虚根所使用。
默认值: /usr/share/empty
ssl_ciphers
这个设置将选择vsftpd为加密的SSL连接所用的SSL密码。详细信息参见ciphers。
默认值:DES-CBC3-SHA
user_config_dir
这个强大的设置容许覆盖一些在手册页中指定的配置项(基于单个用户的)。用法很简单,最好结合范例。如果你把user_config_dir
改为/etc/vsftpd_user_conf,那么以chris登录,vsftpd将调用配置文件/etc/vsftpd_user_conf/chris。
默认值:无
user_sub_token
这个设置将依据一个模板为每个虚拟用户创建home目录。例如,如果真实用户的home目录通过guest_username为/home/virtual/   $USER 指定,
并且user_sub_token设置为    $USER ,那么虚拟用户fred登录后将锁定在/home/virtual/fred下。
默认值:无
userlist_file
当userlist_enable被激活,系统将去这里调用文件。
默认值:/etc/vsftpd.user_list
vsftpd_log_file
只有xferlog_enable被设置,而xferlog_std_format没有被设置时,此项才生效。这是被生成的vsftpd格式的log文件的名字。
dual_log_enable和这个设置不能同时启用。如果你启用了syslog_enable,那么这个文件不会生成,而只产生一个系统log.
默认值:/var/log/vsftpd.log
xferlog_file
这个设置是设定生成wu-ftpd格式的log的文件名。只有启用了xferlog_enable和xferlog_std_format后才能生效。
但不能和dual_log_enable同时启用。
默认值:/var/log/xferlog
3、未完成的实验
his example should quickly show you the possibilites of per-IP configuration
with vsftpd\'s tcp_wrappers integration. This is new with v1.1.3.
To use this, you need vsftpd built with tcp_wrappers! This is accomplished
by editing \"builddefs.h\" and changing
#undef VSF_BUILD_TCPWRAPPERS
to
#define VSF_BUILD_TCPWRAPPERS
And then rebuild. If you are lucky your vendor will have shipped the vsftpd
binary with this already done for you.
Next, to enable tcp_wrappers integration, you need this in your vsftpd.conf:
tcp_wrappers=YES
And you\'ll need a tcp_wrappers config file. An example one is supplied in this
directory: hosts.allow. It lives at /etc/hosts.allow.
Let\'s have a look at the example:
vsftpd: 192.168.1.3: setenv VSFTPD_LOAD_CONF /etc/vsftpd_tcp_wrap.conf
vsftpd: 192.168.1.4: DENY
The first line:
If a client connects from 192.168.1.3, then vsftpd will apply the vsftpd
config file /etc/vsftpd_tcp_wrap.conf to the session! These settings are
applied ON TOP of the default vsftpd.conf.
This is obviously very powerful. You might use this to apply different
access restrictions for some IPs (e.g. the ability to upload).
or you could give certain classes of IPs the ability to skip connection
limits (max_clients=0).
or you could increase / decrease the bandwidth limiter for certain classes
of IPs.
You get the point
The second line:
Denies the ability of 192.168.1.4 to connect. Very useful to take care of
troublemakers. And now you don\'t need xinetd to do it - hurrah.
This example shows how you might set up virtual hosts. Virtual hosting is
where different clients access your machine on different IP addresses (virtual
IPs) and get redirected to different ftp sites.
For example, if your machine responds to two IPs - 127.0.0.1 and 127.0.0.2,
you could have the two different IPs represent two totally different FTP sites.
For this example, we are going to build on the \"INTERNET_SITE\" example.
Step 1) Set up a virtual IP address.
ifconfig eth0:1 192.168.1.10 up
(the standard IP address is 192.168.1.2)
(note - this isn\'t quite complete, the route for local connects hasn\'t been
added, but it will do for now)
Step 2) Create a user / location for the new virtual site.
useradd -d /var/ftp_site2 ftp_site2
chown root.root /var/ftp_site2
chmod a+rx /var/ftp_site2
umask 022
mkdir /var/ftp_site2/pub
echo \"test\" > /var/ftp_site2/pub/content
Step 3) Modify the existing site to respond to the primary IP.
Edit /etc/xinetd.d/vsftpd, and add the config line:
This example shows how you might set up virtual hosts. Virtual hosting is
where different clients access your machine on different IP addresses (virtual
IPs) and get redirected to different ftp sites.
For example, if your machine responds to two IPs - 127.0.0.1 and 127.0.0.2,
you could have the two different IPs represent two totally different FTP sites.
For this example, we are going to build on the \"INTERNET_SITE\" example.
Step 1) Set up a virtual IP address.
ifconfig eth0:1 192.168.1.10 up
(the standard IP address is 192.168.1.2)
(note - this isn\'t quite complete, the route for local connects hasn\'t been
added, but it will do for now)
Step 2) Create a user / location for the new virtual site.
useradd -d /var/ftp_site2 ftp_site2
chown root.root /var/ftp_site2
chmod a+rx /var/ftp_site2
umask 022
mkdir /var/ftp_site2/pub
echo \"test\" > /var/ftp_site2/pub/content
Step 3) Modify the existing site to respond to the primary IP.
Edit /etc/xinetd.d/vsftpd, and add the config line:
bind = 192.168.1.2
Step 4) Create the new site, responding on the virtual IP.
cp /etc/xinetd.d/vsftpd /etc/xinetd.d/vsftpd2
Edit vsftpd2, and change
- The bind line to refer to the IP address 192.168.1.10
- Add the line
server_args = /etc/vsftpd_site2.conf
This launches this FTP site with a different vsftpd configuration file.
cp /etc/vsftpd.conf /etc/vsftpd_site2.conf
Add two lines:
ftp_username=ftp_site2
ftpd_banner=This is the alternative FTP site.
Step 5) Restart xinetd and test!
/etc/rc.d/init.d/xinetd restart
[chris@localhost vsftpd]   $ ftp 192.168.1.2
Connected to 192.168.1.2 (192.168.1.2).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (192.168.1.2:chris): [chris@localhost vsftpd]   $
[chris@localhost vsftpd]   $ ftp 192.168.1.2
Connected to 192.168.1.2 (192.168.1.2).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (192.168.1.2:chris):
530 This FTP server is anonymous only.
Login failed.
ftp> quit
221 Goodbye.
[chris@localhost vsftpd]   $ ftp 192.168.1.10
Connected to 192.168.1.10 (192.168.1.10).
220 This is the alternative FTP site.
Name (192.168.1.10:chris):
530 This FTP server is anonymous only.
Login failed.
ftp>
14:57 |
添加评论
|
发送消息
|
固定链接
|
查看引用通告 (0)
|
[url=javascript:BlogIt('cns!FB34A9360EDDA12A!144');]写入日志[/url]
|
计算机与 Internet

AIX:IBM HACMP 磁盘心跳
Disk Heart Beats and other ECM disk things:
Setup/Installation:
This is not the official method to set up and test Disk Heart Beats but this is the method that I have settled in to while implementing them in the field. It provides a quick, recoverable method that does not impact the rest of the system. It does however require that you stop HA on both nodes. This has been used on systems with EMC Power Path devices. Proceed at your own risk.
Verify the required file sets are installed:
From AIX distribution media, bos.clvm.enh
From the HA distribution media, cluster.es.clvm.rte

  • Check with the IBM web site to ensure you have the latest code for these and rsct services.

  • Vary on all the volume groups to one of the nodes.
    'varyonvg '

  • Convert the volume groups to Enhanced Concurrent Mode
    'chvg -C '

  • Vary off the volume groups from the node.
    'varyoffvg '

  • Repeat this on all nodes in the cluster. Now some may suggest that one could simply export/import the volume groups, this will also work but requires typing more characters.

  • Add the vg to a resource group and start cluster services

  • Use C-SPOC to add in the disk heartbeat network.
    Problem Determination:
    ** one thing to remember, if using vpath devices you must use the "real" device.
    1/ Enhanced Concurrent disks must be under the control of grpsvcs to work properly. Use the command 'lssrc -ls grpsvcs' to verify the number of disks currently under control of group services. The following example shows four ECM disks. There is a 's' group name and a 'd' group name for each disk.
    Also check the status on all nodes that the disk is listed as "concurrent". If a disk is listed as "active" it is varied on in a non-concurrent fashion, and is incorrect.
    If additional information is required you can look at the VGDA of each disk. Note the VG permission is set to passive-only.
    If the disks do not look like this then it is possible that one on the nodes has the disk varied on in "active" mode. Look for Read/Write in the VG permission field. Normally only HACMP sets this condition.
    2/ When the ECM disks initialize they must be brought online in passive mode:
    "varyonvg -c -n -P vgname" should do the trick. Execute this on each node.
    If there is a problem doing this, go back and vary off the VG on all nodes and retry the command. This should caus the cgoup services connection to be established for the disk.
    3/ To activate the disk on a node use the command "varyonvg -c -n -A vgname" to cause the switch from passive to active. This is similar to the normal varyon of a volume group. When the disk is active the lsvg -o command should show it on line.
    4/ To verify if the ECM disks are working the tool dhb_read can be used. It lives in /usr/sbin/rsct/bin/ directory. Group services must be running and the disk must be at least passive on both nodes for the dhb_read program to function.

    http://www.matildasystems.com/tech_notes/Disk_hb.html
    10:54 |
    添加评论
    |
    发送消息
    |
    固定链接
    |
    查看引用通告 (0)
    |
    [url=javascript:BlogIt('cns!FB34A9360EDDA12A!143');]写入日志[/url]
    |
    AIX

    2006/6/5
    星际译王-linux下的词霸
    1、下载2.4.4版本的源码包 stardict2.4.4
          地址:http://jaist.dl.sourceforge.net/ ... rdict-2.4.4.tar.bz2
          这是小日本的一个镜像,速度很快!建议大家到这里去当,拖死它:D
    2、解压编译安装
         tar -xvjf stardict-2.4.4.tar.bz2
         cd stardict-2.4.4
         ./configure
         make
         make install  (估计real会用checkinstall):I
    3、星际译王装好了,把词典当下来,没有词典的星际译王,再好也没啥用
        下载朗道汉英词典和英汉词典
         地址:
         http://jaist.dl.sourceforge.net/ ... ec-gb-2.4.2.tar.bz2
         http://jaist.dl.sourceforge.net/ ... ce-gb-2.4.2.tar.bz2
    记住两个都下哦,否则不能汉译英 英译汉时别大叫:怎么stardict这么臭啊!!:D
    4、安装词典
        首先为编译的stardict创建一个词典目录,编译安装是没有的(起码在我的slackware上没有),不过你这么做一次想来也没什么错
        mkdir /usr/local/share/stardict/dic
        注:编译安装默认就是安装在这里的,至少RH FC SLACK是这样
        解压上面当下来的两个词典压缩包
        tar -xvjf stardict-langdao-ec-gb-2.4.2.tar.bz2
        tar -xvjf stardict-langdao-ce-gb-2.4.2.tar.bz2
    复制解压来的两个目录到stardict的安装目录
       mv stardict-langdao-ec-gb-2.4.2 /usr/local/share/stardict/dic
       mv stardict-langdao-ce-gb-2.4.2 /usr/local/share/stardict/dic
       如果你想到更多的词典请到http://stardict.sourceforge.net/Dictionaries_zh_CN.php去当,我反正有那两个就够了
    5、安装完成,运行一下stardict.贴一张图看看
    18:36 |
    添加评论
    |
    发送消息
    |
    固定链接
    |
    查看引用通告 (0)
    |
    [url=javascript:BlogIt('cns!FB34A9360EDDA12A!142');]写入日志[/url]
    |
    计算机与 Internet

    以Debian方式编译MPlayer SVN
    http://linuxsir.org/bbs/showthread.php?t=259864
    Linuxsir上面一篇不错的关于编译Mplayer的文章,讲得是使用CVS版本
    ,NO,是SVN版本。:-)
    本文系鄙人独自完成,转载请注明原作者及出处
    不久前MPlayer的旧服务器退出历史舞台,其CVS服务器也随之而去。MPlayer最终也转用Subversion来作为其源代码管理系统。获取并编译MPlayer的开发版大体流程没有变化,只需要把CVS命令换成SVN命令就行了。
    ($ - 表示普通用户权限即可;# - 表示需要root权限)
    零、准备工作:
    先安装subversion:
    # apt-get install svn
    获取gtk 2.0的开发包:
    # apt-get install libgtk2.0-dev
    获取fakeroot以使普通用户权限可以进行编译:
    # apt-get install fakeroot
    一、获取源代码:
    1、Subversion获取源代码的方式简单的多,而且由于其svn repository已经设置了外部目录,因此只需要获取mplayer目录的内容, libavcodec/libavformat/libavutils会同时获得,省了不少事儿。请转到你想要获得源代码目录的位置:
    # svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
    命令最后的"mplayer"是将trunk改名成mplayer。各位可以根据喜好改成别的名字或者留空(即不改名)。
    2、获取codecs和skin:
    请到
    http://www.mplayerhq.hu/design7/dload.html
    获取codecs和skin。
    现在用于Linux的all codecs已转到另一链接:
    http://www1.mplayerhq.hu/MPlayer/rel...060501.tar.bz2
    还在使用20050412的朋友们可以更新一下了 :) 。
    Skin的话大家可以选择自己喜爱的任一一款。
    二、编译并配置:
    1、安排codecs:
    在编译之前首先要安装好codecs,否则编译的时候找不到codecs的位置很可能导致最终编译的mplayer无法加载codecs。其默认路径是 /usr/local/lib/codecs。各位需要将all-20060501.tar.bz2解压出来的目录改名为codecs并移动或拷贝到 /usr/local/lib下。另一方面,鉴于totem同样可以使用mplayer的codecs,而其默认路径是/usr/lib/win32,用户可以将/usr/lib/win32作为链接指向/usr/local/lib/codecs;或者干脆将codecs解压至 /usr/lib/win32,mplayer同样会搜索这个目录并加载。
    2、安装skin:
    解压您下载的Skin文件,将得到的目录改名为default,并将default目录移动到/usr/share/mplayer/Skin/,即完成Skin设置。
    3、开始编译:
    进入刚刚获得的mplayer目录(如改名请进入相应的目录)。一般方式即老三步:
    $ ./configure --enable-gui
    $ make
    # make install
    如需要以Debian方式,即按如下命令:
    $ DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary
    完成后会在上一级目录得到mplayer_1.0cvs_i386.deb,安装之即可:
    # dpkg -i mplayer_1.0cvs_i386.deb
    第一次安装会让你选择视频输出方式和字体。字体建议选择uming。视频输出方式的话,各位可以选择x11设备。另一方面,vidix驱动是很不错的,通过显卡进行渲染,极大的节约了CPU资源,但是需要以root权限运行,因为其需要访问的设备普通用户没有权限访问。mplayer官方提供的 libdha方式由于源代码太久没有更新,已经无法编译。目前可能只有以root权限运行来使用vidix驱动了。如各位有办法使普通用户使用vidix 驱动,恳请指导,感激不尽!
    4、配置。
    默认安装的MPlayer有3个地方我不太满意:
    (1)默认窗体大小改变时视频大小不变,即没有缩放;
    (2)默认不关闭xscreensaver,因此在观看时有可能在关键时刻忽然屏保启动!于是乎@#¥¥%!@#¥%!@#¥
    (3)默认字幕大小并不限制在屏宽之内,因此过长的字幕会超出屏幕边界……
    我的解决方法是:
    (1)在/etc/mplayer/mplayer.conf文件中加入一行
    zoom=yes
    即可支持缩放功能。这是修改全局设置的方法,如仅想修改某用户设置,则可以修改~/.mplayer/config文件。
    (2)修改~/.mplayer/gui.conf中的stopxscreensaver项为"yes"
    stopxscreensaver="yes"
    (3)修改~/.mplayer/gui.conf中的font_autoscale项为"2"
    font_autoscale = "2"
    5、升级:
    升级源代码及其简单。转到mplayer源代码的目录执行:
    $ svn update
    即完成源代码升级。重新编译并安装即完成升级。
    6、在线播放:
    对于mozilla系列浏览器可以使用mplayerplug-in插件,在Debian中:
    # apt-get install mozilla-mplayer
    如果使用Firefox,可以使用其官方插件MediaPlayerConnectivity,并将播放器设置为mplayer,使用外部方式播放,也很不错。
    至此,SVN上的MPlayer编译安装配置完成!
    参考资料:
    http://www.mplayerhq.hu/design7/news.html
    MPlayer README
    18:35 |
    添加评论
    |
    发送消息
    |
    固定链接
    |
    查看引用通告 (0)
    |
    [url=javascript:BlogIt('cns!FB34A9360EDDA12A!141');]写入日志[/url]
    |
    计算机与 Internet

    2006/4/18
    AIX常用命令
    1.如何禁止终端上的中断键(CTRL+C)?
    在很多应用系统中,系统管理员希望普通用户只运行自己的应用程序,不能进入系统的shell提示符下,但缺省情况下当用户在终端上按CTRL+C键时就会退到系统提示符下。由于用户终端一般没有固定的端口号,为了禁止使用中断键,可采取下面办法:
    (1)如果使用ksh, 可在$HOME/.profile中第一行加入如下内容:
    trap "echo 'Abnormal operation'; exit" 123915
    (2)如果使用csh(ksh亦可),可用如下命令:
    %stty intr ^!
    如果恢复正常情况,键入下列命令:
    % stty intr ^c

    2.如何在shell中不回显(echo)字符?
    在实际应用中,一般当我们在键盘上键入口令时不希望将其显示在屏幕上,为此可采用下面的两种办法:
    ·使用stty 命令
    stty -echo # do not display password
    echo "Enter password: \c"
    read PASSWD #get the password
    stty echo # restore standard configuration
    ·使用echo命令
    设置保密属性:echo "\033[8m"
    取消保密属性:echo "\033[m"

    3.如何在某个目录及其所属子目录的所有文件中查找字符串?
    在程序维护过程中,有时需要在某个目录及其所属子目录的所有文件中查找某一个字符串,为此可用下面两种方法(假设在*.cp文件中查找字符串"abc",结果放在文件out中):
    (1)cat /dev/null > out
    find ./ -name "*.cp" -exec grep "abc"{} >> out
    (2)find ./ -name "*.cp" | xargs grep "abc" > out
    推荐使用第二种方法,因其系统开销小、速度快。

    4.如何对/etc/inittab文件中的一行进行注释?
    我们都知道在shell中使用"#"作为注释符号,但在/etc/inittab中注释一行的方法是在第一个字符前插入字符":"。

    5.如何转换DOS和AIX两种格式的文本文件?
    如欲转换DOS和AIX两种格式的文本文件,有两种方法:
    (1)用ftp命令:设置ASCII传输类型,在一台运行AIX的机器和另外一台运行Windows的机器之间互相传送,这里不再赘述。
    (2)使用aix2dos或dos2aix命令
    如将DOS格式的文本文件转换为AIX格式,可用命令A:dos2aix inputfile outfile,反之可用命令:aix2dos inputfile outfile,关于dos2aix和aix2dos命令的详细用法可参阅"dos2aix -h "和"aix2dos -h "。注意要使用这两个命令,必须首先安装文件集bos.pci。

    6.如何解决某一PV上的VGDA与ODM库不一致的问题?
    在系统维护过程中,因为操作错误或其他特殊原因,有可能使某一PV上的LVCB和VGDA与其对应的ODM库不一致,导致ODM库紊乱,对PV的有关操作无法进行,这时可采用如下两个AIX命令加以解决:
    redefinevg -d hdisk_name vg_name
    该命令以指定PV上的LVM信息重新定义给定VG的ODM库。
    或:synclvodm -P -v vgname
    该命令同步或重建给定VG的ODM库和LVM信息。

    7.如何设置用户的文件大小限制?
    在AIX系统中,用户使用系统资源是有一定限制的。如用户缺省可创建或扩展的最大文件为1G(参见/etc/security/limits: fsize = 2097151, fsize_hard=fsize 512-bytes blocks)。
    如欲修改,可使用smit:
    # smit chuser 选择用户,修改下面两项:
    Soft FILE size [4194302]
    # (2G,可根据需要设定)
    Hard FILE size [4194302]
    # (2G, 可根据需要设定)
    用该用户身份登录,使用"ulimit -f "和"ulimit -Hf"可分别显示其fsize、fsize_hard的大小。

    8、如何按文件大小排序列出一个文件系统下的文件?
    当监控某一文件系统的空间使用情况时,如果该文件系统剩余空间较少或已使用空间增长较快,则有必要排序列出该文件系统中所有大于某一给定字节数的文件,以便进一步维护管理。为此,可用如下命令:
    # find [filesystem_name] -xdev -size +[512-bytes bloks] -ls | sort -r -n -k7


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/74291/showart_1090929.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP