??xml version="1.0" encoding="utf-8" standalone="yes"?>
-a 列出目录下的所有文Ӟ包括?. 开头的隐含文g?
-b 把文件名中不可输出的字符用反斜杠加字W编?p在C语言里一?的Ş式列出?
-c 输出文g?i 节点的修Ҏ(gu)_(d)q以此排序?
-d 目录象文g一hC,而不是显C其下的文g?
-e 输出旉的全部信息,而不是输出简略信息?
-f -U 对输出的文g不排序?
-g 无用?
-i 输出文g?i 节点的烦引信息?
-k ?k 字节的Ş式表C文件的大小?
-l 列出文g的详l信息?
-m 横向输出文g名,q以“,”作分格W?
-n 用数字的 UID,GID 代替名称?
-o 昄文g的除l信息外的详l信息?
-p -F 在每个文件名后附上一个字W以说明该文件的cdQ?”表C可执行的普?
文gQ?”表C目录;“@”表C符号链接;“|”表CFIFOsQ?”表C套
接字(sockets)?
-q ?代替不可输出的字W?
-r 对目录反向排序?
-s 在每个文件名后输文g的大?
-t 以时间排序?
-u 以文件上ơ被讉K的时间排序?
-x 按列输出Q横向排序?
-A 昄??”和?.”外的所有文件?
-B 不输Z “~”结备䆾文g?
-C 按列输出Q纵向排序?
-G 输出文g的组的信息?
-L 列出链接文g名而不是链接到的文件?
-N 不限制文仉度?
-Q 把输出的文g名用双引hh?
-R 列出所有子目录下的文g?
-S 以文件大排序?
-X 以文件的扩展?最后一?. 后的字符)排序?
-1 一行只输出一个文件?
--color=no 不显C彩色文件名
--help 在标准输Z昄帮助信息?
--version 在标准输Z输出版本信息q出?/font>
]]>
一、VSFTPD的安?
目前QVSFTPD的最新版本是1.2.0版。官方下载地址为ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.0.tar.gz。在安装前,需要先做以下准备工作:(x)
VSFTPD默认配置中需要“nobody”用戗在pȝ中添加此用户Q如果用户已l存在,useradd命o(h)有相应提C?
[root@hpe45 root]# useradd nobody
useradd: user nobody exists
VSFTPD默认配置中需要?usr/share/empty”目录。在pȝ中此目录Q如果目录已l存在,mkdir命o(h)有相应提C?
[root@hpe45 root]# mkdir /usr/share/empty/
mkdir: cannot create directory '/usr/share/empty': File exists
VSFTPD提供匿名FTP服务Ӟ需要“ftp”用户和一个有效的匿名目录?
[root@hpe45 root]# mkdir /var/ftp/
[root@hpe45 root]# useradd -d /var/ftp ftp
接下来的操作对于ftp用户是否已经存在都是有用的?
[root@hpe45 root]# chown root.root /var/ftp
[root@hpe45 root]# chmod og-w /var/ftp
以上准备工作完成后,我们可以开始编译源代码了。假定我们下载的vsftpd-1.2.0.tar.gz?root目录Q执行以下命令:(x)
[root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz
[root@hpe45 root]# cd vsftpd-1.2.0
[root@hpe45 vsftpd-1.2.0]# make
[root@hpe45 vsftpd-1.2.0]# make install
上面的“make install”命令将~译好的二进制文件、手册等复制到相应目录。在RHL9上,可能需要手动执行以下复Ӟ(x)
[root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd
[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf.5 /usr/local/share/man/man5
[root@hpe45 vsftpd-1.2.0]# cp vsftpd.8 /usr/local/share/man/man8
接下来,我们复制一个简单的配置文g作ؓ(f)基础供后面修攏V?
[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc
[root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
复制PAM验证文gQ以允许本地用户dVSFTPD?
[root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
二、创建guest用户
VSFTPD采用PAM方式验证虚拟用户。由于虚拟用L(fng)用户?口o(h)被单独保存,因此在验证时QVSFTPD需要用一个系l用L(fng)w䆾来读取数据库文g或数据库服务器以完成验证Q这是VSFTPD的guest用户。这正如同匿名用户也需要有一个系l用户ftp一栗当Ӟ我们也可以把guest用户看成是虚拟用户在pȝ中的代表。下面在pȝ中添加vsftpdguest用户Q作为VSFTPD的guest?
[root@hpe45 vsftpd-1.2.0]# useradd vsftpdguest
当虚拟用L(fng)录后Q所在的位置为vsftpdguest的自家目?home/vsftpdguest。如果要让虚拟用L(fng)录到/var/ftp{其他目录,修改vsftpdguest的自家目录即可?
三、设|VSFTPD配置文g
?etc/vsftpd.conf文g中,加入以下选项Q?
guest_enable=YES
guest_username=vsftpdguest
然后执行以下命o(h)Q让VSFTPD在后台运行:(x)
[root@hpe45 vsftpd-1.2.0]# /usr/local/sbin/vsftpd &
四、将虚拟用户保存在MySQL数据库服务器?
我们建立数据库vsftpdvuQ表usersQ字Dname和passwd用于保存虚拟用户的用户名和口?同时增加两个虚拟用户xiaotong和xiaowang?
[root@hpe45 vsftpd-1.2.0]# mysql -p
mysql>create database vsftpdvu;
mysql>use vsftpdvu;
mysql>create table users(name char(16) binary,passwd char(16) binary);
mysql>insert into users (name,passwd) values ('xiaotong',password('qqmywife'));
mysql>insert into users (name,passwd) values ('xiaowang',password('ttmywife'));
mysql>quit
然后Q授权vsftpdguest可以读vsftpdvu数据库的users表。执行以下命令:(x)
[root@hpe45 vsftpd-1.2.0]# mysql -u root mysql -p
mysql>grant select on vsftpdvu.users to vsftpdguest@localhost identified by 'i52serial0';
mysql>quit
如果要验证刚才的操作是否成功可以执行下面命o(h)Q?
[root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu
mysql>select * from users;
如果成功Q将?x)列出xiaotong、xiaowang和加密后的密?
五、设|MySQL的PAM验证
q里我们要用C个利用mysqlq行pam验证的开源项目(http://sourceforge.net/projects/pam-mysql/Q。首先从|站下蝲它的E序包pam_myql-0.5.tar.gzQ复制到/root目录中。在~译安装之前Q要保mysql-devel的RPM包已l安装在你的机器上,如果没有请从RHL安装光盘中安装该包。然后,执行以下命o(h)Q?
[root@hpe45 root]#tar xvzf pam_mysql-0.5.tar.gz
[root@hpe45 root]#cd pam_mysql
[root@hpe45 pam_mysql]#make
[root@hpe45 pam_mysql]#make install
make installq一步可能会(x)出现错误Q那只好手动该目录下生成的pam_mysql.o复制?lib/security目录下?
接下来,我们要设|vsftpd的PAM验证文g。打开/etc/pam.d/ftp文gQ加入以下内容:(x)
auth required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
上面涉及(qing)到的参数Q只要对应前面数据库的设|就可以明白它们的含义。这里需要说明的是crypt参数。crypt表示口o(h)字段中口令的加密方式Qcrypt=0Q口令以明文方式Q不加密Q保存在数据库中Qcrypt=1Q口令用UNIXpȝ的DES加密方式加密后保存在数据库中Qcrypt=2Q口令经qMySQL的password()函数加密后保存?
六、进一步的虚拟用户讄
l过以上的步骤,虚拟用户可以正怋用了。这里介l进一步的虚拟用户讄。首先,介绍虚拟用户的权限设|?
VSFTPD-1.2.0新添了virtual_use_local_privs参数Q当该参数激z(YESQ时Q虚拟用户用与本地用户相同的权限。当此参数关闭(NOQ时Q虚拟用户用与匿名用户相同的权限,q也是VSFTPD-1.2.0之前版本对虚拟用h限的处理Ҏ(gu)。这两者种做法相比Q后者更加严g些,特别是在有写讉K的情形下。默认情况下此参数是关闭的(NOQ?
当virtual_use_local_privs=YESӞ只需讄write_enable=YESQ虚拟用户就可以拥有写权限。而virtual_use_local_privs=NOӞ对虚拟用h限的讄更多一些更严格一些?
控制虚拟用户览目录Q如果让用户不能览目录Q但仍可以对文g操作Q那么需要执行以下二个步骤:(x)一Q配|文件中Qanon_world_readable_only=YES。二Q虚拟用L(fng)录的权限改ؓ(f)只能由vsftpdguest操作Q?
[root@hpe45 root]# chown vsftpdguest.vsftpdguest /home/vsftpdguest
[root@hpe45 root]# chmod 700 /home/vsftpdguest
允许虚拟用户上传文gQ?
write_enable=YES
anon_upload_enable=YES
允许虚拟用户修改文g名和删除文gQ?
anon_other_write_enable=YES
׃以上选项的设|同样会(x)对匿名用L(fng)效。如果不惛_名用戯机拥有同L(fng)权限Q最好是止匿名用户d?
其次Q由于虚拟用户在pȝ中是vsftpdguestw䆾Q所以可以访问到pȝ的其他目录。ؓ(f)了更加安全,我们可以虚拟用户限制在自家目录下。有两种做法Q一Q在配置文g中增加以下选项
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
然后Q在/etc/vsftpd.chroot_list文g中加入虚拟用户名xiaotong和xiaowang?
W二U做法,在配|文件中修改chroot_local_user=YES?
l过修改后,虚拟用户d后其根目录就限制?home/vsftpdguest下,无法讉K其他目录?
七、虚拟用L(fng)个h目录
大家可以发现Q无论是哪个虚拟用户Q登录后所在的目录都是/home/vsftpdguestQ即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户徏立自家目录。首先,在主配置文g中加入以下选项Q?
user_config_dir=/etc/vsftpd/vsftpd_user_conf
然后Q生?etc/vsftpd/vsftpd_user_conf目录Qƈ在该目录下徏立与特定虚拟用户同名的文Ӟ(x)
[root@hpe45 root]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@hpe45 root]# cd /etc/vsftpd/vsftpd_user_conf
[root@hpe45 vsftpd_user_conf]# touch xiaowang
以上的操作ؓ(f)虚拟用户xiaowang建立了个人配|文?etc/vsftpd/vsftpd_user_conf/xiaowang。接下来Q在xiaowang的个人配|文件中xiaowang的自家目录修改ؓ(f)/home/xiaowangQ配|选项为:(x)
local_root=/home/xiaowang
然后Q新建xiaowang目录Qƈ权限设为vsftpdguestQ?
[root@hpe45 vsftpd_user_conf]# mkdir /home/xiaowang
[root@hpe45 vsftpd_user_conf]# chown vsftpdguest.vsftpdguest ./xiaowang
[root@hpe45 vsftpd_user_conf]# chmod 600 /home/xiaowang
l过以上讄QxiaowangdVSFTPD后,用“pwd”指令就可以发现被自p定位到自q?home/xiaowang”目录?
从文件系l层ơ来看,׃?home/xiaowang”目录的权限是属于vsftpdguest的,所以其他的虚拟用户同样也可以访问xiaowang的自家目录。解册个问题也很简单,我们只需要让VSFTPD负责虚拟用户限制在其自家目录,可以避免虚拟用L(fng)互相讉K。具体做法参照前面第六步中所qͼq里不再赘述。经q以上设|后Q虚拟用户就可以拥有属于自己的目录了?
]]>
1.shutdown
shutdown命o(h)安全地将pȝx?有些用户?x)用直接断掉?sh)源的方式来关闭linuxQ这是十分危险的。因为linux与windows不同Q其后台q行着许多q程Q所以强制关机可能会(x)Dq程的数据丢失﹐使系l处于不E_的状态﹐甚至在有的系l中?x)损坏硬件设备。?/p>
而在pȝx前用shutdown命o(h)H系l管理员?x)通知所有登录的用户pȝ要关闭。ƈ且login指o(h)?x)被ȝH即新的用户不能再登录。直接关机或者gq一定的旉才关机都是可能的H还可能重启。这是由所有进E〔process〕都?x)收到系l所送达的信受signal〕决定的。这让像vi之类的程序有旉储存目前正在~辑的文档﹐而像处理邮g〔mail〕和新闻〔news〕的E序则可以正常地d{等?
shutdown执行它的工作是送信受signal〕给initE序H要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激zRreboot〕系l﹐而runlevel 1则是被用来让pȝq入理工作可以q行的状态﹔q是预设的﹐假定没有-h也没?r参数lshutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过E中做了哪些动作H你可以在这个文?etc/inittab里看到这些runlevels相关的资料?
shutdown 参数说明:
[-t] 在改变到其它runlevel之前H告诉init多久以后x?
[-r] 重启计算器?
[-k] q不真正xH只是送警告信L(fng)每位d者〔login〕?
[-h] x后关闭电(sh)源〔halt〕?
[-n] 不用initH而是自己来关机。不鼓励使用q个选项H而且该选项所产生的后果往往不L你所预期得到的?
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有旉参数H但是可以输入一个用来解释的讯息H而这信息会(x)送到每位使用者?
[-f] 在重启计器〔reboot〕时忽略fsck。?
[-F] 在重启计器〔reboot〕时fsck?
[-time] 讑֮x〔shutdown〕前的时间?
2.halt----最单的x命o(h)
其实halt是调用shutdown -h。halt执行Ӟ杀d用进E﹐执行syncpȝ调用H文件系l写操作完成后就?x)停止内核?
参数说明:
[-n] 防止syncpȝ调用H它用在用fsck修补根分Z后﹐以阻止内核用老版本的块〔superblock〕覆盖修补过的超U块?
[-w] q不是真正的重启或关机﹐只是写wtmp?var/log/wtmp〕纪录?br /> [-d] 不写wtmpU录〔已包含在选项[-n]中〕?
[-f] 没有调用shutdown而强制关机或重启?
[-i] x〔或重启〕前H关掉所有的|络接口?
[-p] 该选项为缺省选项。就是关机时调用poweroff?
3.reboot
reboot的工作过E差不多跟halt一P不过它是引发L重启H而halt是关机。它的参Chalt相差不多?
4.init
init是所有进E的先H它的进E号始终?H所以发送TERM信号linit?x)终止所有的用户q程H守护进E等。shutdown 是使用q种机制。init定义?个运行?runlevel)Q?init 0为关机﹐init 1为重启。关于init可以长篇大论H这里就不再叙述。另外还?telinit命o(h)可以改变init的运行别﹐比如Htelinit -iS可ɾpȝq入单用h式﹐q且得不C用shutdown时的信息和等待时间?/p>
rar请到Q?a >http://www.rarsoft.com/download.htm 下蝲Q?br />解压后请rar_static拯?usr/bin目录Q其他由$PATH环境变量指定的目录也可以Q:(x)
[root@www2 tmp]# cp rar_static /usr/bin/rar
---------------------------------------------
.lha
解压Qlha -e FileName.lha
压羃Qlha -a FileName.lha FileName
lha请到Q?a >http://www.infor.kanazawa-it.ac.jp/.../lhaunix/下蝲Q?br />>解压后请lha拯?usr/bin目录Q其他由$PATH环境变量指定的目录也可以Q:(x)
[root@www2 tmp]# cp lha /usr/bin/
---------------------------------------------
.rpm
解包Qrpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh
.lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压QsEx x FileName.*
压羃QsEx a FileName.* FileName
sEx只是调用相关E序Q本wƈ无压~、解压功能,h意!
sEx请到Q?http://sourceforge.net/projects/sex下蝲Q?br />解压后请sEx拯?usr/bin目录Q其他由$PATH环境变量指定的目录也可以Q:(x)
[root@www2 tmp]# cp sEx /usr/bin/
参考文献:(x)Linux 文g压羃工具指南
Q其实看帮助是最好的Ҏ(gu)Q一般各个命令都可以用?-help”参数得到常用用方法!Q?br />发布??x)游泳的?来自:LinuxByte