﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-红叶的技术日志-随笔分类-Linux</title><link>http://www.cnitblog.com/applezk/category/2919.html</link><description>希望每天能努力多一点</description><language>zh-cn</language><lastBuildDate>Sat, 23 Jun 2012 15:48:01 GMT</lastBuildDate><pubDate>Sat, 23 Jun 2012 15:48:01 GMT</pubDate><ttl>60</ttl><item><title>Linux RHEL 培训笔记</title><link>http://www.cnitblog.com/applezk/archive/2012/06/21/81609.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Thu, 21 Jun 2012 08:02:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2012/06/21/81609.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/81609.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2012/06/21/81609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/81609.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/81609.html</trackback:ping><description><![CDATA[RHEL6<br />吕 lvbenfu@gmail.com<br />-<br />192.168.3.xx<br />ping 192.168.3.118<br />资源地址：\\192.168.3.118\rhel6<br />user:1&nbsp; pass:1<br />笔记地址：http://192.168.3.118/rhel6.txt<br />-<br />abc-123<br />-<br />cd /etc/yum.repos.d<br />vi test.repo<br />[dvd]<br />name=dvd<br />baseurl=file://&nbsp; <br />gpgcheck=0<br />enabled=1<br /><br />yum -y install system-config-kickstart<br /><br />cp ks.cfg /var/www/html<br />cp -R /media/...../*&nbsp; /var/www/html<br /><br />service httpd start 启动Apache服务<br /><br />ifconfig eth1 192.168.71.62<br /><br />http://192.168.71.61/ks.cfg<br /><br />Tab<br />ks=http://192.168.71.61/ks.cfg<br /><br />cd /var/www/html<br />vim ks1.cfg<br />将包选择拷贝到原来的ks.cfg里面<br /><br />startx<br /><br />windows&nbsp; --&nbsp;&nbsp; linux<br />putty <br /><br />yum -y install tigervnc-server<br /><br />vncserver :88<br /><br />vncpasswd<br /><br />vncserver -kill :88<br /><br />192.168.3.254&nbsp;&nbsp; 202.96.209.5<br /><br />rm -rf p*<br /><br />caching-nameserver<br /><br />service httpd start<br />防火墙开HTTP（80）<br /><br />id&nbsp; whoami&nbsp; who&nbsp; w<br />pwd<br />tty<br />hostname<br />ifconfig<br /><br />文件操作命令：<br />cd -<br />家目录<br />普通用户的家目录：/home/username<br />root的家目录：/root<br />回家目录的方法：cd&nbsp;&nbsp;&nbsp;&nbsp; cd&nbsp; ~<br />cp<br />mv 移动或改名<br />mkdir -p<br />rm<br />rmdir<br /><br />超级用户 UID=0<br />伪用户&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 - 499&nbsp; (/sbin/nologin)<br />普通用户&nbsp;&nbsp;&nbsp;&nbsp; 500 - 60000<br />cat /etc/passwd<br /><br />man<br /><br />例1：给user01对文件file1<br />u:rwx&nbsp; g:rx&nbsp; o:r<br />chmod 754 file1<br />chown user01 file1<br /><br />chmod u=rwx,g=rx,o=r file1<br />umask<br /><br />pwunconv<br /><br />pwconv<br /><br />passwd<br /><br />===========day2============<br />service service-name start|stop|restart|status|reload<br /><br />独立服务：httpd,named,vsftpd,xinetd<br />托管服务:time,tftp<br /><br />vim /etc/sysconfig/network-scripts/ifcfg-...<br /><br />练习：<br />1.查询/etc目录下以host开头的文件<br />find /etc -name "host*"<br /><br />2.查询当前目录下以2个小写字母和2个数字开头的txt文件<br />find . -name "[a-z][a-z][0-9][0-9]*.txt"<br /><br />3.find . -perm 755 <br /><br />4.find . -type d<br /><br />find . ! -type d<br /><br />find . -size +1000000c<br /><br />find /etc -mtime -9<br /><br />正则表达式：<br />* 前一个字符出现0到多次<br />. 任意单个字符<br />【abc】<br />【^abc】<br />^&nbsp; 行首&nbsp;&nbsp;&nbsp; ^Test<br />$&nbsp; 行尾&nbsp;&nbsp;&nbsp;&nbsp; Test$<br />.*&nbsp; <br />\&nbsp; <br />1.[aiou]t<br />2.b[01][oa]t<br />3.grep --color 'root' /etc/passwd<br />4.grep ':/bin/bash$' /etc/passwd<br />5.grep ':/sbin/nologin$' /etc/passwd<br /><br />sort<br /><br />grep 'bash' /etc/passwd | cut -d: -f1 | sort<br /><br />uniq<br /><br />cut -d: -f7 /etc/passwd | sort | uniq<br />cut -d: -f7 /etc/passwd | sort | uniq -u<br />cut -d: -f7 /etc/passwd | sort | uniq -c<br />cut -d: -f7 /etc/passwd | sort | uni&nbsp;&nbsp;&nbsp; q -d<br /><br />*.tar.gz<br /><br />tar -xzvf *.tar.gz<br /><br />tar -czvf /etc<br /><br />dG&nbsp; <br />:q!<br /><br /><br />Ctrl+W&nbsp; w<br /><br />mkdir /script<br /><br />find / -perm -4000 -o -perm -2000 &gt; /scripts/setuid.normal<br /><br />vim test.sh<br />#!/bin/sh<br />/usr/bin/find / -perm -4000 -o -perm -2000 &gt; /tmp/setuid.check<br /><br />for file in `/bin/cat /tmp/setuid.check`;do<br /><br />/bin/grep $file /script/setuid.normal &gt; /dev/null<br /><br />if [ "$?" != "0" ]; then<br /><br />echo "$file isnt in list!danger!!!"<br /><br />if<br /><br />done<br />/bin/rm /tmp/setuid.check<br /><br />logwatch<br /><br />grub<br />device (hd0) /dev/sda<br />root (hd0,0)<br />setup (hd0)<br />quit<br /><br />df -h<br />umount /dev/sda1<br />fsck /dev/sda1<br />mount /dev/sda1<br /><br />mount -o remount /<br />vi /etc/fstab<br />reboot<br /><br />passwd<br /><br />echo redhat2 | passwd --stdin root<br /><br />vi /boot/grub/grub.conf<br />password --md5&nbsp; password<br /><br />init<br /><br />/etc/init.d<br />/etc/xinetd.d<br /><br />yum -y install telnet-server<br />cd /etc/xinetd.d<br />ls<br />vim telnet<br />disable=yes --&gt;&nbsp; disable=no<br />service xinetd restart<br /><br />ssh-keygen<br />ssh-copy-id root@192.168.71.61<br /><br />ssh root@192.168.71.61<br /><br />ssh -L 本地端口：远程主机名：远程端口 sshhost<br /><br />ssh -L 2025:localhost:25 192.168.71.61<br /><br />3天后的下午4点执行任务：<br />at 4pm +3 days<br /><br />在7月31日上午10点<br />at 10am Jul 31<br /><br />明天下午1点<br />at 1pm tomorrow<br /><br />cron示例：<br />05 * * * *<br />05 02 * * * <br />30 08 01 * *<br />00 07 25 12 *&nbsp; <br />30 16 * * 5<br />*/5 * * * *<br />*/10 9-16 1,15 * *<br /><br />dhclient -1&nbsp; ==&nbsp; ipconfig /renew<br /><br />设置IP地址：<br />ifconfig eth0 192.168.3.200<br />设置网关：<br />ip route add default via 192.168.3.254 dev eth0<br />设置DNS：<br />echo "nameserver=202.96.209.5" &gt; /etc/resolv.conf<br /><br />vi /etc/sysctl.conf<br />net.ipv4.icmp_echo_ignore_all = 1<br />sysctl -p<br /><br />sudo写法：<br />%group1 ALL=(ALL) NOPASSWORD: ALL <br /><br />定义别名组的方法：<br />User_Alias grp2=user1,user2,user3<br /><br />grp2 ALL=(ALL) ALL<br /><br />定义命令组的方法：<br />Cmnd_Alias cmdgrp1=useradd,userdel,usermod<br /><br />zhang3 ALL=cmdgrp1<br /><br />ifup&nbsp; ifdown<br /><br />visudo<br /><br />student ALL= NOPASSWD: /sbin/ifup,/sbin/ifdown<br /><br />yum -y install scsi-target-utils<br /><br />service tgtd start<br />chkconfig tgtd on<br /><br />iscsi-initiator-utils<br /><br />iscsiadm -m discovery -t st -p 192.168.71.61<br /><br />iscsiadm -m node -T iqn-2012-06.... -p 192.168.71.61 -o delete<br /><br />配额：<br />1.inode:限制用户可以建立的文件数量<br />2.block：限制用户磁盘的容量，以Kb为单位<br />3.soft：软限制<br />4.hard:硬限制<br />5.grace time:宽限时间<br /><br />写一个备份脚本：<br />#!/bin/sh<br />tar -c $DIR | gzip -9 &gt; $BACKUP<br /><br /><br />DNS的配置实验：<br />1.基本解析的实现<br />yum -y install bind<br /><br />vim /etc/named.conf<br />listen-on port 53 {127.0.0.1;192.168.71.61; };<br />allow-query { any; };<br /><br />vim /etc/named.rfc1912.zones<br />zone "abc.com" IN {<br />type master;<br />file "abc";<br />};<br /><br />cd /var/named<br />cp&nbsp; -p named.localhost abc<br />vim abc<br />@ IN SOA @ ns1.abc.com. (...<br /><br />@ IN NS ns1.abc.com.<br />ns1 IN A 192.168.71.61<br />www IN A 192.168.71.61<br /><br />service named restart<br /><br />vi /etc/resolv.conf<br />nameserver 192.168.71.61<br /><br />nslookup<br />www.abc.com<br /><br />2.轮巡的实现<br />vim /var/named/abc<br />www IN A 1.1.1.1<br />www IN A 2.2.2.2<br />www IN A 3.3.3.3<br /><br />3.泛解析<br />sh.abc.com&nbsp; 5.5.5.5<br />gz.abc.com&nbsp; 6.6.6.6<br />bj.abc.com&nbsp; 7.7.7.7<br />*.abc.com&nbsp;&nbsp; 5.5.5.5<br /><br />4.其它记录的实现<br />MX,反向<br /><br />5.辅助域的实现<br /><br />6.转发器<br />forwarders { 202.96.209.5; };<br /><br />==========day4===========<br /><br />vi /etc/httpd/conf/httpd.conf<br />&lt;VirtualHost 192.168.71.61&gt;<br /><br />&lt;VirtualHost 192.168.71.61&gt;<br />ServerName www.baidu.com<br />DocumentRoot /var/www/baidu<br />&lt;/VirtualHost&gt;<br /><br />&lt;VirtualHost 192.168.71.61&gt;<br />ServerName www.sina.com<br />DocumentRoot /var/www/sina<br />&lt;/VirtualHost&gt;<br /><br />配置对CGI的支持：<br />vi /etc/httpd/conf/httpd.conf<br />331&nbsp;&nbsp; ExecCGI<br />796&nbsp;&nbsp; AddHandler cgi-script .cgi<br /><br />service httpd restart<br /><br /><br />配置对PHP的支持：<br />yum -y install "php*"<br />service httpd restart<br /><br />NFS共享与客户端的配置：<br />1.服务器的配置<br />（1）建立用于共享的测试文件夹和文件<br />mkdir -p /exports/read /exports/write<br />touch /exports/read/r1.txt<br />touch /exports/write/w1.txt<br />（2）设置本地权限<br />cd /exports<br />ll<br />getfacl write<br />setfacl -R -m o::rwx write<br />ll<br />getfacl write<br />（3）设置export输出及共享权限<br />vim /etc/exports<br />/exports/read 192.168.71.0/24(ro,sync)<br />/exports/write 192.168.71.0/24(rw,sync) 127.0.0.1(rw,sync)<br /><br />service nfs start<br />chkconfig nfs on<br />（4）防火墙开NFS4的相应的端口<br />2.客户端的配置<br />mount -t nfs 192.168.71.61:/ /mnt<br /><br />Samba的配置：<br />yum -y install samba<br /><br />service smb start<br /><br />useradd u1<br />passwd u1<br />smbpasswd -a u1<br /><br />Drop-box<br /><br />dropbox&nbsp; root&nbsp; ftp<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rwx&nbsp;&nbsp; -wx&nbsp; ---&nbsp; <br /><br />Postfix邮件服务器的配置：<br />1.配置DNS（Windows2003下做）<br />2.配置Postfix<br />yum -y install postfix mutt<br /><br />inet_interfaces = all<br /><br />myhostname = mail.lin.com<br />myorigin = lin.com<br />mydomain =lin.com<br /><br />service postfix restart<br /><br />rndc -dumpdb<br />/var/named/named_dump.db<br /><br />3.配置Windows下的邮件服务器<br />4.测试邮件收发<br /><br />第8章 通过GNUPG保护文件安全<br />OpenPGP<br />生成密钥&nbsp; gpg --gen-key<br />列出公钥&nbsp; gpg --list-keys<br /><br />第9章 SELinux<br />三种模式：强制模式，许可模式，禁用模式<br />cat /etc/sysconfig/selinux<br /><img src ="http://www.cnitblog.com/applezk/aggbug/81609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2012-06-21 16:02 <a href="http://www.cnitblog.com/applezk/archive/2012/06/21/81609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RHEL Linux DHCP方法</title><link>http://www.cnitblog.com/applezk/archive/2012/06/21/81602.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Thu, 21 Jun 2012 02:55:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2012/06/21/81602.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/81602.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2012/06/21/81602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/81602.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/81602.html</trackback:ping><description><![CDATA[cd /etc/yum.repos.d<br /><br />vim test.repo<br />[dvd]<br />name=dvd<br />baseurl=file:///media/RHEL_6.0\&nbsp; i386\ Disc\ 1/<br />gpgcheck=0<br />enabled=1<br /><br /><br />yun -y install dhcp<br /><br />vim /etc/dhcp/dhcpd.conf :<br />清空内容，小写d大写G<br />增加 subnet 192.168.71.0 netmask 255.255.255.0 {<br />range 192.168.71.100 192.168.71.200;<br />}<br />:wq 退出<br /><br /><br />service dhcpd restart就可以。<br /><br />注意防火墙需打开其端口.<br /><br /><br /><img src ="http://www.cnitblog.com/applezk/aggbug/81602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2012-06-21 10:55 <a href="http://www.cnitblog.com/applezk/archive/2012/06/21/81602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>查看Linux某用户属于哪个组</title><link>http://www.cnitblog.com/applezk/archive/2009/03/10/55237.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Tue, 10 Mar 2009 03:01:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2009/03/10/55237.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/55237.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2009/03/10/55237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/55237.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/55237.html</trackback:ping><description><![CDATA[<p>id&nbsp; user<br><br>groups user</p>
<img src ="http://www.cnitblog.com/applezk/aggbug/55237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2009-03-10 11:01 <a href="http://www.cnitblog.com/applezk/archive/2009/03/10/55237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>crontab的用法---linux定时任务</title><link>http://www.cnitblog.com/applezk/archive/2007/10/18/35057.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Thu, 18 Oct 2007 14:46:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2007/10/18/35057.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/35057.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2007/10/18/35057.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/35057.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/35057.html</trackback:ping><description><![CDATA[Step 1: <br>&nbsp; &nbsp; 使用命令crontab -e编辑一个定时执行的任务或在/var/spool/cron/crontabs目录下新建一个与自己用户名相同的任务.<br>&nbsp; &nbsp; 即:<br>&nbsp; &nbsp; #每隔一分钟执行一次后台程序tmpmail<br>&nbsp; &nbsp; * * * * * /home/milch/tmpmail<br><br>&nbsp; &nbsp;&nbsp;&nbsp;顺便提一下crontab中的命令格式:<br>&nbsp; &nbsp;&nbsp;&nbsp;第一个 * 表示分钟 (0-59),<br>&nbsp; &nbsp;&nbsp;&nbsp;第二个 * 表示小时 (0-23),<br>&nbsp; &nbsp;&nbsp;&nbsp;第三个 * 表示月份中的某一天 (1-31),<br>&nbsp; &nbsp;&nbsp;&nbsp;第四个 * 表示一年中的某一月 (1-12),<br>&nbsp; &nbsp;&nbsp;&nbsp;第五个 * 表示一周中的星期几 (0-6 with 0=Sunday).<br><br>Step 2: <br>&nbsp; &nbsp;&nbsp;&nbsp;停止cron进程,并重启,<br>&nbsp; &nbsp;&nbsp;&nbsp;命令:/etc/init.d/cron stop<br>&nbsp; &nbsp;&nbsp;&nbsp;/etc/init.d/cron start<br><br>-------------------------------------------------------------------------<br>指令語法<br>crontab [ -u user ] file <br>crontab [ -u user ] { -l | -r | -e }<br><br>指令說明<br>crontab 提供我們在固定的間隔時間執行自訂的程式、系統指令或 shell secrip。時間間隔的單位可以是分鐘、小時、日、週、月及以上的任意組合。允許使用者離線執行，並且可以將執行結果以 email 通知使用者。因此，非常設合對週期性的管理分析或資料備份等工作。<br><br>基本上，crontab 的指令格式分為六個部分，前五個為時間間隔，最後則是執行的指令。每一個部分用空格來區隔。<br><br>分 -- 0-59 <br>時 -- 0-23 <br>日 -- 1-31 <br>月 -- 1-12 或使用英文名稱 <br>星期 -- 0-7 或使用英文名稱 <br>工作命令 -- 指令，shell script，程式....(建議使用絕對路徑) <br>以上是 crontab 的基本格式。<br><br>選項說明<br><br>-u user <br>以指定的使用者身份，執行 crontab 工作。此選項僅供 root 使用。<br><br>-l <br>顯示使用者現行的 crontab 檔。 <br><br>-r <br>移除現行的 crontab 檔。 <br><br>-e <br>進入 vi 編輯 crontab 檔(如有設定 VISUAL 或 EDITOR 環境變數，怎使用該環境變數所設定的編輯器來編輯)。在使用者退出編輯器後，會自動將所編輯 crontab 檔，置入 crontab 執行。 <br>相關檔案<br><br>/etc/cron.allow<br>/etc/cron.deny <br><br>實例說明<br># crontab -l<br># DO NOT EDIT THIS FILE - edit the master and reinstall.<br># (/tmp/crontab.3672 installed on Thu Jan 1 15:55:18 2004)<br># (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)<br>0 0-23/6 * * * /usr/bin/webalizer<br>30 3 * * * /root/fbin/bak-web<br># <br><br>先前曾提到，crontab 的格式分成六個部分，前五個是時間參數。在上例中你會發現除了數字與英文名稱，有使用到符號"*"，這個符號代表每一單位的意思，譬如 30 3 * * * 既代表 30分 3點 每日 每月 星期的每天。<br><br>時間的指定，可以是單一的數字，或幾個數字用逗號來連接。看下例<br><br>30 3,12 * * * /root/fbin/bak-web <br>其中的第二項為 3,12，這代表 3 以及 12 小時的意思。再來看下例<br><br>30 */6 * * * /root/fbin/bak-web <br>我把第二項改成 */6 這代表每 6 小時，也相當於 6,12,18,24 的作用。此外還有一個區段的做法<br><br>30 8-18/2 * * * /root/fbin/bak-web <br>我把第二項改成 8-18/2 這代表在 8 小時到 18 小時之間每 2 小時，也相當於 8,10,12,14,16,18 的作用。
<img src ="http://www.cnitblog.com/applezk/aggbug/35057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2007-10-18 22:46 <a href="http://www.cnitblog.com/applezk/archive/2007/10/18/35057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iptables实战记录</title><link>http://www.cnitblog.com/applezk/archive/2006/09/01/16257.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Fri, 01 Sep 2006 04:44:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/09/01/16257.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/16257.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/09/01/16257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/16257.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/16257.html</trackback:ping><description><![CDATA[
		<div class="postTitle">
				<a name="0">
				</a>
				<a href="http://blog.csdn.net/lidaibin/archive/2004/09/27/118111.aspx">
						<img height="13" src="http://blog.csdn.net/images/authorship.gif" width="15" border="0" /> <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b>实战记录</a>
		</div>
		<div class="postText">
				<p>netfilter/<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b>这个玩意儿似乎很复杂一直没太搞懂它的原理，所以从给公司配置服务器开始就从未使用过它，让同事们共享上网时才用了一下它的伪装，当时也只是从网上看到了那行<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b> -t nat -A POSTROUTING -o ppp0 -j MASQUERADE，仍然不知道它究竟都干了些什么。最近觉得QQ这个东西的确有些影响同事们工作，所以下决心摸索一下<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b>，看看能不能提供一下生产力。</p>
				<p>
						<strong>我的网络情况</strong>：linux服务器既是上网的拨号服务器，同时也是公司的web server、mail server、ftp server等，域名动态解析，同时它与公司其它windows客户端构成了一个局域网，内网IP为192.168.0.1（eth1接口），外网网卡（eth0接口），拨号接口为ppp0，网内其它计算机的IP也都是192.168.0网段。192.168.0.2到192.168.0.16为公司工作人员（公司比较小，只有10来个人），192.168.0.240到192.168.0.243这几个IP是我和其它两个同事在用，需要实现的目标是外网只能访问服务器的www、mail、ftp、tomcat这几个服务、内网192.168.0.2到192.168.0.16这个IP段的同事们上班时间只能上外网的www、mail、ftp、tomcat并禁止使用QQ、192.168.0.240到192.168.0.243这个IP段的同事们可以无限制上网。下面是我的脚本内容。</p>
				<p>work_firewall.sh:<br /># Display start message<br />echo "Starting <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b> rules..."<br /># 设置变量<br />IPT=/sbin/<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b><br />INTERNET_SERVER=192.168.0.1<br />IP_ME="127.0.0.1"<br />IP_SPEC_RANGE="192.168.0.240/30"<br />IP_WORK_RANGE="192.168.0.2/28"<br />IP_ALL="192.168.0.0/24"<br /># 清除所有规则<br />$IPT -F<br />$IPT -t nat -F<br /># 重置所有链默认设置<br />$IPT -P INPUT DROP<br />$IPT -P OUTPUT ACCEPT<br />$IPT -P FORWARD ACCEPT<br />$IPT -t nat -P PREROUTING ACCEPT<br />$IPT -t nat -P POSTROUTING ACCEPT<br /># 1. 限制internet对web服务器的访问<br /># (1) 允许自己无限制访问自己<br />$IPT -A INPUT -s $IP_ME -j ACCEPT<br /># (2) 允许访问www服务<br />$IPT -A INPUT -p tcp --dport 80 -j ACCEPT<br /># (3) 允许访问ftp服务<br />$IPT -A INPUT -p tcp --dport 20 -j ACCEPT<br />$IPT -A INPUT -p tcp --dport 21 -j ACCEPT<br /># (4) 允许访问mail服务<br />$IPT -A INPUT -p tcp --dport 110 -j ACCEPT<br />$IPT -A INPUT -p tcp --dport 143 -j ACCEPT<br />$IPT -A INPUT -p tcp --dport 25 -j ACCEPT<br /># (5) 允许访问tomcat服务<br />$IPT -A INPUT -p tcp --dport 8080 -j ACCEPT<br /># 2. 允许工作人员通过局域网访问服务器<br />$IPT -A INPUT -s $IP_SPEC_RANGE -j ACCEPT<br />$IPT -A INPUT -s $IP_WORK_RANGE -j ACCEPT<br /># 3. 允许特殊IP无限制上网<br />$IPT -t nat -A PREROUTING -s $IP_SPEC_RANGE -j ACCEPT<br /># 4. 对工作范围内IP限制部分上网功能<br /># (1) 允许访问DNS和ECHO<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 53 -j ACCEPT<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 42 -j ACCEPT<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 7 -j ACCEPT<br /># (2) 禁止QQ的TCP登录<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 219.133.38.5 -p tcp -j DROP<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.165 -p tcp -j DROP<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.17.209.23 -p tcp -j DROP<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.153 -p tcp -j DROP<br /># (3) 禁止MSN登录<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 207.46.104.20 -j DROP<br /># (4) 允许访问www<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 80 -j ACCEPT<br /># (5) 允许访问ftp<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 20 -j ACCEPT<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 21 -j ACCEPT<br /># (6) 允许访问mail<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 110 -j ACCEPT<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 143 -j ACCEPT<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 25 -j ACCEPT<br /># (7) 允许访问tomcat<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 8080 -j ACCEPT<br /># (8) 禁止访问其它服务<br />$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d ! $IP_ALL -j DROP<br /># 5. 共享上网<br />$IPT -t nat -A POSTROUTING -o ppp+ -j MASQUERADE<br /># 显示结束信息<br />echo "Completed <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b> rules."</p>
				<p>
				</p>网上讲解<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b>命令如何使用的文章已经数不胜数了，但真正要理解它的工作原理还是不太容易，也许是自己太笨周六那天竟然午饭都没吃苦苦思索了整整一天才慢慢有所领悟。netfilter/<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">iptables</b>共有三组规则表：filter、nat和mangle。filter表用于一般的信息包过滤，如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则；nat表用于转发的信息包过滤，如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则；mangle表用于高级路由，我此次没有用到，因此也没有深究，有空了再看看^_^。filter表包括INPUT链、OUTPUT链和FORWARD链；nat表包括PREROUTING链、POSTROUTING链和OUTPUT链；mangle表包括PREROUTING链和OUTPUT链。filter表为默认规则表。<br /><table style="WIDTH: 367px; HEIGHT: 100px" height="100" cellspacing="0" cellpadding="0" width="367" border="1"><tbody><tr><td nowrap=""><p align="center"><strong>表名</strong></p></td><td nowrap="" width="100%"><p align="center"><strong>功能</strong></p></td></tr><tr><td nowrap="">filter</td><td>用于一般的信息包过滤，包括INPUT链、OUTPUT链和FORWARD链，如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则</td></tr><tr><td nowrap="">nat</td><td>用于转发的信息包过滤，包括PREROUTING链、POSTROUTING链和OUTPUT链，如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则</td></tr><tr><td nowrap="">mangle</td><td>用于高级路由，包括PREROUTING链和OUTPUT链</td></tr></tbody></table><p>上面的脚本先清除了所有链的所有规则并重置了默认设置，其中INPUT链默认不接受外来访问服务器的任何数据包，接着第1步开放了服务器的80、20、21、110、143、25和8080端口，第2步允许局域网内的192.168.0.2到192.168.0.16及192.168.0.240到192.168.0.243的客户端访问服务器，第3步允许192.168.0.240及192.168.0.243无限制访问外网，第4步允许192.168.0.2到192.168.0.16访问外网的80、20、21、110、143、25、8080及DNS和echo，第5步局域网内客户端共享上网。</p></div>
<img src ="http://www.cnitblog.com/applezk/aggbug/16257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-09-01 12:44 <a href="http://www.cnitblog.com/applezk/archive/2006/09/01/16257.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux网络配置</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15252.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:47:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15252.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15252.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15252.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15252.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15252.html</trackback:ping><description><![CDATA[
		<p>路径: etc/sysconfig/network-scripts/    编辑: vi ifcfg-eth0</p>
		<p>按 a 开始编辑  Esc shift+:  输入 wq! 存盘退出</p>
		<p>重新启动网卡 路径: /etc/init.d     命令: ./network restart</p>
		<p> </p>
		<p>ifcfg-eth0文件内容示例:</p>
		<p>DEVICE=eth0</p>
		<p>ONBOOT=YES</p>
		<p>BOOTPROTO=static</p>
		<p>IPADD=</p>
		<p>NETMAST=</p>
		<p>GATEWAY=</p>
<img src ="http://www.cnitblog.com/applezk/aggbug/15252.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:47 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15252.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 学习基础 </title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15251.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:41:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15251.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15251.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15251.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15251.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15251.html</trackback:ping><description><![CDATA[
		<p>
				<span class="postbody">1、什么是Linux？ <br /><br />　　准确的说，是指Linux的kernel(系统的核心程序)，其内核版权属于Linus Torvalds，在GPL(GNU General Public License)版权协议下发行, 任何人都可以自由的复制(copy), 修改(change), 套装分发(distribute),销售，但是不可以在分发时加入任何限制, 而且所有原码必须是公开的，所以任何人都可以无偿取得所有执行文件和原代码。 <br /><br />　　对于Linux用户和系统管理员来说，Linux是指包含Linux kernel、utilities (系统工具程序)以及application (应用软件)的一个完整的操作系统。Linux的应用软件是由自由软件基金会(FSF)开发的，全世界许多热心的程序员为Linux开发或移植了很多应用程序,包括X-Windows、Emacs、TCP/IP网络(包括SLIP/PPP/ISDN)等等，现在Linux(包括内核和大量的应用程序)光是执行程序就已经达到200M，完全安装后的规模将更大(大约500M左右)。 <br /><br />　　从本质上讲，Linux是Unix的”克隆”或Unix风格的操作系统，在原代码级上兼容绝大部分的Unix标准(如IEEE POSIX，System V，BSD)，它遵从 POSIX规范，例如对于System V来说,把其上程序源代码拿到 Linux下重新编译后就可以运行，而对于BSD Unix来说，它的可执行文件可以直接在Linux环境下运行。 <br /><br />　　Linux的标志是可爱的企鹅，至于为什么选用企鹅，Linus是这样说的：别的都被他人用了，企鹅，不是也非常可爱吗?!由Linux作者发布的仅仅是一个内核而己，有一些公司或组织把内核、原代码及相关的应用程序组织在一起发行, 于是就产生了不同的Linux发行(distributor)版本, 比较著名的发行版本有RedHat、SlackWare 、S.u.S.e、Debian 等。 <br /><br />　2、Linux的发展历史？ <br /><br />　　Linux的历史可以追溯到1990年，Linus Torvalds还是芬兰赫尔辛基大学的一名学生，最初用汇编语言写了一个在80386保护模式下处理多任务切换的程序，后来从Minix(用于操作系统教学、很小的Unix)中得到灵感，发誓要写一个比Minix更好的Minix，于是开始写了一些硬件的设备驱动程序、一个小的文件系统......，这样0.0.1版本的Linux就出来了，但是它必须在有Minix的机器上编译以后才能玩，这时候的Linus已经完全“走火入魔”了，决定踢开Minix“闹革命”，于是在1991年10月5号发布了Linux 0.0.2版本，这个版本已经可以运行bash(一种用户与操作系统内核通讯的软件)和gcc(GNU C编译器)了。 <br /><br />　　Linus从一开始，就决定自由扩散Linux、包括源代码，他把源代码发布在网上，随即就引起爱好者的注意，他们通过互连网也加入了Linux的内核开发工作，一大批高水平程序员的加入，使得Linux达到迅猛发展，到1993年底，Linux 1.0终于诞生。Linux 1.0已经是一个功能完备的操作系统了，其内核写得紧凑高效，可以充分发挥硬件的性能，在4M内存的80386机器上也表现得非常好。 <br /><br />　　很多人对Linux的认识有个误区，即总把Linux与低档硬件平台联系到一起，其实从2.1.xx系列内核开始，Linux就开始走高端的路子了，大约在1.3版本之后，开始向其他硬件平台上移植，包括号称最快的CPU---Digital Alpha(目前主频是最高的)，目前Linux能将硬件的性能充分发挥出来，可以囊括低端到高端的所有应用。 <br /><br />　　Linux加入GNU并遵循公共版权许可证(GPL)，由于不排斥商家对自由软件进一步开发，不排斥在Linux上开发商业软件，故而使Linux又开始了一次飞跃，出现了很多的Linux发行版，如Slackware、Redhat、Suse、TurboLinux、OpenLinux等十多种，而且还在增加，还有一些公司在Linux上开发商业软件或把其他Unix平台的软件移植到Linux上来，如今很多IT界的大腕如IBM、Intel、Oracle、Infomix、Sysbase、Corel、Netscape、CA、Novell等都宣布支持Linux! 商家的加盟弥补了纯自由软件的不足和发展障碍，Linux得以迅速普及。 <br /><br /><br />1、如何快速掌握Linux？ <br /><br />　　方法是多动手、动脑，学习时要经常与Windows进行对比。建议你先安装RedHat Linux，然后练习如何配置它，如何使用Linux命令，如何在X—WINDOWS下操作，如何在Linux下安装应用软件，如何在Linux下上网、编辑文档、播放多媒体文件、玩游戏等。 <br /><br />　　快速上手的方法只有一个，那就是多动手操作，看看你能否完成上面的工作。 <br /><br />2、Linux与Windows有哪些异同点？ <br /><br />　　Windows是图形界面的，Linux类似以前的DOS，是文本界面的，如果你运行了图形界面程序X-WINDOWS后，Linux也能显示图形界面，也有开始菜单、桌面、图标等。 <br /><br />　　Windows有MS-DOS方式，在该方式下通过输入DOS命令来操作电脑；而Linux与Windows类似，也有命令方式，Linux启动后如果不执行X-WINDOWS，就会处于命令方式下，必须发命令才能操作电脑。另外Linux上也有很多的应用软件，安装运行了这些软件后，你就可以在Linux上编辑文档、图片，玩游戏、上网、播放多媒体文件等。 <br /><br />　　不过Linux的分区格式和目录结构，与Windows迥然不同，应用软件的安装方式也不同。 <br /><br />3、安装Linux时的注意事项 <br /><br />　　安装前确定好Linux安装在哪个分区，Linux也有系统分区和Swap分区（类似Windows的虚拟分区，即交换文件）两个分区。由于Linux支持的分区格式与Windows分区格式不同，所以如果安装了Linux后，Windows还能继续使用，Linux就应该安装在硬盘分区的最后一个扩展分区；其次Linux的Swap分区必须保证有60MB，系统分区最少要保证240MB；此外安装前搜集好PC硬件方面的信息，特别是显示器信息，这将直接决定你安装Linux后，使用图形界面程序的效果；在安装、使用中输入命令时，请注意大小写。 <br /><br />4、掌握Linux的目录结构 <br /><br />　　Linux的目录结构与Windows不同，而且在Windows下看不到Linux的目录，反过来，Linux也看不到Windows下的目录。Linux下各目录的含义如下： <br /><br />目录名称 意 义 <br />/vmlinuz 该目录中存放的是系统内核 <br />/bin 该目录中存放Linux的常用命令，在有的版本中是一些和根目录下相同的目录。 <br />/boot 该目录下存放的都是系统启动时要用到的程序，当用lilo引导Linux时，会用到这里的一些信息 <br />/dev 该目录包含了Linux系统中使用的所有外部设备，它实际上是访问这些外部设备的端口，你可以访问这些外部设备，与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”，就可以看到光驱中的文件；键入“cd /dev/mouse”即可看鼠标的相关文件。 <br />/cdrom 该目录在刚安装系统时是空的，你可以将光驱文件系统挂在这个目录下， 例如“mount /dev/cdrom /cdrom” <br />/etc <br />该目录存放了系统管理时要用到的各种配置文件和子目录，例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。 <br />/sbin 该目录用来存放系统管理员的系统管理程序。 <br />/home 如果建立一个名为“xx”的用户，那么在/home目录下就有一个对应的“/home/xx”路径，用来存放该用户的主目录。 <br />/lib 该目录用来存放系统动态连接共享库，几乎所有的应用程序都会用到该目录下的共享库 <br />/lost＋found 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后，有些文件就临时存放在这里。 <br />/mnt 该目录在一般情况下也是空的，你可以临时将别的文件系统挂在该目录下。 <br />/proc 可以在该目录下获取系统信息，这些信息是在内存中由系统自己产生的 <br />/root 如果你是以超级用户的身份登录的，这个就是超级用户的主目录 <br />/tmp 用来存放不同程序执行时产生的临时文件 <br />/usr 用户的很多应用程序和文件都存放在该目录下 <br /><br />5、Linux的常用命令 <br /><br />　　如果在Linux命令行模式下遇到不会用的命令，你可以打"man [command]"得到该命令的帮助，如果想知道一个命令有哪些参数，可以打command -help来得到。 <br /><br />　　注意：linux中的参数输入形式和dos不一样，在命令后面应该打一个空格，然后打"-"，最后再跟一个或多个参数；另外linux下大小写是有区别的！ <br /><br />　　下面介绍几个linux下最常用的命令，每个命令都与对应的dos命令作比较，并列出一些常用的参数。 <br /><br />命令参数 意 义 <br />Ls <br />-a列出系统中的隐含文件，linux下的隐含文件是靠文件名的格式来表示的，不同于dos是靠文件属性来表示，即只要该文件以“.”开头，那么它就是隐含文件。 <br />-l以长式列出。就是把该文件或目录的所有信息都列出来，一个文件占一行 <br />相当于dos下的dir命令，是列文件列表的命令。 <br />cd 和dos下的cd一样，转换目录的命令。 注意：linux下转到上级目录要打"cd .."而不是dos下的"cd.."，即"cd"后面要有个空格 <br />pwd 列出当前目录命令，相当于dos下没有参数的cd命令。例如： <br />[root@ttqq bin]# pwd /usr/bin [root@ttqq bin]# 这表示目前在"/usr/bin"目录下。 <br />Mkdir <br />-m mode表示建立目录时默认的目录模式。这个是dos和Windows所没有的功能，主要是关于权限的问题。 <br />建立新目录，相当于dos的md命令。一般就用 mkdir [dirname] <br />rmdir 删除目录，相当于dos的rd命令。 <br />用法：rmdir [dirname] <br />cat 在文件后面追加文件，或在屏幕上打印文件内容，追加功能相当于dos的copy file1+file2，而在屏幕上打印文件内容可以和dos的typeml来类比。如果文件太大，在一屏上无法完全显示，则可用more命令 <br />more 分屏显示文件内容，和dos下的more命令大致相同，但它可以和别的命令搭配使用。如：cat /home/eec/myfile | more。 <br />cp <br /><br />-r相当于dos的xcopy/s。用于拷贝一个目录下的所有子目录和文件 拷贝文件，相当于dos下的copy，使用方法与dos下的copy一样。 <br /><br />＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ <br /><br />系统安装: Linux快速入门 <br /><br />不少初学者都觉得Linux操作系统难用，现特将Linux中的基本操作与DOS操作系统中相似的操作对照比较如下，以让大家尽快入门 <br /><br /><br />[一、基础知识] <br />1、[系统安装] <br />Linux的安装时，使用Tab、箭头、空格、回车等键做出选择。Linux一般须安装在单独的分区下，为避免Windows系统中的注册表、快捷方式路径出错，最好安装在硬盘的最后一个分区。即将最后的一个分区删除后，用分区软件（建议用Pqmagic）分为Linux Native(根分区)和Linux Swap(数据交换区)，如果您的硬盘大于8G，您的Linux root分区应安装在前8G之内（linux 根分区终止扇区 &lt;1023 柱面）。Native分区一般要大于240MB，具体大小视安装的Linux组件决定，建议不要大于2G。Swap分区必须有60MB以上。安装前要搜集好您的硬件信息如：CPU、内存、显示器、显卡、鼠标、键盘等。Linux的版本有很多，而且不断更新，根据提示安装一般都可顺利完成。 <br /><br />2、[登陆进入] <br />默认安装，启动后在出现的Lilo boot：之后输入Linux（或回车），Linux便开始启动，当出现登陆提示符Login：时，输入用户名，然后出现口令提示符password：输入口令。可进入相应的用户环境。如输入：root，及其密码，可进入超级用户环境#，输入其他用户名及口令，可进入该用户环境$（当然由于版本的不同还可能是%等）。 <br /><br />3、[关闭系统] <br />在超级用户提示符#下输入halt（立即关机）或shutdown [time]（延迟time分后关机，给各用户每隔一段时间发出还有多长时间将关机的警告）后，计算机将进行一系列的关机工作，最后出现System halt时，表示可以关闭电源了。非超级用户则需用exit命令退出操作环境，再用超级用户：root登陆，才能执行关闭操作。 <br /><br />4、[注意事项] <br />与DOS不完全相同的地方： <br /><br />　 DOS Linux 备注 <br />命令行字母 不区分大小写 区分大小写 在Linux中，超级用户的系统提示符是#，一般普通用户的系统提示符是$，普通用户的系统提示符也同DOS一样可以更改。通配符中*、?与DOS中的含义相同，[]是仅包括括号内的符号，连续的符号可用“-”连接首尾的符号代替，如[12345678]可以用[1-8]代替，[abcdefijk]可用[a-fi-k ]表示。 <br />路径分隔符 / <br />提示符 &gt; #、$ <br />通配符 *、? *、?、[] <br /><br />5、[文件类型] <br />与DOS、Windows不同，在Linux系统中，目录和设备都被视为文件，共有四种文件类型，它们是：⑴普通文件，即我们通常所说的文件，在长列目录方式时行首前用一符号“-”表示。⑵目录文件，即我们通常所说的目录，在长列目录方式时行用首前用一字母“d”表示。⑶字符设备文件，如显示器、打印机、终端等，在长列目录方式时行首前用一字母 “c”表示。⑷块设备文件，如硬盘、软盘、光盘在长列目录方式时行首前用一字母“b”表示。在Linux中用长格式列目录命令ls -l时，例如： <br /><br />-rwxrw-r-- 5 user group 1089 Nov 18 1998 filename <br />存取权限 用户 组名 字节数 最后修改时间 文件名 <br /><br />DOS下的文件名是8.3格式的，Windows95以后开始支持长文件名，Linux支持长文件名。在DOS下扩展名是com、exe或bat的文件为可执行文件，但在Linux中文件类型只能通过文件属性得知，用命令ls –F可区分目录和文件，后有“/”符号的为目录，后有“*”符号的为可执行文件，用ls –aF可列出所有的文件和目录，包括隐藏的文件和目录，文件名以点号“.”开头的为隐藏文件。 <br /><br />6、[读取权限] <br />在Linux中，文件的主人称所有者，其他使用者分别称为同组者、其他人，为保证各用户文件的安全，Linux继承了UNIX的作法，通过设定存取权限，限制某些用户对文件的随意存取。共有三个级别的存取权：读权r、写权w、执行权x。在存取权中共有九个字符的位置其顺序是：所有者、同组人、其他人。在上例中分别表示：主人对文件拥有读写权和执行权，同组人对文件拥有读写权、其他人对文件只拥有读权。 <br /><br />7、[使用帮助] <br />在Linux中，您只要在命令行中打上man command（您要看帮助的命令），就可以得到该命令的在线帮助。man有一套它自己的命令，通常由单个键组成，按空格键和F键将翻到下一页，按B键翻到上一页，按Q键退出man，回到命令行。 <br /><br />[二、文件管理和目录操作] <br />1、[文件管理] <br /><br />功能 DOS Linux 备注 <br />显示文件内容 type、more cat、more type、cat是全部显示，more是分页显示 <br />拷贝文件 copy cp <br />移动文件及改名 move mv <br />删除文件 del、erase rm <br />打印文件 print lpr <br /><br />2、[目录操作] <br /><br />功能 DOS Linux 备注 <br />列目录及文件 dir/选项 ls –选项 在Linux中cd/是直接返回登录时的目录而不是根目录 <br />显示当前目录 cd pwd <br />变更工作目录 cd目录 cd/目录 <br />建立目录 md、mkdir mkdir <br />删除目录 rd、rmdir rmdir <br />目录更名 move mv <br />拷贝目录 xcopy copy <br /><br />据说很多DOS命令都是借鉴UNIX的，而Linux又是从UNIX发展起来，故DOS和Linux命令的格式很相似，只是Linux的命令的功能更加强大，各选项、参数有较大区别，具体运用时可使用帮助命令。 <br /><br />[三、外存储器的使用] <br />在Linux中一般不能直接访问软盘、其他硬盘逻辑分区、光盘等，在Linux中它们都被视为文件，在使用前必须使用装载命令mount将它们装载到系统的/mnt目录中，使用结束后还须卸载。命令格式如下： <br /><br />mount –t 文件系统类型 设备名 装载目录 <br /><br />常用的文件类型有： <br />msdos dos分区文件 <br />vfat 支持长文件名的dos分区 <br />ext2 Linux的文件系统 <br />swap Linux swap分区或swap文件 <br />iso9660 安装CD-ROM的文件系统 <br />hpfs OS/2分区文件系统 <br /><br />设备名是指要装载的设备的名称，如软盘、硬盘、光盘等，软盘一般为/dev/fd0 fd1，硬盘一般为/dev/hda hdb ，硬盘逻辑分区一般为期hda1 hda2…等等，光盘一般为/dev/hdc。在装载前一般要在/dev/mnt目录下建立一个空的目录（名字自拟），如软盘可为floppy，硬盘分区可为其盘符如c、d等等，光盘可为cd-rom，个体使用例子： <br /><br />装载一个mddos格式的软盘：mount –t msdos /dev/fd0 /mnt/floppy <br />装载一个Linux格式的软盘：mount –t ext2 /dev/fd0 /mnt/floppy <br />装载Windows98格式的硬盘分区（C盘）：mount –t vfat /dev/hda1 /mnt/c <br />装载一个光盘：mount –t iso9660 /dev/hdc /mnt/cd-rom <br /><br />装载完成后便可对该目录进行操作，在使用新的软盘及光盘前必须退出该目录，使用卸载命令umount卸载，才可以使用新的软盘及光盘，否则系统会不承认的，光盘在卸载前是不能用光驱面板前的弹出键退出的。 <br /><br />以上只是Linux基本的知识，不过相信您掌握后便已快速步入Linux了之门，进一步深入学习其他Linux知识了应该不成问题了。</span>
				<span class="postbody">
						<br />
				</span>
		</p>
		<br />
		<br />
		<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=659004</p>
<img src ="http://www.cnitblog.com/applezk/aggbug/15251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:41 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FTP 数字代码的意义</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15250.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:31:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15250.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15250.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15250.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15250.html</trackback:ping><description><![CDATA[
		<font color="#588558">110 重新启动标记应答。 <br />120 服务在多久时间内ready。 <br />125 数据链路埠开启，准备传送。 <br />150 文件状态正常，开启数据连接端口。 <br />200 命令执行成功。 <br />202 命令执行失败。 <br />211 系统状态或是系统求助响应。 <br />212 目录的状态。 <br />213 文件的状态。 <br />214 求助的讯息。 <br />215 名称系统类型。 <br />220 新的联机服务ready。 <br />221 服务的控制连接埠关闭，可以注销。 <br />225 数据连结开启，但无传输动作。 <br />226 关闭数据连接端口，请求的文件操作成功。 <br />227 进入passive mode。 <br />230 使用者登入。 <br />250 请求的文件操作完成。 <br />257 显示目前的路径名称。 <br />331 用户名称正确，需要密码。 <br />332 登入时需要账号信息。 <br />350 请求的操作需要进一部的命令。 <br />421 无法提供服务，关闭控制连结。 <br />425 无法开启数据链路。 <br />426 关闭联机，终止传输。 <br />450 请求的操作未执行。 <br />451 命令终止：有本地的错误。 <br />452 未执行命令：磁盘空间不足。 <br />500 格式错误，无法识别命令。 <br />501 参数语法错误。 <br />502 命令执行失败。 <br />503 命令顺序错误。 <br />504 命令所接的参数不正确。 <br />530 未登入。 <br />532 储存文件需要账户登入。 <br />550 未执行请求的操作。 <br />551 请求的命令终止，类型未知。 <br />552 请求的文件终止，储存位溢出。 <br />553 未执行请求的的命令，名称不正确。</font>
		<span class="postbody">
				<br />
		</span>
<img src ="http://www.cnitblog.com/applezk/aggbug/15250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:31 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>构筑防火墙之IPtables搭建防火墙的规则</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15249.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:27:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15249.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15249.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15249.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15249.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15249.html</trackback:ping><description><![CDATA[
		<p style="TEXT-INDENT: 2em">一般情况下，iptables已经包含在了Linux发行版中，可以运行iptables --version来查看系统是否安装了iptables。在我使用的Fedora Core 1中，安装的版本是iptables v1.2.8。如果你的系统确实没有安装iptables，那么可以从以下地址下载： <a href="http://www.netfilter.org/">http://www.netfilter.org/</a></p>
		<p style="TEXT-INDENT: 2em">查看规则集 </p>
		<p style="TEXT-INDENT: 2em">虽然上文对iptables的用法作一个简单介绍，但现实中我们可能需要知道更完整的信息，这时我们可以运行man iptables来查看所有命令和选项的完整介绍，也可以运行iptables help来查看一个快速帮助。要查看系统中现有的iptables规划集，可以运行以下命令： </p>
		<p style="TEXT-INDENT: 2em"> </p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>
														</ccid_code>iptables list</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">下面是没有定义规划时iptables的样子： </p>
		<p style="TEXT-INDENT: 2em"> </p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>
														</ccid_code>　　Chain INPUT (policy ACCEPT)
　　target   prot opt source               destination
　　
　　Chain FORWARD (policy ACCEPT)
　　target   prot opt source               destination         
　　
　　Chain OUTPUT (policy ACCEPT)
　　target   prot opt source               destination   
　　</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>如上面的例子所示，每一个数据包都要通过三个内建的链(INPUT、OUTPUT和FORWARD)中的一个。 filter是最常用的表，上文所示设置所有的表规则的基本语法：iptables [-t table] command [match] [target]。<br /><br />现实中，不一定要用到这里所列出的所有选项，也不一定是以这个顺序。当然，这是一种惯例，因为规则一般都比较长，为了清晰起见，最好能够按照这个顺序。<br /><br />在没有指定规则表的情况下，缺省时使用的filter表。在filter表中最常用的三个目标是ACCEPT、DROP和REJECT。DROP会丢弃数据包，不再对其进行任何处理。REJECT会把出错信息传送至发送数据包的主机。虽然有时会有一些预想不到的影响，但在很多时候它还是非常有用。<br /><br />增加规则<br /><br />本例中的规则将会阻止来自某一特定IP范围内的数据包，因为该IP地址范围被管理员怀疑有大量恶意的攻击者在活动：<br /><br /><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -t filter -A INPUT -s 123.456.789.0/24 -j DROP</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">要了解有关iptables详细的参数和命令格式，请使用man iptables查看。可以说，现在我们对于网络上的恶意攻击者已经深恶痛绝，但不管怎么说，我们也不能因为憎恨它们就以同样的方法对其实行简单的报复，至少这种事情不能在你的网络里发生。因此，我们也可以很轻易地阻止所有流向攻击者IP地址的数据包，该命令也只是稍有不同： </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -t filter -A OUTPUT -d 123.456.789.0/24 -j DROP
　　</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">注意这里的A选项，如前所述，使用它说明是给现有的链添加规则。 </p><p style="TEXT-INDENT: 2em">删除规则 </p><p style="TEXT-INDENT: 2em">网络上的恶意攻击者总是在变化着的，因此我们也要不断改变IP。假设我们了解的一个网上攻击者转移到了新的IP地址，而其老的IP地址被分配给了一些清白的用户，那么这时这些用户的数据包就无法通过你的网络了。这种情况下，我们可以使用带-D选项的命令来删除现有的规则： </p><p style="TEXT-INDENT: 2em"></p><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -t filter -D OUTPUT -d 123.456.789.0/24 -j DROP
　　</pre></td></tr></tbody></table><p> </p><p>缺省的策略<br /><br />创建一个具有很好灵活性，可以抵御各种意外事件的规则需要花大量的时间。对于那些不想这样做的人，最基本的原则就是“先拒绝所有的数据包，然后再允许需要的”。下面我们来为每一个链设置缺省的规则：<br /><br /></p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -P INPUT DROP
　　# iptables -P FORWARD DROP
　　# iptables -P OUTPUT ACCEPT
　　</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">这里选项-P用于设置链的策略，只有三个内建的链才有策略。这些策略可以让信息毫无限制地流出，但不允许信息流入。但很多时候，我们还是需要接收外部信息的。这时可使用以下命令： </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -t filter -A INPUT -s 123.456.789.0/24 -j ACCEPT
　</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">SYN的使用 </p><p style="TEXT-INDENT: 2em">我们不能关闭所有的端口，那将会把我们自己完全“与世隔绝”。我们也不能只指定某些端口处于打开状态，因为我们无法预见哪一个端口将会被使用。事实上，只简单地允许目的地为某一特定端口的数据流通过将对阻止恶意的攻击毫无意义。那么我们怎样才能设置一个有效的规则，即可以允许普通用户正常通过，又可以阻止恶意攻击者访问我们的网络呢？ </p><p style="TEXT-INDENT: 2em">对于刚开始使用iptables的人，我们可以充分利用syn标识来阻止那些未经授权的访问。因为iptables只检测数据包的报头，所以不会增加有效负荷。事实上，除iptables以外，很多其它有用的数据包分析都是基于报头的。 </p><p style="TEXT-INDENT: 2em">比如，在进行Web冲浪时，一个请求从你的PC发送至其它某一个地方的Web服务器之上，接着该服务器就会响应请求并且向你发回一个数据包，并且得到你的系统上的一个临时端口。与响应请求不同的是，服务器并不关心你所传送的内容。这们可以利用这种特点，来设置一个规则，让它阻止所有没有经过你的系统授权的TCP连接： </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP</pre></td></tr></tbody></table></center><p> </p><p>这里的-i指的是网卡，-p则是指协议，--syn则表示带有syn标识设置的TCP数据包。从中我们可以看出，对TCP/IP的了解将非常有利于维护网络安全。SYN用于初始化一个TCP连接，如果你在自己的机器上没有运行任何服务器，别人自然也就不会向你发送SYN数据包了。<br /><br />就这点而言，有人会说：何必如此麻烦？的确，我们有更简单的创建防火墙的方法，也有很多不错的软件也可以帮助我们来构建自己的规则集，但是我们应该清楚，最简单的办法，往往不是最好的方法。既然我们有更好的方法，为什么不使用呢？<br /><br />共享一个Internet连接<br /><br />网络地址翻译和IP伪装都可以实现多台主机共享一个Internet连接，而这个局域网可以是Linux和Windows系统组成的多系统局域网。假设现在我们有一台机器有两个网卡，其中eth0为“公共”网卡，eth1为“私有”网卡。<br /><br />换句话说，eth0被分配了一个静态的，可路由的IP地址，而eth1则被分配给了一个私有的、不能路由的IP，也就是说该IP是属于该局域网子网的。要实现上述功能，我们需要向nat和filter表中添加一些链：<br /><br /></p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　 # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
　 # iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state 
   RELATED,ESTABLISHED -j ACCEPT
　 # iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">这显示了有状态的数据包检测的价值。请注意，我们这里是如何实现流入数据包只有在属于一个已经存在的连接时才被允许的，而所有来自局域网内流向外的数据包则都允许通过 (注意：这里的filter是缺省的表，但它并不是必须的)。第一条规则让所有流出的信息看起来都是来自防火墙机器的，而并不会显示出防火墙后面还有一个局域网。 </p><p style="TEXT-INDENT: 2em">下面的例子是为FORWARD和POSTROUTING链设置了缺省的策略，在使用伪装时，有一个缺省的POSTROUTING DROP策略是非常重要的，否则，就有可能有心怀恶意的用户突破网关后伪装它自己的身份。 </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -t filter -P FORWARD DROP
　　# iptables -t nat -P POSTROUTING DROP</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">下面的例子是为了拨号连接设置的，它可以动态地分配IP地址： </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</pre></td></tr></tbody></table></center><p> </p><p>规则的保存<br /><br />使用脚本更改规则的问题是：改动每个规则都要调用命令iptables，而每一次调用iptables，它首先要把netfilter内核空间中的整个规则集都提取出来，然后再插入或附加，或做其他的改动，最后，再把新的规则集从它的内存空间插入到内核空间中,这显然会花费很多时间。<br /><br />为了解决这个问题，可以使用命令iptables-save和restore 。iptables-save用来把规则集保存到一个特殊格式的文本文件里，而iptables-restore则用来把这个文件重新装入到内核空间中。<br /><br />这两个命令最好的地方在于一次调用就可以装载和保存规则集，而不像脚本中每个规则都要调用一次iptables。<br /><br />iptables-save运行一次就可以把整个规则集从内核里提取出来，并保存到文件里，而iptables-restore每次装入一个规则表。换句话说，对于一个很大的规则集，如果用脚本来设置，那这些规则就会反复地被卸载、安装很多次，而我们现在可以把整个规则集一次就保存下来，安装时则是一次一个表，这可是节省了大量的时间。所以，一旦测试结果令你满意，你就可以将它们保存为脚本：<br /><br /></p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables-save &gt; iptables-script</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">现在，信息包过滤表中的所有规则都被保存在文件iptables-script中。无论何时再次引导系统，都可以使用 iptables-restore 命令将规则集从该脚本文件恢复到信息包过滤表，恢复指令如下所示： </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>　　# iptables-restore iptables-script</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">如果您愿意在每次引导系统时自动恢复该规则集，则可以将上面指定的这条命令放到任何一个初始化shell脚本中。 </p><p style="TEXT-INDENT: 2em">事实上，大部分发行版都为用户提供了一个可以自动加载的文件，让用户在其中编辑规则集，并且大部分发行版都会有一个已经预先配置好的防火墙。不同的发行版的配置文件位置不尽相同，我们可以使用命令locate iptables来找到配置文件。对于Red Hat或者 Fedora Core而言，这个配置文件位于/etc/sysconfig/iptables。该文件初始的内容如下： </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>1 # Firewall configuration
2 *filter
3 :INPUT &lt;target&gt; [0:0]
4 :FORWARD &lt;target&gt; [0:0]
5 :OUTPUT &lt;target&gt; [0:0]
6
7 # your rules here
8 
9 COMMIT</pre></td></tr></tbody></table></center><p style="TEXT-INDENT: 2em">建议将其基本框架改成以下内容： </p><p style="TEXT-INDENT: 2em"> </p><center><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>1 *filter
 2 :INPUT DROP [0:0]
 3 :FORWARD DROP [0:0]
 4 :OUTPUT ACCEPT [0:0]
 5
 6 # allow local loopback connections
 7 -A INPUT -i lo -j ACCEPT
 8
 9 # drop INVALID connections
10 -A INPUT   -m state --state INVALID -j DROP
11 -A OUTPUT  -m state --state INVALID -j DROP
12 -A FORWARD -m state --state INVALID -j DROP
13
14 # allow all established and related
15 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
16 
17 # add anymore rules here
18
19 COMMIT</pre></td></tr></tbody></table></center><br /><img src ="http://www.cnitblog.com/applezk/aggbug/15249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:27 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15249.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iptables入门教程--设置静态防火墙</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15248.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:19:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15248.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15248.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15248.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15248.html</trackback:ping><description><![CDATA[
		<h2 class="diaryTitle">[转载]iptables入门教程--设置静态防火墙</h2>
		<p>
				<font color="#ff0000" size="3">iptables -I RH-Firewall-1-INPUT 20 -p TCP -s 211.161.250.232/32 -m state --state NEW --dport 3306 -j ACCEPT<br />iptables -I RH-Firewall-1-INPUT 20 -p TCP -s 211.161.192.0/24 -m state --state NEW --dport 3306 -j ACCEPT</font>     </p>
		<p>用x.x.x.x/x.x.x.x 指定一个网络地址，如"192.168.1.0/255.255.255.0";</p>
		<p>用x.x.x.x/x指定一个网络地址，如"192.168.1.0/24" 这里24表明了子网掩码的有效位数(掩码转为二进制)，UNIX环境中通常的表示方法，缺省的为32，也就是说指定 192.168.1.1 等效于192.168.1.1/32</p>
		<p>介绍：<br />这篇文章是本人原创，向读者展示了如何一步一步建立静态防火墙来保护您的计算机，同时在每一步中，我力图向读者讲述清楚原理。在这篇教程之后，你将能理解到防火墙内在过滤机制，同时也能自己动手创建符合自己要求的防火墙。<br /><br />版权所有，转载请注明来自www.linuxsir.org 并写明作者liweioop<br /><br /><br />1、iptables介绍<br /><br />iptables是复杂的，它集成到linux内核中。用户通过iptables，可以对进出你的计算机的数据包进行过滤。通过iptables命令设置你的规则，来把守你的计算机网络──哪些数据允许通过，哪些不能通过，哪些通过的数据进行记录（log）。接下来，我将告诉你如何设置自己的规则，从现在就开始吧。<br /><br /><br /><br />2、初始化工作<br /><br />在shell提示符 # 下打入<br /><br />iptables -F<br /><br />iptables -X<br /><br />iptables -t nat -F<br /><br />iptables -t nat -X<br /><br />以上每一个命令都有它确切的含义。一般设置你的iptables之前，首先要清除所有以前设置的规则，我们就把它叫做初始化好了。虽然很多情况下它什么也不做，但是保险起见，不妨小心一点吧！ 如果你用的是redhat 或fedora，那么你有更简单的办法<br /><br />service iptables stop<br /><br /><br /><br />3、开始设置规则:<br /><br />接下下开始设置你的规则了<br /><br />iptables -P INPUT DROP<br /><br />这一条命令将会为你构建一个非常“安全”的防火墙，我很难想象有哪个hacker能攻破这样的机器，因为它将所有从网络进入你机器的数据丢弃(drop) 了。这当然是安全过头了，此时你的机器将相当于没有网络。如果你ping localhost，你就会发现屏幕一直停在那里，因为ping收不到任何回应。<br /><br /><br />4 、添加规则<br /><br />接着上文继续输入命令：<br /><br />iptables -A INPUT -i ! ppp0 -j ACCEPT<br /><br />这条规则的意思是：接受所有的，来源不是网络接口ppp0的数据。<br /><br />我们假设你有两个网络接口，eth0连接局域网，loop是回环网（localhost）。ppp0是一般的adsl上网的internet网络接口，如果你不是这种上网方式，那则有可能是eth1。在此我假设你是adsl上网，你的internet接口是ppp0<br /><br />此时你即允许了局域网的访问，你也可以访问localhost<br /><br />此时再输入命令 ping localhost，结果还会和刚才一样吗？<br /><br />到此我们还不能访问www,也不能mail，接着看吧。<br /><br /><br /><br />5、我想访问www<br /><br />iptables -A INPUT -i ppp0 -p tcp -sport 80 -j ACCEPT<br /><br />允许来自网络接口ppp0(internet接口)，并且来源端口是80的数据进入你的计算机。<br />80端口正是www服务所使用的端口。<br /><br />好了，现在可以看网页了。但是，你能看到吗？<br /><br /><br />如果你在浏览器的地址中输入www.baidu.com，能看到网页吗？<br /><br />你得到的结果一定是：找不到主机www.baidu.com<br /><br />但是，如果你再输入220.181.27.5,你仍然能够访问baidu的网页。<br /><br />为什么？如果你了解dns的话就一定知道原因了。<br /><br />因为如果你打入www.baidu.com,你的电脑无法取得www.baidu.com这个名称所能应的ip地址220.181.27.5。如果你确实记得这个ip，那么你仍然能够访问www,你当然可以只用ip来访问www，如果你想挑战你的记忆的话^ _ ^，当然，我们要打开DNS。<br /><br /><br />6、打开dns端口<br /><br />打开你的dns端口，输入如下命令：<br /><br />iptables -A INPUT -i ppp0 -p udp -sport 53 -j ACCEPT<br /><br />这条命令的含义是，接受所有来自网络接口ppp0,upd协议的53端口的数据。53也就是著名的dns端口。<br /><br />此时测试一下，你能通过主机名称访问www吗？你能通过ip访问www吗？<br /><br />当然，都可以！<br /><br /><br /><br />7、查看防火墙<br /><br />　此时可以查看你的防火墙了<br /><br />iptables -L<br /><br />　如果你只想访问www，那么就可以到此为止，你将只能访问www了。 不过先别急，将上面讲的内容总结一下，写成一个脚本。<br /><br /><br /><br />#!/bin/bash<br /><br /># This is a script<br /><br /># Edit by liwei<br /><br /># establish static firewall<br /><br />iptables -F<br /><br />iptables -X<br /><br />iptables -t nat -F<br /><br />iptables -t nat -X<br /><br />iptables -P INPUT DROP<br /><br />iptables -A INPUT -i ! ppp0 -j ACCEPT<br /><br />iptables -A INPUT -i ppp0 -p tcp --sport 80 -j ACCEPT<br /><br />iptables -A INPUT -i ppp0 -p udp --sport 53 -j ACCEPT<br /><br /><br /><br />8、复杂吗?到此iptables可以按你的要求进行包过滤了。你可以再设定一些端口，允许你的机器访问这些端口。这样有可能，你不能访问QQ，也可能不能打网络游戏，是好是坏，还是要看你自己而定了。顺便说一下，QQ这个东西还真是不好控制，用户与服务器连接使用的好像是8888端口，而QQ上好友互发消息使用的又是udp的4444端口(具体是不是4444还不太清楚)。而且QQ还可以使用www的80端口进行登录并发消息，看来学无止境，你真的想把这个家伙控制住还不容易呢？还是进入我们的正题吧。<br /><br />如果你的机器是服务器，怎么办？<br /><br /><br />9、如果不巧你的机器是服务器，并且要提供www服务。显然，以上的脚本就不能符合我们的要求了。但只要你撑握了规则，稍作修改同样也能很好的工作。在最后面加上一句<br /><br />iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT<br /><br />这一句也就是将自己机器上的80端口对外开放了,这样internet上的其他人就能访问你的www了。当然，你的www服务器得工作才行。如果你的机器同时是smtp和pop3服务器，同样的再加上两条语句,将--dport后面的80改成25和110就行了。如果你还有一个ftp服务器，呵呵，如果你要打开100个端口呢……<br /><br />我们的工作好像是重复性的打入类似的语句，你可能自己也想到了，我可以用一个循环语句来完成，对，此处可以有效的利用shell脚本的功能，也让你体验到了shell脚本语言的威力。看下文：<br /><br /><br />10、用脚本简化你的工作,阅读下面的脚本<br /><br />#!/bin/bash<br /><br /># This is a script<br /><br /># Edit by liwei<br /><br /># establish a static firewall<br /><br /><br /><br /># define const here<br /><br />Open_ports="80 25 110 10" # 自己机器对外开放的端口<br /><br />Allow_ports="53 80 20 21" # internet的数据可以进入自己机器的端口<br /><br /><br /><br />#init<br /><br />iptables -F<br /><br />iptables -X<br /><br />iptables -t nat -F<br /><br />iptables -t nat -X<br /><br />iptables -P INPUT DROP #we can use another method to instead it<br /><br />iptables -A INPUT -i ! ppp0 -j ACCEPT<br /><br /><br /><br /># define ruler so that some data can come in.<br /><br />for Port in "Allow_ports" ; do<br /><br />iptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT<br /><br />iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT<br /><br />done<br /><br />for Port in "Open_ports" ; do<br /><br />iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT<br /><br />iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT<br /><br />done<br /><br /><br /><br />这个脚本有三个部分（最前面的一段是注释，不算在这三部分中）<br /><br />第一部分是定义一些端口：访问你的机器"Open_ports"端口的数据，允许进入；来源是"Allow_ports"端口的数据，也能够进入。<br /><br />第二部分是iptables的初始化，第三部分是对定义的端口具体的操作。<br /><br />如果以后我们的要求发生了一些变化，比如,你给自己的机器加上了一个ftp服务器，那么只要在第一部分"Open_ports"的定义中，将ftp对应的20与21端口加上去就行了。呵呵，到此你也一定体会到了脚本功能的强大的伸缩性，但脚本的能力还远不止这些呢！<br /><br /><br /><br />11、使你的防火墙更加完善<br /><br />看上面的脚本init部分的倒数第二句<br /><br />iptables -P INPUT DROP<br /><br />这是给防火墙设置默认规则。当进入我们计算机的数据，不匹配我们的任何一个条件时，那么就由默认规则来处理这个数据----drop掉，不给发送方任何应答。<br /><br />也就是说，如果你从internet另外的一台计算机上ping你的主机的话，ping会一直停在那里，没有回应。<br /><br />如果黑客用namp工具对你的电脑进行端口扫描，那么它会提示黑客，你的计算机处于防火墙的保护之中。我可不想让黑客对我的计算机了解太多，怎么办，如果我们把drop改成其他的动作，或许能够骗过这位刚出道的黑客呢。<br /><br />怎么改呢？将刚才的那一句( iptables -P INPUT DROP )去掉，在脚本的最后面加上<br /><br />iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset<br /><br />iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable<br /><br />这样就好多了，黑客虽然能扫描出我们所开放的端口，但是他却很难知道，我们的机器处在防火墙的保护之中。如果你只运行了ftp并且仅仅对局域网内部访问, 他很难知道你是否运行了ftp。在此我们给不应该进入我们机器的数据，一个欺骗性的回答，而不是丢弃(drop)后就不再理会。这一个功能，在我们设计有状态的防火墙中(我这里讲的是静态的防火墙)特别有用。<br /><br />你可以亲自操作一下，看一看修改前后用namp扫描得到的结果会有什么不同？<br /><br /><br /><br />12、这个教程我想到此就结束了，其中有很多东西在这里没有提到，如ip伪装，端口转发，对数据包的记录功能。还有一个很重要的东西就是： iptables处理数据包的流程.在这里我想告诉你，你设置的过滤规则的顺序很重要，在此不宜详细介绍，因为这样一来，这个教程就会拘泥于细节。<br /><br />iptables是复杂的，我在linuxsir上看过很多教程，它们往往多而全，反而让人望而生畏，希望我的这个教程，能够指导你入门。加油！<br /><br />最后，我把完整的脚本写出来如下，你只要修改常量定义部分，就能表现出较大的伸缩性^_^<br /><br />#!/bin/bash<br /><br /># This is a script<br /><br /># Edit by liwei<br /><br /># establish a static firewall<br /><br /><br /><br /># define const here<br /><br />Open_ports="80 25 110 10" # 自己机器对外开放的端口<br /><br />Allow_ports="53 80 20 21" # internet的数据可以进入自己机器的端口<br /><br /><br /><br />#init<br /><br />iptables -F<br /><br />iptables -X<br /><br />iptables -t nat -F<br /><br />iptables -t nat -X<br /><br /># The follow is comment , for make it better<br /># iptables -P INPUT DROP<br /><br />iptables -A INPUT -i ! ppp0 -j ACCEPT<br /><br /><br /><br /># define ruler so that some data can come in.<br /><br />for Port in "Allow_ports" ; do<br />ptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT<br />iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT<br />done<br /><br />for Port in "Open_ports" ; do<br />iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT<br />iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT<br />done<br /><br /># This is the last ruler , it can make you firewall better<br />iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset<br />iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable<br /></p>
<img src ="http://www.cnitblog.com/applezk/aggbug/15248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:19 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下压缩解压缩</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15247.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:15:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15247.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15247.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15247.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15247.html</trackback:ping><description><![CDATA[
		<p>下载rarlinux-3.5.0.tar.gz</p>
		<p>#tar zvxf rarlinux-3.5.0.tar.gz</p>
		<p>#make</p>
		<p>#make install</p>
		<p> </p>
		<p>#unrar x 需要解压缩的文件.rar</p>
		<p>#<font size="2">rar a 压缩后的文件名.rar  压缩文件</font></p>
		<br />
		<br />
		<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=657830</p>
<img src ="http://www.cnitblog.com/applezk/aggbug/15247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:15 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VSFTP配置手册 </title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15246.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:09:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15246.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15246.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15246.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15246.html</trackback:ping><description><![CDATA[
		<table id="toc" border="0">
				<tbody>
						<tr id="toctitle">
								<td align="middle">
										<strong>目录</strong>
								</td>
						</tr>
						<tr id="tocinside">
								<td>
										<div class="tocline">
												<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E5.AE.89.E8.A3.85">1 vsFTP服务器的安装</a>
												<br />
										</div>
										<div class="tocindent">
												<p>
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E5.8C.BF.E5.90.8D.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E8.BF.9E.E6.8E.A5.EF.BC.88.E7.8B.AC.E7.AB.8B.E7.9A.84.E6.9C.8D.E5.8A.A1.E5.99.A8.EF.BC.89">1.1 匿名服务器的连接（独立的服务器）</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E5.BC.80.E5.90.AF.E5.8C.BF.E5.90.8DFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E4.B8.8A.E4.BC.A0.E6.9D.83.E9.99.90">1.2 开启匿名FTP服务器上传权限</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E5.BC.80.E5.90.AF.E5.8C.BF.E5.90.8D.E6.9C.8D.E5.8A.A1.E5.99.A8.E4.B8.8B.E4.BC.A0.E7.9A.84.E6.9D.83.E9.99.90">1.3 开启匿名服务器下传的权限</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E6.99.AE.E9.80.9A.E7.94.A8.E6.88.B7FTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E8.BF.9E.E6.8E.A5.EF.BC.88.E7.8B.AC.E7.AB.8B.E6.9C.8D.E5.8A.A1.E5.99.A8.EF.BC.89">1.4 普通用户FTP服务器的连接（独立服务器）</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E7.94.A8.E6.88.B7.E7.99.BB.E9.99.86.E9.99.90.E5.88.B6.E8.BF.9B.E5.85.B6.E5.AE.83.E7.9A.84.E7.9B.AE.E5.BD.95.EF.BC.8C.E5.8F.AA.E8.83.BD.E8.BF.9B.E5.AE.83.E7.9A.84.E4.B8.BB.E7.9B.AE.E5.BD.95">1.5 用户登陆限制进其它的目录，只能进它的主目录</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E9.99.90.E5.88.B6.E6.9C.AC.E5.9C.B0.E7.94.A8.E6.88.B7.E8.AE.BF.E9.97.AEFTP">1.6 限制本地用户访问FTP</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E5.AE.89.E5.85.A8.E9.80.89.E9.A1.B9">1.7 安全选项</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E6.9F.A5.E7.9C.8B.E8.B0.81.E7.99.BB.E9.99.86.E4.BA.86FTP.2C.E5.B9.B6.E6.9D.80.E6.AD.BB.E5.AE.83.E7.9A.84.E8.BF.9B.E7.A8.8B">1.8 查看谁登陆了FTP,并杀死它的进程</a>
														<br />
												</p>
										</div>
										<div class="tocline">
												<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E9.85.8D.E7.BD.AE">2 vsFTP服务器的配置</a>
												<br />
										</div>
										<div class="tocindent">
												<p>
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E9.85.8D.E7.BD.AE.E6.9C.AC.E5.9C.B0.E7.BB.84.E8.AE.BF.E9.97.AE.E7.9A.84FTP">2.1 配置本地组访问的FTP</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E9.85.8D.E7.BD.AE.E7.8B.AC.E7.AB.8BFTP.E7.9A.84.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E9.9D.9E.E7.AB.AF.E5.8F.A3.E6.A0.87.E5.87.86.E6.A8.A1.E5.BC.8F.E8.BF.9B.E8.A1.8C.E6.95.B0.E6.8D.AE.E8.BF.9E.E6.8E.A5">2.2 配置独立FTP的服务器的非端口标准模式进行数据连接</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E9.85.8D.E7.BD.AE.E5.8D.95.E7.8B.AC.E7.9A.84.E8.99.9A.E6.8B.9FFTP.EF.BC.8C.E4.BD.BF.E7.94.A8.E8.99.9A.E6.8B.9FFTP.E7.94.A8.E6.88.B7.EF.BC.8C.E5.B9.B6.E4.BD.BF.E5.BB.BA.E7.AB.8B.E7.9A.84.E5.9B.9B.E4.B8.AA.E5.B8.90.E6.88.B7.E4.B8.AD.E6.9C.89.E4.B8.8D.E5.90.8C.E7.9A.84.E6.9D.83.E9.99.90">2.3 配置单独的虚拟FTP，使用虚拟FTP用户，并使建立的四个帐户中有不同的权限</a>
														<br />
												</p>
												<div class="tocindent">
														<p>
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#A.EF.BC.9A.E9.85.8D.E7.BD.AE.E7.BD.91.E5.8D.A1">2.3.1 A：配置网卡</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#B.EF.BC.9A.E5.86.99.E5.85.A5.2Fetc.2Fsysconfig.E4.B8.AD.EF.BC.88.E4.B8.BA.E4.BA.86.E9.87.8D.E8.B5.B7.E5.90.8EIP.E5.9C.B0.E5.9D.80.E4.B8.8D.E4.BC.9A.E4.B8.A2.E5.A4.B1.EF.BC.89">2.3.2 B：写入/etc/sysconfig中（为了重起后IP地址不会丢失）</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#C.EF.BC.9A.E8.BF.9B.E5.85.A5vsftpd.conf.E6.89.80.E5.9C.A8.E7.9A.84.E6.96.87.E4.BB.B6.E5.A4.B9">2.3.3 C：进入vsftpd.conf所在的文件夹</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#D.EF.BC.9A.E5.BB.BA.E7.AB.8Blogins.txt">2.3.4 D：建立logins.txt</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#E.EF.BC.9A.E5.BB.BA.E7.AB.8B.E8.AE.BF.E9.97.AE.E8.80.85.E7.9A.84.E5.8F.A3.E4.BB.A4.E5.BA.93.E6.96.87.E4.BB.B6.2C.E7.84.B6.E5.90.8E.E4.BF.AE.E6.94.B9.E5.85.B6.E6.9D.83.E9.99.90">2.3.5 E：建立访问者的口令库文件,然后修改其权限</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#F.EF.BC.9A.E8.BF.9B.E5.A6.82.2Fetc.2Fpam.d.2F.E4.B8.AD.E5.88.9B.E5.BB.BAftp.vu">2.3.6 F：进如/etc/pam.d/中创建ftp.vu</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#G.EF.BC.9A.E5.9C.A8.2Fvar.2Fftp.2F.E5.88.9B.E5.BB.BA.E7.9B.AE.E5.BD.95.E5.B9.B6.E6.94.B9.E5.8F.98.E5.85.B6.E5.B1.9E.E6.80.A7.E5.92.8C.E5.AE.83.E7.9A.84.E5.B1.9E.E4.B8.BB">2.3.7 G：在/var/ftp/创建目录并改变其属性和它的属主</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#H.EF.BC.9A.E8.BF.9B.E5.85.A5vsftpd2.conf.E4.BF.AE.E6.94.B9.E5.85.B6.E4.B8.AD.E7.9A.84.E4.BF.A1.E6.81.AF">2.3.8 H：进入vsftpd2.conf修改其中的信息</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#I.EF.BC.9A.E5.9C.A8vsftpd.comf.E6.89.80.E5.9C.A8.E7.9A.84.E7.9B.AE.E5.BD.95.E4.B8.AD.E5.88.9B.E5.BB.BAvirtaul.E6.96.87.E4.BB.B6.E7.9B.AE.E5.BD.95.E5.B9.B6.E5.9C.A8.E6.96.87.E4.BB.B6.E7.9B.AE.E5.BD.95.E4.B8.AD.E5.88.9B.E5.BB.BA.E4.BB.A5.E4.BD.A0.E7.94.A8.E6.88.B7.E5.90.8D.E5.91.BD.E5.90.8D.E7.9A.84.E9.85.8D.E7.BD.AE.E6.96.87.E4.BB.B6">2.3.9 I：在vsftpd.comf所在的目录中创建virtaul文件目录并在文件目录中创建以你用户名命名的配置文件</a>
																<br />
																<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#J.EF.BC.9A.E4.BF.AE.E6.94.B9vsftpd2.conf">2.3.10 J：修改vsftpd2.conf</a>
																<br />
														</p>
												</div>
												<p>
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#vsftpd.conf.E4.B8.AD.E7.9A.84.E6.89.80.E6.9C.89.E9.85.8D.E7.BD.AE.E4.BF.A1.E6.81.AF">2.4 vsftpd.conf中的所有配置信息</a>
														<br />
												</p>
										</div>
										<div class="tocline">
												<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E7.BB.B4.E6.8A.A4">3 vsFTP服务器的维护</a>
												<br />
										</div>
										<div class="tocline">
												<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#vsFTP.E4.BD.BF.E7.94.A8.E7.9A.84.E4.B8.80.E4.BA.9B.E8.A1.A5.E5.85.85">4 vsFTP使用的一些补充</a>
												<br />
										</div>
										<div class="tocindent">
												<p>
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E4.B8.80.EF.BC.9A.E5.A6.82.E4.BD.95.E6.9C.89.E9.80.89.E6.8B.A9.E7.9A.84.E6.8A.8A.E7.94.A8.E6.88.B7.E9.99.90.E5.88.B6.E5.9C.A8.E5.AE.B6.E7.9B.AE.E5.BD.95.E4.B8.AD.E5.91.A2.EF.BC.9F">4.1 补充一：如何有选择的把用户限制在家目录中呢？</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E4.BA.8C.EF.BC.9A.E6.89.93.E5.BC.80vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E6.97.A5.E5.BF.97.E5.8A.9F.E8.83.BD">4.2 补充二：打开vsFTP服务器的日志功能</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E4.B8.89.EF.BC.9A.E5.A6.82.E4.BD.95.E8.AE.A9.E7.BB.91.E5.AE.9AIP.E5.88.B0vsFTP.EF.BC.9F">4.3 补充三：如何让绑定IP到vsFTP？</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E5.9B.9B.EF.BC.9A.E5.A6.82.E4.BD.95.E8.AE.A9vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E9.99.90.E5.88.B6.E9.93.BE.E6.8E.A5.E6.95.B0.EF.BC.8C.E4.BB.A5.E5.8F.8A.E6.AF.8F.E4.B8.AAIP.E6.9C.80.E5.A4.A7.E7.9A.84.E9.93.BE.E6.8E.A5.E6.95.B0.EF.BC.9F.EF.BC.9F">4.4 补充四：如何让vsFTP服务器限制链接数，以及每个IP最大的链接数？？</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E4.BA.94.EF.BC.9A.E5.A6.82.E4.BD.95.E9.99.90.E5.88.B6.E4.B8.8B.E8.BD.BD.E7.9A.84.E9.80.9F.E5.BA.A6.EF.BC.9F">4.5 补充五：如何限制下载的速度？</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E5.85.AD.EF.BC.9A.E6.88.91.E7.9A.84.E7.A1.AC.E7.9B.98.E7.A9.BA.E9.97.B4.E6.9C.89.E9.99.90.EF.BC.8C.E6.80.8E.E4.B9.88.E5.8A.9E.EF.BC.9F">4.6 补充六：我的硬盘空间有限，怎么办？</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E4.B8.83.EF.BC.9A.E5.A6.82.E4.BD.95.E5.AE.9A.E5.88.B6.E6.AC.A2.E8.BF.8E.E4.BF.A1.E6.81.AF">4.7 补充七：如何定制欢迎信息</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E5.85.AB.EF.BC.9A.E5.A6.82.E4.BD.95.E5.AE.9E.E7.8E.B0.E8.99.9A.E6.8B.9F.E8.B7.AF.E5.BE.84.EF.BC.9F">4.8 补充八：如何实现虚拟路径？</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E4.B9.9D.EF.BC.9A.E5.A6.82.E4.BD.95.E4.B8.8A.E5.8C.BF.E5.90.8D.E8.AE.BF.E9.97.AE.E3.80.81.E4.B8.8A.E4.BC.A0.EF.BC.8C.E5.B9.B6.E6.94.AF.E6.8C.81.E4.B8.8B.E8.BD.BD.E5.92.8C.E6.89.A7.E8.A1.8C.EF.BC.9F">4.9 补充九：如何上匿名访问、上传，并支持下载和执行？</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E5.8D.81.EF.BC.9A.E9.80.9A.E8.BF.87pam.E8.AE.A4.E8.AF.81.E6.96.B9.E5.BC.8F.EF.BC.8C.E6.B7.BB.E5.8A.A0.E8.99.9A.E6.8B.9F.E7.94.A8.E6.88.B7">4.10 补充十：通过pam认证方式，添加虚拟用户</a>
														<br />
														<a href="http://study.ddlcn.cn/article/dnpx/czxt/linux/2005-03-14/linux1-34-1113.html#.E8.A1.A5.E5.85.85.E5.8D.81.E4.B8.80.EF.BC.9A.E5.A6.82.E4.BD.95.E6.8A.8A.E7.B3.BB.E7.BB.9F.E9.BB.98.E8.AE.A4.E7.94.A8standalone.E5.90.AF.E5.8A.A8.E6.94.B9.E4.B8.BA.E7.94.A8xinetd.E5.90.AF.E5.8A.A8.EF.BC.9F">4.11 补充十一：如何把系统默认用standalone启动改为用xinetd启动？</a>
														<br />
												</p>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
		<div class="editsection" style="FLOAT: right; MARGIN-LEFT: 5px">
		</div>
		<a name="vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E5.AE.89.E8.A3.85">
		</a>
		<h2>vsFTP服务器的安装</h2>
		<p>安装一个软件实在是不许要在这里介绍，因此，这里的安装主要针对vsFTPd服务器的初级配置。 </p>
		<p>
				<strong>VSFTPD的菜鸟篇</strong>
		</p>
		<p>版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 </p>
		<p>[原文出处 <a class="external" title="http://www.5ilinux.com/vsftp01.html" href="http://www.5ilinux.com/vsftp01.html">http://www.5ilinux.com/vsftp01.html</a>] </p>
		<p>
				<br />这是我这个菜鸟学习LINUX所写的第一篇文章，是比较基础的FTP架设的应用，如果我写有什么问题请大家多指教，我后续会陆续出进阶篇把FTP中各种详细的配置跟大家一起进行探讨。我所用的是Redhat Linux AS + VSFTPD-1.2.0-4的系统架构，在这里说明的是如果对配置文件不是很熟悉，最好做个备份，以免误操作： </p>
		<a name=".E5.8C.BF.E5.90.8D.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E8.BF.9E.E6.8E.A5.EF.BC.88.E7.8B.AC.E7.AB.8B.E7.9A.84.E6.9C.8D.E5.8A.A1.E5.99.A8.EF.BC.89">
		</a>
		<h3>匿名服务器的连接（独立的服务器）</h3>
		<p>在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项：<br /></p>
		<pre>  anonymous_enable=yes (允许匿名登陆)<br />
  dirmessage_enable=yes （切换目录时，显示目录下.message的内容）
  local_umask=022 (FTP上本地的文件权限，默认是077)
  connect_form_port_20=yes （启用FTP数据端口的数据连接）*
  xferlog_enable=yes （激活上传和下传的日志）
  xferlog_std_format=yes (使用标准的日志格式)
  ftpd_banner=XXXXX （欢迎信息）
  pam_service_name=vsftpd （验证方式）*
  listen=yes （独立的VSFTPD服务器）*
</pre>
		<p>功能：只能连接FTP服务器，不能上传和下传<br />注：其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加，是属于FTP的基本选项 </p>
		<a name=".E5.BC.80.E5.90.AF.E5.8C.BF.E5.90.8DFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E4.B8.8A.E4.BC.A0.E6.9D.83.E9.99.90">
		</a>
		<h3>开启匿名FTP服务器上传权限</h3>
		<p>在配置文件中添加以下的信息即可：<br /></p>
		<pre>  Anon_upload_enable=yes (开放上传权限)
  Anon_mkdir_write_enable=yes （可创建目录的同时可以在此目录中上传文件）
  Write_enable=yes (开放本地用户写的权限)
  Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
</pre>
		<a name=".E5.BC.80.E5.90.AF.E5.8C.BF.E5.90.8D.E6.9C.8D.E5.8A.A1.E5.99.A8.E4.B8.8B.E4.BC.A0.E7.9A.84.E6.9D.83.E9.99.90">
		</a>
		<h3>开启匿名服务器下传的权限</h3>
		<p>在配置文件中添加如下信息即可：<br /></p>
		<pre>  Anon_world_readable_only=no
</pre>
		<p>注：要注意文件夹的属性，匿名帐户是其它（other）用户要开启它的读写执行的权限<br />（R）读-----下传 （W）写----上传 （X）执行----如果不开FTP的目录都进不去 </p>
		<a name=".E6.99.AE.E9.80.9A.E7.94.A8.E6.88.B7FTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E8.BF.9E.E6.8E.A5.EF.BC.88.E7.8B.AC.E7.AB.8B.E6.9C.8D.E5.8A.A1.E5.99.A8.EF.BC.89">
		</a>
		<h3>普通用户FTP服务器的连接（独立服务器）</h3>
		<p>在配置文件中添加如下信息即可：<br /></p>
		<pre>  Local_enble=yes （本地帐户能够登陆）
  Write_enable=no （本地帐户登陆后无权删除和修改文件）
</pre>
		<p>功能：可以用本地帐户登陆vsftpd服务器，有下载上传的权限<br />注：在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传 </p>
		<a name=".E7.94.A8.E6.88.B7.E7.99.BB.E9.99.86.E9.99.90.E5.88.B6.E8.BF.9B.E5.85.B6.E5.AE.83.E7.9A.84.E7.9B.AE.E5.BD.95.EF.BC.8C.E5.8F.AA.E8.83.BD.E8.BF.9B.E5.AE.83.E7.9A.84.E4.B8.BB.E7.9B.AE.E5.BD.95">
		</a>
		<h3>用户登陆限制进其它的目录，只能进它的主目录</h3>
		<p>设置所有的本地用户都执行chroot<br /></p>
		<pre>  Chroot_local_user=yes （本地所有帐户都只能在自家目录）
</pre>
		<p>设置指定用户执行chroot<br /></p>
		<pre>  Chroot_list_enable=yes （文件中的名单可以调用）
  Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
</pre>
		<p>注意：vsftpd.chroot_list 是没有创建的需要自己添加，要想控制帐号就直接在文件中加帐号即可 </p>
		<a name=".E9.99.90.E5.88.B6.E6.9C.AC.E5.9C.B0.E7.94.A8.E6.88.B7.E8.AE.BF.E9.97.AEFTP">
		</a>
		<h3>限制本地用户访问FTP</h3>
		<pre>  Userlist_enable=yes (用userlistlai 来限制用户访问)
  Userlist_deny=no (名单中的人不允许访问)
  Userlist_file=/指定文件存放的路径/ （文件放置的路径）
</pre>
		<p>注：开启userlist_enable=yes匿名帐号不能登陆 </p>
		<a name=".E5.AE.89.E5.85.A8.E9.80.89.E9.A1.B9">
		</a>
		<h3>安全选项</h3>
		<pre>  Idle_session_timeout=600(秒) （用户会话空闲后10分钟）
  Data_connection_timeout=120（秒） （将数据连接空闲2分钟断）
  Accept_timeout=60（秒） （将客户端空闲1分钟后断）
  Connect_timeout=60（秒） （中断1分钟后又重新连接）
  Local_max_rate=50000（bite） （本地用户传输率50K）
  Anon_max_rate=30000（bite） （匿名用户传输率30K）
  Pasv_min_port=50000 （将客户端的数据连接端口改在
  Pasv_max_port=60000 50000—60000之间）
  Max_clients=200 （FTP的最大连接数）
  Max_per_ip=4 （每IP的最大连接数）
  Listen_port=5555 （从5555端口进行数据连接）
</pre>
		<a name=".E6.9F.A5.E7.9C.8B.E8.B0.81.E7.99.BB.E9.99.86.E4.BA.86FTP.2C.E5.B9.B6.E6.9D.80.E6.AD.BB.E5.AE.83.E7.9A.84.E8.BF.9B.E7.A8.8B">
		</a>
		<h3>查看谁登陆了FTP,并杀死它的进程</h3>
		<pre>  ps –xf |grep ftp
  kill 进程号
</pre>
		<p>
				<br />
		</p>
		<p>
				<br />
		</p>
		<a name="vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E9.85.8D.E7.BD.AE">
		</a>
		<h2>vsFTP服务器的配置</h2>
		<p>
				<strong>VSFTPD的高手篇</strong>
		</p>
		<p>版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 </p>
		<p>[原文出处 <a class="external" title="http://www.5ilinux.com/vsftp02.html" href="http://www.5ilinux.com/vsftp02.html">http://www.5ilinux.com/vsftp02.html</a>] </p>
		<p>我可不是高手！！！^_^我只不过是个菜鸟，尽我的能力写出了我这个菜鸟觉得的高手篇，所以有什么错误请大家指正哦！！！ </p>
		<p>环境：linux as 3.0 + vsftpd -1.2.0-4的系统架构，是在独立服务器下的哦！讨厌XINETD^_^ </p>
		<a name=".E9.85.8D.E7.BD.AE.E6.9C.AC.E5.9C.B0.E7.BB.84.E8.AE.BF.E9.97.AE.E7.9A.84FTP">
		</a>
		<h3>配置本地组访问的FTP</h3>
		<p>首先创建用户组 test和FTP的主目录 </p>
		<pre>  groupadd test
  mkdir /tmp/test
</pre>
		<p>然后创建用户 </p>
		<pre>  useradd -G test –d /tmp/test –M usr1
</pre>
		<p>注：G：用户所在的组 d：表示创建用户的自己目录的位置给予指定 </p>
		<p>M：不建立默认的自家目录，也就是说在/home下没有自己的目录 </p>
		<pre>  useradd –G test –d /tmp/test –M usr2
</pre>
		<p>接着改变文件夹的属主和权限 </p>
		<pre>  chown usr1.test /tmp/test ----这表示把/tmp/test的属主定为usr1
  chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么权限都没有
</pre>
		<p>这个实验的目的就是usr1有上传、删除和下载的权限 </p>
		<p>而usr2只有下载的权限没有上传和删除的权限 </p>
		<p>当然啦大家别忘了我们的主配置文件vsftpd.conf </p>
		<p>要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项是有的哦！ </p>
		<p>
				<br />
		</p>
		<a name=".E9.85.8D.E7.BD.AE.E7.8B.AC.E7.AB.8BFTP.E7.9A.84.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E9.9D.9E.E7.AB.AF.E5.8F.A3.E6.A0.87.E5.87.86.E6.A8.A1.E5.BC.8F.E8.BF.9B.E8.A1.8C.E6.95.B0.E6.8D.AE.E8.BF.9E.E6.8E.A5">
		</a>
		<h3>配置独立FTP的服务器的非端口标准模式进行数据连接</h3>
		<p>这个非常容易：在VSFTPD。CONF中添加 </p>
		<pre>  Listen_port=33333
</pre>
		<p>就可以了啦！ </p>
		<p>
				<br />
		</p>
		<a name=".E9.85.8D.E7.BD.AE.E5.8D.95.E7.8B.AC.E7.9A.84.E8.99.9A.E6.8B.9FFTP.EF.BC.8C.E4.BD.BF.E7.94.A8.E8.99.9A.E6.8B.9FFTP.E7.94.A8.E6.88.B7.EF.BC.8C.E5.B9.B6.E4.BD.BF.E5.BB.BA.E7.AB.8B.E7.9A.84.E5.9B.9B.E4.B8.AA.E5.B8.90.E6.88.B7.E4.B8.AD.E6.9C.89.E4.B8.8D.E5.90.8C.E7.9A.84.E6.9D.83.E9.99.90">
		</a>
		<h3>配置单独的虚拟FTP，使用虚拟FTP用户，并使建立的四个帐户中有不同的权限</h3>
		<p>（两个有读目录的权限，一个有浏览、上传、下载的权限，一个有浏览、下载、删除和改文件名的权限） </p>
		<a name="A.EF.BC.9A.E9.85.8D.E7.BD.AE.E7.BD.91.E5.8D.A1">
		</a>
		<h4>A：配置网卡</h4>
		<p>第一块网卡地址是10.2.3.4 掩码是255.255.0.0 </p>
		<pre>  ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up
</pre>
		<a name="B.EF.BC.9A.E5.86.99.E5.85.A5.2Fetc.2Fsysconfig.E4.B8.AD.EF.BC.88.E4.B8.BA.E4.BA.86.E9.87.8D.E8.B5.B7.E5.90.8EIP.E5.9C.B0.E5.9D.80.E4.B8.8D.E4.BC.9A.E4.B8.A2.E5.A4.B1.EF.BC.89">
		</a>
		<h4>B：写入/etc/sysconfig中（为了重起后IP地址不会丢失）</h4>
		<pre>  cd /etc/sysconfig/network-scripts
  cp ifcfg-eth0 ifcfg-eth0:1
  vi ifcfg-eth0:1在其中修改内容如下
  DEVICE=eth0:1
  BROADCAST=211.131.4.255
  HWADDR=该网卡的MAC地址
  IPADDR=211.131.4.253
  NETMASK=255.255.255.0
  NETWORK=211.131.4.0
  onBOOT=yes
  TYPE=Ethernet
  wq退出
</pre>
		<a name="C.EF.BC.9A.E8.BF.9B.E5.85.A5vsftpd.conf.E6.89.80.E5.9C.A8.E7.9A.84.E6.96.87.E4.BB.B6.E5.A4.B9">
		</a>
		<h4>C：进入vsftpd.conf所在的文件夹</h4>
		<pre>  cp vsftpd.conf vsftpd2.conf
</pre>
		<p>修改vsftpd.conf添加以下信息 </p>
		<pre>  Listen_address=10.2.3.4
</pre>
		<p>修改vsftpd2.conf添加以下信息 </p>
		<pre>  Listen_address=211.131.4.253
  Ftpd_banner=this is a virtual ftp test
</pre>
		<p>到此虚拟的FTP服务器建立好了 </p>
		<a name="D.EF.BC.9A.E5.BB.BA.E7.AB.8Blogins.txt">
		</a>
		<h4>D：建立logins.txt</h4>
		<pre>  vi /tmp/logins.txt
</pre>
		<p>添加入下信息： </p>
		<pre>  longlei------------用户名
  longlei------------密码
  zhangweibo
  zhangweibo
  jinhui
  jinhui
  lxp
  lxp
</pre>
		<p>格式要按照我的来哦，一个用户名，一个密码啦 </p>
		<a name="E.EF.BC.9A.E5.BB.BA.E7.AB.8B.E8.AE.BF.E9.97.AE.E8.80.85.E7.9A.84.E5.8F.A3.E4.BB.A4.E5.BA.93.E6.96.87.E4.BB.B6.2C.E7.84.B6.E5.90.8E.E4.BF.AE.E6.94.B9.E5.85.B6.E6.9D.83.E9.99.90">
		</a>
		<h4>E：建立访问者的口令库文件,然后修改其权限</h4>
		<pre>  db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db
</pre>
		<a name="F.EF.BC.9A.E8.BF.9B.E5.A6.82.2Fetc.2Fpam.d.2F.E4.B8.AD.E5.88.9B.E5.BB.BAftp.vu">
		</a>
		<h4>F：进如/etc/pam.d/中创建ftp.vu</h4>
		<p>在此文件中添加如下信息 </p>
		<pre>  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
</pre>
		<a name="G.EF.BC.9A.E5.9C.A8.2Fvar.2Fftp.2F.E5.88.9B.E5.BB.BA.E7.9B.AE.E5.BD.95.E5.B9.B6.E6.94.B9.E5.8F.98.E5.85.B6.E5.B1.9E.E6.80.A7.E5.92.8C.E5.AE.83.E7.9A.84.E5.B1.9E.E4.B8.BB">
		</a>
		<h4>G：在/var/ftp/创建目录并改变其属性和它的属主</h4>
		<pre>  useradd -d /var/ftp/test qiang
  chmod 700 /var/ftp/test
</pre>
		<p>在目录中添加test_file测试文件 </p>
		<a name="H.EF.BC.9A.E8.BF.9B.E5.85.A5vsftpd2.conf.E4.BF.AE.E6.94.B9.E5.85.B6.E4.B8.AD.E7.9A.84.E4.BF.A1.E6.81.AF">
		</a>
		<h4>H：进入vsftpd2.conf修改其中的信息</h4>
		<pre>  Listen_yes
  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=qiang------将虚拟用户映射为本地用户
  Listen_port=5555
  Max_client=10
  Max_per_ip=1
  Ftpd_banner=this is a virtual server and users
  Pam_service_name=ftp.vu
</pre>
		<p>注：在主配置文件中给的权限越低，在后面分用户管理的时候对拥护的权限划分的空间就越大，因为主配置文件最高的限制服务先读主配置文件，然后再读用户的配置文件 </p>
		<p>重起服务。到此虚拟USER就建好了 </p>
		<a name="I.EF.BC.9A.E5.9C.A8vsftpd.comf.E6.89.80.E5.9C.A8.E7.9A.84.E7.9B.AE.E5.BD.95.E4.B8.AD.E5.88.9B.E5.BB.BAvirtaul.E6.96.87.E4.BB.B6.E7.9B.AE.E5.BD.95.E5.B9.B6.E5.9C.A8.E6.96.87.E4.BB.B6.E7.9B.AE.E5.BD.95.E4.B8.AD.E5.88.9B.E5.BB.BA.E4.BB.A5.E4.BD.A0.E7.94.A8.E6.88.B7.E5.90.8D.E5.91.BD.E5.90.8D.E7.9A.84.E9.85.8D.E7.BD.AE.E6.96.87.E4.BB.B6">
		</a>
		<h4>I：在vsftpd.comf所在的目录中创建virtaul文件目录并在文件目录中创建以你用户名命名的配置文件</h4>
		<pre>  Longlei zhangweibo jinhui lxp
</pre>
		<p>在longlei中添加： </p>
		<pre>  Anon_world_readable_only=no
</pre>
		<p>在lxp中添加 </p>
		<pre>  Anon_world_readable_only=no
</pre>
		<p>这样此两个用户就有了浏览目录的权限了 </p>
		<p>在jinhui中添加 </p>
		<pre>  Anon_world_readable_only=no
  Write_enable=yes
  Anon_upload_enable=yes
</pre>
		<p>此用户就有了上传、下载和浏览的权限 </p>
		<p>在zhangweibo中添加 </p>
		<pre>  Anon_world_readable_only=no
  Write_enable=yes
  Anon_upload_enable=yes
  Anon_other_write_enable=yes
</pre>
		<p>此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限 </p>
		<a name="J.EF.BC.9A.E4.BF.AE.E6.94.B9vsftpd2.conf">
		</a>
		<h4>J：修改vsftpd2.conf</h4>
		<p>加入user_config_dir=/vsftpd.conf所在的目录/virtual </p>
		<p>重起服务器就搞定了 </p>
		<p>
				<br />
		</p>
		<a name="vsftpd.conf.E4.B8.AD.E7.9A.84.E6.89.80.E6.9C.89.E9.85.8D.E7.BD.AE.E4.BF.A1.E6.81.AF">
		</a>
		<h3>
				<strong>vsftpd.conf</strong>中的所有配置信息</h3>
		<p>
				<br />
		</p>
		<table style="POSITION: relative" align="center" border="1">
				<caption>
						<strong>vsftpd.conf</strong>的参数： </caption>
				<tbody>
						<tr>
								<td>Anonymous_enable=yes</td>
								<td>允许匿名登陆 </td>
						</tr>
						<tr>
								<td>Dirmessage_enable=yes</td>
								<td>切换目录时，显示目录下.message的内容 </td>
						</tr>
						<tr>
								<td>Local_umask=022</td>
								<td>FTP上本地的文件权限，默认是077 </td>
						</tr>
						<tr>
								<td>Connect_form_port_20=yes</td>
								<td>启用FTP数据端口的数据连接 * </td>
						</tr>
						<tr>
								<td>Xferlog_enable=yes</td>
								<td>激活上传和下传的日志 </td>
						</tr>
						<tr>
								<td>Xferlog_std_format=yes</td>
								<td>使用标准的日志格式 </td>
						</tr>
						<tr>
								<td>Ftpd_banner=XXXXX</td>
								<td>欢迎信息 </td>
						</tr>
						<tr>
								<td>Pam_service_name=vsftpd</td>
								<td>验证方式 * </td>
						</tr>
						<tr>
								<td>Listen=yes</td>
								<td>独立的VSFTPD服务器 * </td>
						</tr>
						<tr>
								<td>Anon_upload_enable=yes</td>
								<td>开放上传权限 </td>
						</tr>
						<tr>
								<td>Anon_mkdir_write_enable=yes</td>
								<td>可创建目录的同时可以在此目录中上传文件 </td>
						</tr>
						<tr>
								<td>Write_enable=yes</td>
								<td>开放本地用户写的权限 </td>
						</tr>
						<tr>
								<td>Anon_other_write_enable=yes</td>
								<td>匿名帐号可以有删除的权限 </td>
						</tr>
						<tr>
								<td>Anon_world_readable_only=no</td>
								<td>放开匿名用户浏览权限 </td>
						</tr>
						<tr>
								<td>Ascii_upload_enable=yes</td>
								<td>启用上传的ASCII传输方式 </td>
						</tr>
						<tr>
								<td>Ascii_download_enable=yes</td>
								<td>启用下载的ASCII传输方式 </td>
						</tr>
						<tr>
								<td>Banner_file=/var/vsftpd_banner_file</td>
								<td>用户连接后欢迎信息使用的是此文件中的相关信息 </td>
						</tr>
						<tr>
								<td>Idle_session_timeout=600(秒)</td>
								<td>用户会话空闲后10分钟 </td>
						</tr>
						<tr>
								<td>Data_connection_timeout=120（秒）</td>
								<td>将数据连接空闲2分钟断 </td>
						</tr>
						<tr>
								<td>Accept_timeout=60（秒）</td>
								<td>将客户端空闲1分钟后断 </td>
						</tr>
						<tr>
								<td>Connect_timeout=60（秒）</td>
								<td>中断1分钟后又重新连接 </td>
						</tr>
						<tr>
								<td>Local_max_rate=50000（bite）</td>
								<td>本地用户传输率50K </td>
						</tr>
						<tr>
								<td>Anon_max_rate=30000（bite）</td>
								<td>匿名用户传输率30K </td>
						</tr>
						<tr>
								<td>Pasv_min_port=50000</td>
								<td>将客户端的数据连接端口改在 </td>
						</tr>
						<tr>
								<td>Pasv_max_port=60000</td>
								<td>50000—60000之间 </td>
						</tr>
						<tr>
								<td>Max_clients=200</td>
								<td>FTP的最大连接数 </td>
						</tr>
						<tr>
								<td>Max_per_ip=4</td>
								<td>每IP的最大连接数 </td>
						</tr>
						<tr>
								<td>Listen_port=5555</td>
								<td>从5555端口进行数据连接 </td>
						</tr>
						<tr>
								<td>Local_enble=yes</td>
								<td>本地帐户能够登陆 </td>
						</tr>
						<tr>
								<td>Write_enable=no</td>
								<td>本地帐户登陆后无权删除和修改文件 </td>
						</tr>
						<tr>
								<td>下面这是一组</td>
								<td> </td>
						</tr>
						<tr>
								<td>Chroot_local_user=yes</td>
								<td>本地所有帐户都只能在自家目录 </td>
						</tr>
						<tr>
								<td>Chroot_list_enable=yes</td>
								<td>文件中的名单可以调用 </td>
						</tr>
						<tr>
								<td>Chroot_list_file=/任意指定的路径/vsftpd.chroot_list</td>
								<td>前提是chroot_local_user=no </td>
						</tr>
						<tr>
								<td>这又是一组</td>
								<td> </td>
						</tr>
						<tr>
								<td>Userlist_enable=yes</td>
								<td>在指定的文件中的用户不可以访问 </td>
						</tr>
						<tr>
								<td>Userlist_deny=yes</td>
								<td> </td>
						</tr>
						<tr>
								<td>Userlist_file=/指定的路径/vsftpd.user_list </td>
						</tr>
						<tr>
								<td>又开始单的了</td>
								<td> </td>
						</tr>
						<tr>
								<td>Banner_fail=/路径/文件名</td>
								<td>连接失败时显示文件中的内容 </td>
						</tr>
						<tr>
								<td>Ls_recurse_enable=no</td>
								<td> </td>
						</tr>
						<tr>
								<td>Async_abor_enable=yes</td>
								<td> </td>
						</tr>
						<tr>
								<td>one_process_model=yes</td>
								<td> </td>
						</tr>
						<tr>
								<td>Listen_address=10.2.2.2</td>
								<td>将虚拟服务绑定到某端口 </td>
						</tr>
						<tr>
								<td>Guest_enable=yes</td>
								<td>虚拟用户可以登陆 </td>
						</tr>
						<tr>
								<td>Guest_username=所设的用户名</td>
								<td>将虚拟用户映射为本地用户 </td>
						</tr>
						<tr>
								<td>User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹</td>
								<td>指定不同虚拟用户配置文件的路径 </td>
						</tr>
						<tr>
								<td>又是一组</td>
								<td> </td>
						</tr>
						<tr>
								<td>Chown_uploads=yes</td>
								<td>改变上传文件的所有者为root </td>
						</tr>
						<tr>
								<td>Chown_username=root</td>
								<td> </td>
						</tr>
						<tr>
								<td>又是一组</td>
								<td> </td>
						</tr>
						<tr>
								<td>Deny_email_enable=yes</td>
								<td>是否允许禁止匿名用户使用某些邮件地址 </td>
						</tr>
						<tr>
								<td>Banned_email_file=//任意指定的路径/xx/</td>
								<td> </td>
						</tr>
						<tr>
								<td>又是单的</td>
								<td> </td>
						</tr>
						<tr>
								<td>Pasv_enable=yes</td>
								<td>服务器端用被动模式 </td>
						</tr>
						<tr>
								<td>User_config_dir=/任意指定的路径//任意文件目录</td>
								<td>指定虚拟用户存放配置文件的路径 </td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
		</p>
		<a name="vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E7.BB.B4.E6.8A.A4">
		</a>
		<h2>vsFTP服务器的维护</h2>
		<p>现在这里还没有关于维护vsftp服务器的资料。欢迎大家编辑2 </p>
		<a name="vsFTP.E4.BD.BF.E7.94.A8.E7.9A.84.E4.B8.80.E4.BA.9B.E8.A1.A5.E5.85.85">
		</a>
		<h2>vsFTP使用的一些补充</h2>
		<a name=".E8.A1.A5.E5.85.85.E4.B8.80.EF.BC.9A.E5.A6.82.E4.BD.95.E6.9C.89.E9.80.89.E6.8B.A9.E7.9A.84.E6.8A.8A.E7.94.A8.E6.88.B7.E9.99.90.E5.88.B6.E5.9C.A8.E5.AE.B6.E7.9B.AE.E5.BD.95.E4.B8.AD.E5.91.A2.EF.BC.9F">
		</a>
		<h3>补充一：如何有选择的把用户限制在家目录中呢？</h3>
		<p>我们要自己建一个文件，在/etc目录中 </p>
		<pre>  #touch /etc/vsftpd.chroot_list
</pre>
		<p>以beinan和nanbei这两个用户限制在他们所在的家目录中，而其它的FTP用户不做此限制。 </p>
		<p>在vsftpd.chroot_list这个文件中，把beinan和nanbei添上去就行，注意，每个用户占一行。 </p>
		<pre>  beinan
  nanbei
</pre>
		<p>然后改/etc/vsftpd/vsftpd.conf文件，找如下的两行 </p>
		<pre>  #chroot_list_enable=YES
  #chroot_list_file=/etc/vsftpd.chroot_list
</pre>
		<p>把前面的#号去掉，也就是这样的 </p>
		<pre>  chroot_list_enable=YES
  chroot_list_file=/etc/vsftpd.chroot_list
</pre>
		<p>如果没有这样的两行，就可以自己添加上去也是一样的。 </p>
		<p>设置好后，重新vsFTPD服务器。 </p>
		<p>补充一之补充：如何把系统内所有的FTP用户都限制在家目录中呢？？经juliaugong兄的提示，我查找了vsFTPd的洋文说明，证明这个选项是一刀切的解决所有的用户都能限制在家目录中 </p>
		<p>我们可以通过更改vsftpd.conf文件，加入如下的一行 </p>
		<pre>  chroot_local_user=YES
</pre>
		<p>改完配制文件，不要忘记重启vsFTPd服务器 </p>
		<p>
				<br />
		</p>
		<pre>  [root@linuxsir001 root]# /etc/init.d/vsftpd restart
  关闭 vsftpd： [ 确定 ]
  为 vsftpd 启动 vsftpd： [ 确定 ]
  [root@linuxsir001 root]#
</pre>
		<a name=".E8.A1.A5.E5.85.85.E4.BA.8C.EF.BC.9A.E6.89.93.E5.BC.80vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84.E6.97.A5.E5.BF.97.E5.8A.9F.E8.83.BD">
		</a>
		<h3>补充二：打开vsFTP服务器的日志功能</h3>
		<p>把下面xferlog_file前面的#号对掉，也就是把vsftp的log功能打开，这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能，这对于我们来说是极为重要的。 </p>
		<pre>  #xferlog_file=/var/log/vsftpd.log
</pre>
		<a name=".E8.A1.A5.E5.85.85.E4.B8.89.EF.BC.9A.E5.A6.82.E4.BD.95.E8.AE.A9.E7.BB.91.E5.AE.9AIP.E5.88.B0vsFTP.EF.BC.9F">
		</a>
		<h3>补充三：如何让绑定IP到vsFTP？</h3>
		<p>也就是说，如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP，外部是没有办法访问的。如果绑定的是对外服务的IP，内网也只能通过对外服务的IP来访问FTP </p>
		<p>在/etc/vsftpd/vsftpd.conf中加一行，以我的局域网为例，请看第一帖中的操作环境，这样外网就不能访问我的FTP了，内网也可能通过192.168.0.2来访问FTP </p>
		<pre>  listen_address=192.168.0.2
</pre>
		<p>加完后，要重启vsFTP服务器 </p>
		<pre>  [root@linuxsir001 root]# /etc/init.d/vsftpd restart
  关闭 vsftpd： [ 确定 ]
  为 vsftpd 启动 vsftpd： [ 确定 ]
  [root@linuxsir001 root]#
</pre>
		<a name=".E8.A1.A5.E5.85.85.E5.9B.9B.EF.BC.9A.E5.A6.82.E4.BD.95.E8.AE.A9vsFTP.E6.9C.8D.E5.8A.A1.E5.99.A8.E9.99.90.E5.88.B6.E9.93.BE.E6.8E.A5.E6.95.B0.EF.BC.8C.E4.BB.A5.E5.8F.8A.E6.AF.8F.E4.B8.AAIP.E6.9C.80.E5.A4.A7.E7.9A.84.E9.93.BE.E6.8E.A5.E6.95.B0.EF.BC.9F.EF.BC.9F">
		</a>
		<h3>补充四：如何让vsFTP服务器限制链接数，以及每个IP最大的链接数？？</h3>
		<p>答：应该改vsFTP服务器的配制文件vsftpd.conf，加入下面的两行： </p>
		<pre>  max_clients=数字
  max_per_ip=数字
</pre>
		<p>举例：我想让我的vsFTP最大支持链接数为100个，每个IP，最多能支持5个链接，所以我应该在vsftpd.conf中加上如下的两行： </p>
		<pre>  max_clients=100
  max_per_ip=5
</pre>
		<p>改好了配制文件，不要忘记启动vsftp服务器。 </p>
		<p>
				<br />
		</p>
		<a name=".E8.A1.A5.E5.85.85.E4.BA.94.EF.BC.9A.E5.A6.82.E4.BD.95.E9.99.90.E5.88.B6.E4.B8.8B.E8.BD.BD.E7.9A.84.E9.80.9F.E5.BA.A6.EF.BC.9F">
		</a>
		<h3>补充五：如何限制下载的速度？</h3>
		<p>anon_max_rate=数字 注：这是匿名的下载速度 local_max_rate=数字 注：这是vsFTP服务器上普通用户的下载速度 </p>
		<p>注：这个数字的单位是字节，所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以80KB下载，所以这个数字应该是1024x80=81920 所以我们要在vsftpd.conf中加入下面的两行 </p>
		<pre>  anon_max_rate=81920
  local_max_rate=81920
</pre>
		<p>不要忘记重启vsftpd服务 </p>
		<a name=".E8.A1.A5.E5.85.85.E5.85.AD.EF.BC.9A.E6.88.91.E7.9A.84.E7.A1.AC.E7.9B.98.E7.A9.BA.E9.97.B4.E6.9C.89.E9.99.90.EF.BC.8C.E6.80.8E.E4.B9.88.E5.8A.9E.EF.BC.9F">
		</a>
		<h3>补充六：我的硬盘空间有限，怎么办？</h3>
		<p>我的硬盘空间有限，如何把帐号ftp默认的路径/var/ftp更改到别处？或者是，我的linux所有的目录都放在/根分区，因为空间紧张，我能否把ftp这个用户的默认路径放到别的分区？ </p>
		<p>可以，应该如下操作! </p>
		<p>首先要把ftp这个用户删除 </p>
		<pre>  #userdel -r ftp 
</pre>
		<p>会有错误信息，不过不用理，这是正常的。 </p>
		<p>然后我们再把这个用户添加上，比如我想为帐号ftp的家目录设置在/mnt/LinG/ftp，我们就可以如下操作 </p>
		<pre>  [root@linuxsir001 root]# mkdir /mnt/LinG
  [root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp
</pre>
		<p>仅仅是这样做还不行，因为这样还是不能让匿名用户找到它的家目录，所以我们必须改变/mnt/LinG/ftp这个目录的权限。 </p>
		<pre>  [root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/
  [root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/
</pre>
		<p>
				<br />
		</p>
		<a name=".E8.A1.A5.E5.85.85.E4.B8.83.EF.BC.9A.E5.A6.82.E4.BD.95.E5.AE.9A.E5.88.B6.E6.AC.A2.E8.BF.8E.E4.BF.A1.E6.81.AF">
		</a>
		<h3>补充七：如何定制欢迎信息</h3>
		<p>如何在我们登入有些FTP之后，会出现类似：欢迎您来到LinuxSir FTP，在这里，您会得到最真诚的帮助，如果有什么问题和建议，请来信，多谢。 </p>
		<p>实现这个并不难，我们可以查看vsftpd.cof文件中，是否有这行。 </p>
		<pre>  dirmessage_enable=YES
</pre>
		<p>如果没有就加上，如果dirmessage_enable=YES前面有#号，就把#号去掉。 </p>
		<p>然后我们制定一个.message文件，写上您想要写的东西，比如是.message的内容是如下的： </p>
		<pre>  欢迎您来到LinuxSir FTP！
  在这里，您会得到最真诚的帮助；
  如果有什么问题和建议，请来信，多谢。
</pre>
		<p>我们可以用编辑器来写这个.message，我想这个过程就不用说了吧。 </p>
		<p>然后我们把.message这个文件复制到各个用户的家目录中。比如我的FTP的一个用户是beinan，这个用户所在的家目录是/home/beinan </p>
		<p>我们就要把.message放在/home/beinan这个目录下。如果系统用户ftp，他的目录就是/var/ftp这个目录，这个是默认的，当匿名用户登入时就访问的是/var/ftp这个目录。我们要让匿名用户能看到欢迎信息。就要把.message放在/var/ftp目录中。其它的用户，也无非就是类似的操作。 </p>
		<p>
				<br />
		</p>
		<a name=".E8.A1.A5.E5.85.85.E5.85.AB.EF.BC.9A.E5.A6.82.E4.BD.95.E5.AE.9E.E7.8E.B0.E8.99.9A.E6.8B.9F.E8.B7.AF.E5.BE.84.EF.BC.9F">
		</a>
		<h3>补充八：如何实现虚拟路径？</h3>
		<p>比如： /home/a 映射为<a class="external" title="ftp://localhost/a" href="ftp://localhost/a">ftp://localhost/a</a> /home/b/c 则为<a class="external" title="ftp://localhost/c" href="ftp://localhost/c">ftp://localhost/c</a></p>
		<p>其实这个不能说是vsFTPd的内容，其实我们早就接触过了，可能我们没有注意，我们可以通过如下的方法来实现。 </p>
		<pre>  #mount --bind [原有的目录] [新目录]
</pre>
		<p>比如我的ftp的默认目录是/var/ftp，我想把/mnt/LinG/WinSoft文件夹，映射到/var/ftp目录中，我就如下操作 </p>
		<p>我们要先在/var/ftp目录中建一个目录 </p>
		<pre>  #mkdir /var/ftp/WinSoft
</pre>
		<p>然后执行mount命令 </p>
		<pre>  #mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
</pre>
		<p>这样就OK了。 </p>
		<p>
				<br />
		</p>
		<a name=".E8.A1.A5.E5.85.85.E4.B9.9D.EF.BC.9A.E5.A6.82.E4.BD.95.E4.B8.8A.E5.8C.BF.E5.90.8D.E8.AE.BF.E9.97.AE.E3.80.81.E4.B8.8A.E4.BC.A0.EF.BC.8C.E5.B9.B6.E6.94.AF.E6.8C.81.E4.B8.8B.E8.BD.BD.E5.92.8C.E6.89.A7.E8.A1.8C.EF.BC.9F">
		</a>
		<h3>补充九：如何上匿名访问、上传，并支持下载和执行？</h3>
		<p>在默认的情况下，vsftp是不支持匿名用户的访问的，所以我们要自己打开相应的选项。现在我针对这个问题，我们要打开如下的选项。 </p>
		<pre>  anonymous_enable=YES 注：允许匿名访问
  anon_upload_enable=YES 注：允许上传
  anon_mkdir_write_enable=YES 注：允许建立相应的目录
  anon_umask=022 把上传到FTP的文件或者目录改变权限
</pre>
		<p>当然打开这些选项还是不行的，我们还要让匿名写入文件的上一级目录有写入权，以我所做的FTP为例，我所做的FTP的匿名访问的目录是/var/ftp，在vsFTPd中，/var/ftp这个目录是不能让匿名用户有写入权限的，这是为了安全考虑，所以我们必须自己在/var/ftp目录中建一个目录，让这个目录有写入权。 </p>
		<p>比如：我在/var/ftp目录建一个upload目录，然后把它的权限设置成777，这样匿名用户就能写入了。 </p>
		<pre>  #mkdir /var/ftp/upload 
  #chmod 777 /var/ftp/upload
</pre>
		<p>改了一系列的文件，不要忘记重启vsFTPd服务器 </p>
		<p>我是用standalone模式的，当然用下面的方法 </p>
		<pre>  [root@linuxsir001 root]# service vsftpd restart
  关闭 vsftpd： [ 确定 ]
  为 vsftpd 启动 vsftpd： [ 确定 ]
  [root@linuxsir001 root]#
</pre>
		<p>如果您用的是xinetd模式来启动vsFTPd，我们要重启xinetd服务器 </p>
		<pre>  [root@linuxsir001 root]# service xinetd restart
  停止 xinetd： [ 确定 ]
  启动 xinetd： [ 确定 ]
  [root@linuxsir001 root]# ]
</pre>
		<p>
				<br />
		</p>
		<a name=".E8.A1.A5.E5.85.85.E5.8D.81.EF.BC.9A.E9.80.9A.E8.BF.87pam.E8.AE.A4.E8.AF.81.E6.96.B9.E5.BC.8F.EF.BC.8C.E6.B7.BB.E5.8A.A0.E8.99.9A.E6.8B.9F.E7.94.A8.E6.88.B7">
		</a>
		<h3>补充十：通过pam认证方式，添加虚拟用户</h3>
		<p>
				<br />通过pam认证，用db_load添加用户，是真正的虚拟用户。现在我们简单的介绍一下，通过以后的学习，我们再深入补充： </p>
		<p>1。在/etc/pam.d/目录中创建一个文件ftp </p>
		<pre>  [root@linuxsir001 root]# touch /etc/pam.d/ftp
</pre>
		<p>2。在/etc/pam.d/ftp里面加上如下的两行 </p>
		<pre>  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
</pre>
		<p>3。创建一系统的用户名用密码的文件logins.txt </p>
		<pre>  [root@linuxsir001 root]# touch logins.txt
</pre>
		<p>在logins.txt文件中，输入如下的内容。这个内容您可以自己来定。比如我下面的。其实linuxsir007是FTP的虚拟用户名，123456是linuxsir007的密码；linuxsir008是虚拟用户名，234567是linuxsir008的密码，以此类推，您想加入几个就是几个；下面是我添加的FTP的虚拟用户名和密码。 </p>
		<pre>  linuxsir007
  123456
  linuxsir008
  234567
  linuxsir009
  567890
  linuxsir010
  678901
  linuxsir011
  789012
</pre>
		<p>4。创建一个真实的用户名linuxsir006，这个linuxsir006的用户，所在的家目录由您来定。我在这里不多说了。我是按系统默认的来添加的。 </p>
		<pre>  [root@linuxsir001 root]# useradd linuxsir006
</pre>
		<p>5。把/etc/hosts复制到/home/linuxsir006，并改变它的属主 </p>
		<pre>  [root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts
  [root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts 
</pre>
		<p>6。通过db_load来创建虚拟用户的库文件。我们在前面建的logins.txt文件，我是放在了/root用户目录下。所以咱们得把目录切换到/root目录来创建虚拟用户的库文件。 </p>
		<pre>  [root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
</pre>
		<p>7。更改vsftpd.conf文件，加入如下的几行 </p>
		<pre>  pam_service_name=ftp
  guest_enable=YES
  guest_username=linuxsir006
  anon_world_readable_only=NO
</pre>
		<p>8。重启vsFTPd服务器；改了一系列的文件，不要忘记重启vsFTPd服务器 </p>
		<p>我是用standalone模式的，当然用下面的方法 </p>
		<pre>  [root@linuxsir001 root]# service vsftpd restart
  关闭 vsftpd： [ 确定 ]
  为 vsftpd 启动 vsftpd： [ 确定 ]
  [root@linuxsir001 root]#
</pre>
		<p>如果您用的是xinetd模式来启动vsFTPd，我们要重启xinetd服务器 </p>
		<pre>  [root@linuxsir001 root]# service xinetd restart
  停止 xinetd： [ 确定 ]
  启动 xinetd： [ 确定 ]
  [root@linuxsir001 root]#
</pre>
		<p>9。如果您想让用户登入FTP时，登入成功的相应的信息，请把您制作的.message复制到您的用户的家目录中，这方面的请参考前面的补充。 </p>
		<p>10。测试： </p>
		<pre>  [root@linuxsir001 root]# ftp 192.168.0.1
  Connected to 192.168.0.1.
  220 (vsFTPd 1.1.3)
  530 Please login with USER and PASS.
  530 Please login with USER and PASS.
  KERBEROS_V4 rejected as an authentication type
  Name (192.168.0.1:root): linuxsir007
  331 Please specify the password.
  Password:
  230-欢迎光临LinuxSir自由FTP
  230-在这里，您将得到最真诚的帮助！
  230-本站限度为30KB！
  230-每个IP限四个线程
  230-请大家遵守FTP的有关规定。
  230-多谢合作！
  230-
  230-LinuxSir管理部
  230 Login successful. Have fun.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp&gt; ls
  227 Entering Passive Mode (192,168,0,1,85,171)
  150 Here comes the directory listing.
  -rw-r--r-- 1 ftp ftp 174 Jun 01 12:59 hosts
  drwxr-xr-x 3 ftp ftp 4096 Jun 01 13:29 linuxsir008
  drwxr-xr-x 2 ftp ftp 4096 Jun 01 13:24 sun
  226 Directory send OK.
  ftp&gt;
</pre>
		<a name=".E8.A1.A5.E5.85.85.E5.8D.81.E4.B8.80.EF.BC.9A.E5.A6.82.E4.BD.95.E6.8A.8A.E7.B3.BB.E7.BB.9F.E9.BB.98.E8.AE.A4.E7.94.A8standalone.E5.90.AF.E5.8A.A8.E6.94.B9.E4.B8.BA.E7.94.A8xinetd.E5.90.AF.E5.8A.A8.EF.BC.9F">
		</a>
		<h3>补充十一：如何把系统默认用standalone启动改为用xinetd启动？</h3>
		<p>如何把Redhat 9.0中系统默认安装的vsftpd-1.1.3-8.i386.rpm，系统默认vsFTPd是用standalone启动方式 ，改为xinetd启动方式 ？如果是用源码包安装的，安装后就是xinetd模式，如果是用RPM包安装的，在Redhat 9.0中，应该用下面的方法来解决。 </p>
		<p>1.在/etc/xinetd.d/目录中创建一个文件vsftpd </p>
		<pre>  [root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd
</pre>
		<p>/etc/xinetd.d/vsftpd内容如下： </p>
		<pre>  service ftp
  {
  socket_type = stream
  wait = no
  user = root
  server = /usr/sbin/vsftpd
  # server_args =
  # log_on_success += DURATION USERID
  # log_on_failure += USERID
  nice = 10
  disable = no
  }
</pre>
		<p>2。复制vsftpd.conf到/etc/目录下，因为xinetd对vsFTPd配制文件应该在/etc目录下，所以我们就必须把这个文件复制到/etc目录下，否则会出现系统中local用户无法登入，也就是说，不复制这个文件会出现ftp非匿名用户无法访问，只能用匿名用户访问。 </p>
		<pre>  [root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf
</pre>
		<p>3。更改配制文件/etc/vsftpd.conf，把如下的项注掉：也就是把 </p>
		<pre>  listen=YES
</pre>
		<p>改为 </p>
		<pre>  #listen=YES
</pre>
		<p>或者是把这行删除也行。 </p>
		<p>4。把/etc/init.d/vsftpd这个文件删除。其实最好的备份到别处，因为我们有时实验来实验去，可能还会转到standalone模式启动。我就直接移动到别的目录，比如是/root下面的backup目录。 </p>
		<p>
				<br />
		</p>
		<pre>  [root@linuxsir001 root]#mkdir /root/backup
  [root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup
</pre>
		<p>5。运行ntsysv，把vsftpd的服务取消 </p>
		<pre>  [root@linuxsir001 root]#ntsysv
  [ ] vsftpd 
</pre>
		<p>6。重启xinetd服务 </p>
		<pre>  [root@linuxsir001 root]# service xinetd restart
</pre>
		<!-- end content --> <br /><br /><p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=880086</p><img src ="http://www.cnitblog.com/applezk/aggbug/15246.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:09 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下软件安装详解</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15244.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 10:05:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15244.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15244.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15244.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15244.html</trackback:ping><description><![CDATA[在Windows下安装软件时，只需用鼠标双击软件的安装程序，或者用Zip等解压缩软件解压缩即可安装。在Linux下安装软件对初学者来说，难度高于Windows下软件安装。下面我就详细讲解Linux下如何安装软件。 <br /><br />　　先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式，现在许多Linux发行版本都使用；后缀为.deb是Debain Linux提供的一种包封装格式；后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的；后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式，进而了解软件安装。 <br /><br />　　RPM格式软件包的安装 <br /><br />　　1.简介<br />　　几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比，软件包管理易于安装和卸载；易于更新已安装的软件包；易于保护配置文件；易于跟踪已安装文件。 <br /><br />　　RPM全称是Red Hat Package Manager（Red Hat包管理器）。RPM本质上就是一个包，包含可以立即在特定机器体系结构上安装和运行的Linux软件。RPM示意图见图1。 <br /><br /><img alt="" src="http://www.pconline.com.cn/pcjob/system/linux/others/0507/pic/fgrkds.jpg" border="0" /><br /><br /><br />　　大多数Linux RPM软件包的命名有一定的规律，它遵循名称-版本-修正版-类型－MYsoftware-1.2 -1.i386.rpm 。 <br /><br />　　2.安装RPM包软件 <br />　　＃　rpm -ivh MYsoftware-1.2 -1.i386.rpm <br /><br />　　RPM命令主要参数： <br /><br />　　-i 安装软件。<br />　　-t 测试安装，不是真的安装。 <br />　　-p 显示安装进度。<br />　　-f 忽略任何错误。<br />　　-U 升级安装。<br />　　-v 检测套件是否正确安装。<br />　　<br /><br />　　这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。 <br /><br />　　3.卸载软件 <br />　　＃　rpm -e 软件名 <br /><br />　　需要说明的是，上面代码中使用的是软件名，而不是软件包名。例如，要卸载software-1.2.-1.i386.rpm这个包时，应执行：<br />　　＃rpm -e software <br /><br />4.强行卸载RPM包<br />　　有时除去一个RPM是不行的，尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息： <br /><br />　　＃# rpm -e xsnow<br />　　error: removing these packages would break dependencies:<br />　　/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1<br />　　<br /><br />　　在这种情况下，可以用--force选项重新安装xsnow： <br /><br />　　＃# rpm -ivh --force xsnow-1.41-1.i386.rpm<br />　　xsnow<br />　　<br /><br />　　这里推荐使用工具软件Kleandisk，用它可以安全彻底清理掉不再使用的RPM包。<br /><br />　　5.安装.src.rpm类型的文件<br />　　目前RPM有两种模式，一种是已经过编码的（i386.rpm），一种是未经编码的（src.rpm）。<br />　　rpm --rebuild Filename.src.rpm <br /><br />　　这时系统会建立一个文件Filenamr.rpm，在/usr/src/redflag/RPMS/子目录下，一般是i386，具体情况和Linux发行版本有关。然后执行下面代码即可：<br />　　rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm <br /><br />　　使用deb打包的软件安装 <br /><br />　　deb是Debian Linux提供的一个包管理器，它与RPM十分类似。但由于RPM出现得早，并且应用广泛，所以在各种版本的Linux中都常见到，而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰，缺点是只在Debian Linux发行版中才能见到这个包管理工具。 <br /><br />　　1. 安装<br />　　＃　dpkg -i MYsoftware-1.2.-1.deb <br /><br />　　2. 卸载<br />　　＃　dpkg -e MYsoftware <br /><br />　　使用源代码进行软件安装 <br /><br />　　和RPM安装方式相比，使用源代码进行软件安装会复杂一些，但是用源代码安装软件是Linux下进行软件安装的重要手段，也是运行Linux的最主要的优势之一。使用源代码安装软件，能按照用户的需要选择定制的安装方式进行安装，而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外，仍然有一些软件程序只能从源代码处进行安装。 <br /><br />　　现在有很多地方都提供源代码包，到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件，如Sendmail，可以从商业网站处下载源代码软件包（如http://www.sendmail.org ）。一般的软件包，可从开发者的Web站点下载。下面介绍一下安装步骤： <br /><br />　　1.解压数据包<br />　　源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同，见表1。 <br /><img alt="" src="http://www.pconline.com.cn/pcjob/system/linux/others/0507/pic/fgrkds2.jpg" border="0" /><br />　　<br />　　2.编译软件<br />　　成功解压缩源代码文件后，进入解包的目录。在安装前阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令，但是有时在阅读这些文件时能发现一些重要的区别。例如，有些软件包含一个可以安装的安装脚本程序（.sh）。在安装前阅读这些说明文件，有助于安装成功和节约时间。 <br /><br />　　在安装软件以前要成为root用户。实现这一点通常有两种方式：在另一台终端以root用户登录，或者输入“su”，此时系统会提示输入root用户的密码。输入密码以后，就将一直拥有root用户的权限。如果已经是root用户，那就可以进行下一步。 <br /><br />通常的安装方法是从安装包的目录执行以下命令： <br /><br />　　gunzip soft1.tar.gz<br />　　cd soft1<br />　　＃. /configure ＃配置＃<br />　　make ＃调用make＃<br />　　make install ＃安装源代码＃<br />　　<br /><br />　　删除安装时产生的临时文件：<br />　　＃make clean <br /><br />　　卸载软件：<br />　　＃make uninstall <br /><br />　　有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能，则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中，往往很难把它删除干净，应该在编译前进行配置。 <br /><br />　　.bin文件安装 <br /><br />　　扩展名为.bin文件是二进制的，它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包，例如，流媒体播放器RealONE。如果安装过RealONE的Windows版的话，那么安装RealONE for Linux版本(文件名：r1p1_linux22_libc6_i386_a1.bin)就非常简单了：<br />　　＃chmod +x r1p1_linux22_libc6_i386_a1.bin<br />　　./ r1p1_linux22_libc6_i386_a1.bin <br /><br />　　接下来选择安装方式，有普通安装和高级安装两种。如果不想改动安装目录，就可选择普通安装，整个安装过程几乎和在Windwos下一样。 <br /><br />　　.bin文件的卸载，以RealONE for Linux为例，如果采用普通安装方式的话，在用户主目录下会有Real和Realplayer9两个文件夹，把它们删除即可。 <br /><br />　　Linux绿色软件 <br /><br />　　Linux也有一些绿色软件，不过不是很多。Linux系统提供一种机制：自动响应软件运行进程的要求,为它设定好可以马上运行的环境。这种机制可以是一种接口，或者是中间件。程序员编写的程序可以直接拷贝分发，不用安装，只要点击程序的图标，访问操作系统提供的接口，设定好就可以工作。若要删除软件，直接删除就可以,不用链接文件。这是最简单的软件安装、卸载方式。 <br /><br />　　上面介绍了Linux软件安装的方法，对于Linux初学者来说，RPM安装是一个不错的选择。如果想真正掌握Linux系统，源代码安装仍然是Linux下软件安装的重要手段。<br /><img src ="http://www.cnitblog.com/applezk/aggbug/15244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 18:05 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何将linux的一个用户添加到某一组group中</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15242.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 09:52:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15242.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15242.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15242.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15242.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15242.html</trackback:ping><description><![CDATA[我现在想把用户shaoxc添加到组ryouka中，其命令是什么？？？<br /><br /><br /><br />useradd -g ryouka shaoxc<br /><br />if exist shaoxc,use<br />usermod -g ryouka shaoxc<img src ="http://www.cnitblog.com/applezk/aggbug/15242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 17:52 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux添加管理员权限用户 进程命令</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15241.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 09:51:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15241.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15241.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15241.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15241.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15241.html</trackback:ping><description><![CDATA[
		<p>1、管理员登录后useradd  username</p>
		<p>2、passwd username 给用户username建密码</p>
		<p>3、以username登录</p>
		<p>4、#su</p>
		<p>
				<font color="#ff0000"> ps -aux 查看进程</font>
		</p>
		<p>
				<font color="#ff0000">ps -aux|grep http 查看进程http相关</font>
		</p>
		<p>
				<font color="#ff0000">more /etc/passwd 查看用户</font>
		</p>
		<p>
				<font color="#ff0000">cat /etc/passwd |cut -f 1 -d : 查看系统有哪些用户</font>
		</p>
		<p>
				<font color="#ff0000">w 查看当前登录用户</font>
		</p>
<img src ="http://www.cnitblog.com/applezk/aggbug/15241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 17:51 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux常用命令</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15240.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 09:50:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15240.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15240.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15240.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15240.html</trackback:ping><description><![CDATA[1.Linux进入与退出系统 <br />进入Linux系统：<br />必须要输入用户的账号，在系统安装过程中可以创建以下两种帐号：<br />　　1．root--超级用户帐号（系统管理员），使用这个帐号可以在系统中做任何事情。<br />　　2．普通用户--这个帐号供普通用户使用，可以进行有限的操作。<br />　　一般的Linux使用者均为普通用户，而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务，建议不要使用超级用户帐号，以免无意中破坏系统。影响系统的正常运行。<br />　　用户登录分两步：第一步，输入用户的登录名，系统根据该登录名识别用户；第二步，输入用户的口令，该口令是用户自己设置的一个字符串，对其他用户是保密的，是在登录时系统用来辨别真假用户的关键字。<br />　　当用户正确地输入用户名和口令后，就能合法地进入系统。屏幕显示： <br />[root@loclhost /root] # <br /><br />这时就可以对系统做各种操作了。注意超级用户的提示符是“#”，其他用户的提示符是“$”。<br /><br />修改口令<br />　　为了更好的保护用户帐号的安全，Linux允许用户随时修改自己的口令，修改口令的命令是passwd，它将提示用户输入旧口令和新口令，之后还要求用户再次确认新口令，以避免用户无意中按错键。如果用户忘记了口令，可以向系统管理员申请为自己重新设置一个。<br /><br />虚拟控制台<br />　　Linux是一个真正的多用户操作系统，它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录，这是因为Linux和UNIX一样，提供了虚拟控制台的访问方式，允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现，通常使用F1-F6例如，用户登录后，按一下Alt-F2键，用户又可以看到"login:"提示符，说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键，就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作，真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时，切换到另一虚拟控制台开始另一项工作。<br /><br />退出系统<br />　　不论是超级用户，还是普通用户，需要退出系统时，在shell提示符下，键入exit命令即可。<br /><br />Linux文件的复制、删除和移动命令 <br /><br />cp命令 <br />该命令的功能是将给出的文件或目录拷贝到另一文件或目录中，同MSDOS下的copy命令一样，功能十分强大。 <br /><br />语法： cp [选项] 源文件或目录 目标文件或目录 <br /><br />说明：该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。<br /><br />该命令的各选项含义如下：<br /><br />- a 该选项通常在拷贝目录时使用。它保留链接、文件属性，并递归地拷贝目录，其作用等于dpR选项的组合。<br /><br />- d 拷贝时保留链接。<br /><br />- f 删除已经存在的目标文件而不提示。<br /><br />- i 和f选项相反，在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖，是交互式拷贝。 <br /><br />- p 此时cp除复制源文件的内容外，还将把其修改时间和访问权限也复制到新文件中。 <br /><br />- r 若给出的源文件是一目录文件，此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。<br /><br />- l 不作拷贝，只是链接文件。 <br /><br />　　需要说明的是，为防止用户在不经意的情况下用cp命令破坏另一个文件，如用户指定的目标文件名已存在，用cp命令拷贝文件后，这个文件就会被新源文件覆盖，因此，建议用户在使用cp命令拷贝文件时，最好使用i选项。<br /><br />mv命令<br /><br />用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同MSDOS下的ren和move的组合。<br /><br />语法：mv [选项] 源文件或目录 目标文件或目录 <br /><br />说明：视mv命令中第二个参数类型的不同（是目标文件还是目标目录），mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时，mv命令完成文件重命名，此时，源文件只能有一个（也可以是源目录名），它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时，源文件或目录参数可以有多个，mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时，mv先拷贝，再将原有文件删除，而链至该文件的链接也将丢失。<br /><br />命令中各选项的含义为：<br /><br />- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖，此时系统询问是否重写，要求用户回答y或n，这样可以避免误覆盖文件。<br /><br />- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示，指定此选项后，i选项将不再起作用。<br /><br />如果所给目标文件（不是目录）已存在，此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件，使用mv命令移动文件时，最好使用i选项。 <br /><br /><br /><br />rm命令<br /><br />用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录，它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件，只是断开了链接，原文件保持不变。<br /><br />rm命令的一般形式为：<br /><br />rm [选项] 文件… <br /><br />如果没有使用- r选项，则rm不会删除目录。 <br /><br />该命令的各选项含义如下：<br /><br />- f 忽略不存在的文件，从不给出提示。 <br /><br />- r 指示rm将参数中列出的全部目录和子目录均递归地删除。<br /><br />- i 进行交互式删除。 <br /><br />使用rm命令要小心。因为一旦文件被删除，它是不能被恢复的。了防止这种情况的发生，可以使用i选项来逐个确认要删除的文件。如果用户输入y，文件将被删除。如果输入任何其他东西，文件则不会删除。<br /><br />Linux目录的创建与删除命令 <br />mkdir命令<br /><br />功能：创建一个目录（类似MSDOS下的md命令）。<br /><br />语法：mkdir [选项] dir-name <br /><br />说明：该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中（dir-name的父目录中）具有写权限，并且dirname不能是当前目录中已有的目录或 文件名称。<br /><br />命令中各选项的含义为：<br /><br />- m 对新建目录设置存取权限。也可以用chmod命令设置。<br /><br />- p 可以是一个路径名称。此时若路径中的某些目录尚不存在， 加上此选项后， 系统将自动建立好那些尚不存在的目录，即一次可以建立多个目录。<br /><br /><br /><br />rmdir 命令<br /><br />功能：删除空目录。<br /><br />语法：rmdir [选项] dir-name <br /><br />说明：dir-name表示目录名。该命令从一个目录中删除一个或多个子目录项。需要 特别注意的是，一个目录被删除之前必须是空的。rm - r dir命令可代替 rmdir，但是有危险性。删除某目录时也必须具有对父目录的写权限。<br /><br />命令中各选项的含义为：<br /><br />- p 递归删除目录dirname，当子目录删除后其父目录为空时，也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径，则系统在标准输出上显示相应 的信息。<br /><br /><br /><br />cd 命令 <br /><br />功能：改变工作目录。<br /><br />语法：cd [directory]<br /><br />说明：该命令将当前目录改变至directory所指定的目录。若没有指定directory， 则回到用户的主目录。为了改变到指定目录，用户必须拥有对指定目录的执行和读 权限。 <br /><br />该命令可以使用通配符（通配符含义请参见第十章）。 <br /><br /><br />pwd 命令<br /><br />在Linux层次目录结构中，用户可以在被授权的任意目录下利用mkdir命令创建新目录，也可以利用cd命令从一个目录转换到另一个目录。然而，没有提示符来告知用 户目前处于哪一个目录中。要想知道当前所处的目录，可以使用pwd命令，该命令显示整个路径名。<br /><br />语法：pwd <br /><br />说明：此命令显示出当前工作目录的绝对路径。<br /><p>ls 命令</p><p>ls是英文单词list的简写，其功能为列出目录的内容。这是用户最常用的一个命令之一，因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。</p><p>语法：ls [选项] [目录或是文件] </p><p>对于每个目录，该命令将列出其中的所有子目录与文件。对于每个文件，ls将输出 其文件名以及所要求的其他信息。默认情况下，输出条目按字母顺序排序。当未给出目录名或是文件名时，就显示当前目录的信息。</p><p>命令中各选项的含义如下：</p><p>- a 显示指定目录下所有子目录与文件，包括隐藏文件。 </p><p>- A 显示指定目录下所有子目录与文件，包括隐藏文件。但不列出“.”和 “..”。</p><p>- b 对文件名中的不可显示字符用八进制逃逸字符显示。</p><p>- c 按文件的修改时间排序。 </p><p>- C 分成多列显示各项。</p><p>- d 如果参数是目录，只显示其名称而不显示其下的各文件。往往与l选项一起使 用，以得到目录的详细信息。</p><p>- f 不排序。该选项将使lts选项失效，并使aU选项有效。</p><p>- F 在目录名后面标记“/”，可执行文件后面标记“*”，符号链接后面标记 “@”，管道（或FIFO）后面标记“|”，socket文件后面标记“=”。 </p><p>- i 在输出的第一列显示文件的i节点号。 </p><p>- l 以长格式来显示文件的详细信息。这个选项最常用。</p><p>每行列出的信息依次是： 文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字 </p><p>对于符号链接文件，显示的文件名之后有“—〉”和引用文件路径名。 </p><p>对于设备文件，其“文件大小”字段显示主、次设备号，而不是文件大小。</p><p>目录中的总块数显示在长格式列表的开头，其中包含间接块。 </p><p>- L 若指定的名称为一个符号链接文件，则显示链接所指向的文件。</p><p>- m 输出按字符流格式，文件跨页显示，以逗号分开。 </p><p>- n 输出格式与l选项相同，只不过在输出中文件属主和属组是用相应的UID号和 GID号来表示，而不是实际的名称。</p><p>- o 与l选项相同，只是不显示拥有者信息。</p><p>- p 在目录后面加一个“/”。</p><p>- q 将文件名中的不可显示字符用“?”代替。 </p><p>- r 按字母逆序或最早优先的顺序显示输出结果。 </p><p>- R 递归式地显示指定目录的各个子目录中的文件。 </p><p>- s 给出每个目录项所用的块数，包括间接块。 </p><p>- t 显示时按修改时间（最近优先）而不是按名字排序。若文件修改时间相同，则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修 改时间。</p><p>- u 显示时按文件上次存取的时间（最近优先）而不是按名字排序。即将-t的时间 标记修改为最后一次访问的时间。</p><p>- x 按行显示出各排序项的信息。</p><p>用ls - l命令显示的信息中，开头是由10个字符构成的字符串，其中第一个字符表示文件类型，它可以是下述类型之一：</p><p>- 普通文件</p><p>d 目录 </p><p>l 符号链接</p><p>b 块设备文件</p><p>c 字符设备文件</p><p>后面的9个字符表示文件的访问权限，分为3组，每组3位。</p><p>第一组表示文件属主的权限，第二组表示同组用户的权限，第三组表示其他用户的权限。每一组的三个字 符分别表示对文件的读、写和执行权限。 </p><p>各权限如下所示：</p><p>r 读 </p><p>w 写 </p><p>x 执行。对于目录，表示进入权限。</p><p>s 当文件被执行时，把该文件的UID或GID赋予执行进程的UID（用户ID）或GID（组 ID）。</p><p>t 设置标志位（留在内存，不被换出）。如果该文件是目录，在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件，在该文件执行 后，指向其正文段的指针仍留在内存。这样再次执行它时，系统就能更快地装入该文件。 </p><p>Linux文本处理命令 <br />sort命令 </p><p>sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项，这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上，sort命令可以被认为是一个非常强大的数据管理工具，用来管理内容类似数据库记录的文件。</p><p>Sort命令将逐行对文件中的内容进行排序，如果两行的首字符相同，该命令将继续比较这两行的下一字符，如果还相同，将继续进行比较。</p><p>语法： </p><p>sort [选项] 文件</p><p>说明：sort命令对指定文件中所有的行进行排序，并将结果显示在标准输出上。如不指定输入文件或使用“- ”，则表示排序内容来自标准输入。</p><p>sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。</p><p>改变缺省设置的选项主要有：</p><p>- m 若给定文件已排好序，合并文件。</p><p>- c 检查给定文件是否已排好序，如果它们没有都排好序，则打印一个出错信息，并以状态值1退出。</p><p>- u 对排序后认为相同的行只留其中一行。 </p><p>- o 输出文件 将排序输出写到输出文件中而不是标准输出，如果输出文件是输入文件之一，sort先将该文件的内容写入一个临时文件，然后再排序和写输出结果。</p><p>改变缺省排序规则的选项主要有：</p><p>- d 按字典顺序排序，比较时仅字母、数字、空格和制表符有意义。</p><p>- f 将小写字母与大写字母同等对待。</p><p>- I 忽略非打印字符。 </p><p>- M 作为月份比较：“JAN”&lt;“FEB” </p><p>- r 按逆序输出排序结果。 </p><p>＋posl - pos2 指定一个或几个字段作为排序关键字，字段位置从posl开始，到pos2为止（包括posl，不包括pos2）。如不指定pos2，则关键字为从posl到行尾。字段和字符的位置从0开始。</p><p>- b 在每行中寻找排序关键字时忽略前导的空白（空格和制表符）。</p><p>- t separator 指定字符separator作为字段分隔符。</p><p>uniq命令<br /><br />文件经过处理后在它的输出文件中可能会出现重复的行。例如，使用cat命令将两个文件合并后，再使用sort命令进行排序，就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除，只留下每条记录的唯一样本。<br /><br />语法：<br /><br />uniq [选项] 文件 <br /><br />说明：这个命令读取输入文件，并比较相邻的行。在正常情况下，第二个及以后更多个重复行将被删去，行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示，则从标准输入读取。<br /><br />该命令各选项含义如下：<br /><br />- c 显示输出中，在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。<br /><br />- d 只显示重复行。<br /><br />- u 只显示文件中不重复的各行。<br /><br />- n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串，彼此由制表符和空格隔开（字段从0开始编号）。<br /><br />+n 前n个字符被忽略，之前的字符被跳过（字符从0开始编号）。<br /><br />- f n 与- n相同，这里n是字段数。<br /><br />- s n 与＋n相同，这里n是字符数。<br /><br />Linux备份与压缩命令 <br /><br /><br />tar命令<br /><br />tar可以为文件和目录创建档案。利用tar，用户可以为某一特定文件创建档案（备份文件），也可以在档案中改变文件，或者向档案中加入新的文件。tar最初被用来在磁带上创建档案，现在，用户可以在任何设备上创建档案，如软盘。利用tar命令，可以把一大堆的文件和目录全部打包成一个文件，这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。<br /><br />语法：tar [主选项+辅选项] 文件或者目录<br /><br />使用该命令时，主选项是必须要有的，它告诉tar要做什么事情，辅选项是辅助使用的，可以选用。<br /><br />主选项：<br /><br />c 创建新的档案文件。如果用户想备份一个目录或是一些文件，就要选择这个选项。<br /><br />r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件，又发现还有一个目录或是一些文件忘记备份了，这时可以使用该选项，将忘记的目录或文件追加到备份文件中。<br /><br />t 列出档案文件的内容，查看已经备份了哪些文件。<br /><br />u 更新文件。就是说，用新增的文件取代原备份文件，如果在备份文件中找不到要更新的文件，则把它追加到备份文件的最后。<br /><br />x 从档案文件中释放文件。<br /><br />辅助选项：<br /><br />b 该选项是为磁带机设定的。其后跟一数字，用来说明区块的大小，系统预设值为20（20*512 bytes）。<br /><br />f 使用档案文件或设备，这个选项通常是必选的。<br /><br />k 保存已经存在的文件。例如我们把某个文件还原，在还原的过程中，遇到相同的文件，不会进行覆盖。<br /><br />m 在还原文件时，把所有文件的修改时间设定为现在。<br /><br />M 创建多卷的档案文件，以便在几个磁盘中存放。<br /><br />v 详细报告tar处理的文件信息。如无此选项，tar不报告文件信息。<br /><br />w 每一步都要求确认。<br /><br />z 用gzip来压缩/解压缩文件，加上该选项后可以将档案文件进行压缩，但还原时也一定要使用该选项进行解压缩。 <br /><br /><br /><br />gzip命令<br /><br />减少文件大小有两个明显的好处，一是可以减少存储空间，二是通过网络传输文件时，可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令，既方便又好用。<br /><br />语法：gzip [选项] 压缩（解压缩）的文件名<br /><br />各选项的含义：<br /><br />-c 将输出写到标准输出上，并保留原有文件。<br /><br />-d 将压缩文件解压。<br /><br />-l 对每个压缩文件，显示下列字段：<br /><br />压缩文件的大小<br /><br />未压缩文件的大小<br /><br />压缩比<br /><br />未压缩文件的名字<br /><br />-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。<br /><br />-t 测试，检查压缩文件是否完整。<br /><br />-v 对每一个压缩和解压的文件，显示文件名和压缩比。<br /><br />-num 用指定的数字num调整压缩的速度，-1或--fast表示最快压缩方法（低压缩比），-9或--best表示最慢压缩方法（高压缩比）。系统缺省值为6。<br /><br /><br /><br />unzip命令<br /><br />用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢？可以用unzip命令，该命令用于解扩展名为.zip的压缩文件。<br /><br />语法：unzip [选项] 压缩文件名.zip<br /><br />各选项的含义分别为：<br /><br />-x 文件列表 解压缩文件，但不包括指定的file文件。<br /><br />-v 查看压缩文件目录，但不解压。<br /><br />-t 测试文件有无损坏，但不解压。<br /><br />-d 目录 把压缩文件解到指定目录下。<br /><br />-z 只显示压缩文件的注解。<br /><br />-n 不覆盖已经存在的文件。<br /><br />-o 覆盖已存在的文件且不要求用户确认。<br /><br />-j 不重建文档的目录结构，把所有文件解压到同一目录下。<br />在Linux环境下运行DOS命令　 　 <br /><br /><br />Linux系统提供了一组称为mtools的可移植工具，可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。它们是不具备共同的文件系统格式的系统之间交换文件的有力手段。对于一个MSDOS的软盘，只要把软盘放在软驱中，就可以利用mtools提供的命令来访问软盘上的文件。<br /><br />mtools的主要命令如下：<br /><br />mcd 目录名 改变MSDOS目录；<br /><br />mcopy 源文件 目标文件 在MSDOS和Unix之间复制文件；<br /><br />mdel 文件名 删除MSDOS文件；<br /><br />mdir 目录名 显示MSDOS目录；<br /><br />mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统；<br /><br />rnlabel 驱动器号 产生MSDOS卷标；<br /><br />mmd 目录名 建立MSDOS目录；<br /><br />mrd 目录名 删除MSDOS目录；<br /><br />mren 源文件 目标文件 重新命名已存在的MSDOS文件；<br /><br />mtype 文件名 显示MSDOS文件的内容。<br /><br />提示：这些命令和对应的MSDOS命令非常相似。<br /><br />Linux改变文件或目录的访问权限命令 <br />　　Linux系统中的每个文件和目录都有访问许可权限，用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 <br /><br />　　文件或目录的访问权限分为只读，只写和可执行三种。以文件为例，只读权限表示只允许读其内容，而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时，文件所有者自动拥有对该文件的读、写和可执行权限，以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。<br /><br />　　有三种不同类型的用户可对文件或目录进行访问：文件所有者，同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件，还可以将文件的访问权限赋予系统中的其他用户。在这种情况下，系统中每一位用户都能访问该用户拥有的文件或目录。<br /><br />　　每一文件或目录的访问权限都有三组，每组用三位表示，分别为文件属主的读、写和执行权限；与属主同组的用户的读、写和执行权限；系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时，最左边的一列为文件的访问权限。例如：<br /><br />　　$ ls -l sobsrc. tgz<br /><br />　　-rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz<br /><br />　　横线代表空许可。r代表只读，w代表写，x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上，一个目录也是一个文件。如果第一个字符是横线，表示是一个非目录的文件。如果是d，表示是一个目录。<br /><br />　　例如：<br /><br />　　- rw- r-- r-- <br /><br />　　普通文件 文件主 组用户 其他用户 <br /><br />　　是文件sobsrc.tgz 的访问权限，表示sobsrc.tgz是一个普通文件；sobsrc.tgz的属主有读写权限；与sobsrc.tgz属主同组的用户只有读权限；其他用户也只有读权限。<br /><br />　　确定了一个文件的访问权限后，用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。利用chgrp命令来更改某个文件或目录的用户组。<br /><br />　　下面分别对这些命令加以介绍。<br /><br />　　chmod 命令<br /><br />　　chmod命令是非常重要的，用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。<br /><br />　　该命令有两种用法。一种是包含字母和操作符表达式的文字设定法；另一种是包含数字的数字设定法。<br /><br />　　1. 文字设定法<br /><br />　　chmod [who] [+ | - | =] [mode] 文件名? <br /><br />　　命令中各选项的含义为：<br /><br />　　操作对象who可是下述字母中的任一个或者它们的组合：<br /><br />　　u 表示“用户（user）”，即文件或目录的所有者。<br /><br />　　g 表示“同组（group）用户”，即与文件属主有相同组ID的所有用户。<br /><br />　　o 表示“其他（others）用户”。<br /><br />　　a 表示“所有（all）用户”。它是系统默认值。<br /><br />　　操作符号可以是：<br /><br />　　+ 添加某个权限。<br /><br />　　- 取消某个权限。<br /><br />　　= 赋予给定权限并取消其他所有权限（如果有的话）。<br /><br />　　设置mode所表示的权限可用下述字母的任意组合：<br /><br />　　r 可读。<br /><br />　　w 可写。<br /><br />　　x 可执行。<br /><br />　　X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。<br /><br />　　s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u＋s”设置文件的用户ID位，“g＋s”设置组ID位。<br /><br />　　t 保存程序的文本到交换设备上。<br /><br />　u 与文件属主拥有一样的权限。<br /><br />　　g 与和文件属主同组的用户拥有一样的权限。<br /><br />　　o 与其他用户拥有一样的权限。<br /><br />　　文件名：以空格分开的要改变权限的文件列表，支持通配符。<br /><br />　　在一个命令行中可给出多个权限方式，其间用逗号隔开。例如：chmod g+r，o+r example<br /><br />　　使同组和其他用户对文件example 有读权限。<br /><br />　　2. 数字设定法<br /><br />　　我们必须首先了解用数字表示的属性的含义：0表示没有权限，1表示可执行权限，2表示可写权限，4表示可读权限，然后将其相加。所以数字属性的格式应为3个从0到7的八进制数，其顺序是（u）（g）（o）。<br /><br />　　例如，如果想让某个文件的属主有“读/写”二种权限，需要把4（可读）+2（可写）＝6（读/写）。<br /><br />　　数字设定法的一般形式为：<br /><br />　　chmod [mode] 文件名? <br /><br /><br /><br />　　chgrp命令<br /><br />　功能：改变文件或目录所属的组。<br /><br />　　语法：chgrp [选项] group filename? <br /><br />　　该命令改变指定指定文件所属的用户组。其中group可以是用户组ID，也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表，支持通配符。如果用户不是该文件的属主或超级用户，则不能改变该文件的组。<br /><br />　　该命令的各选项含义为：<br /><br />　　- R 递归式地改变指定目录及其下的所有子目录和文件的属组。<br /><br />　　chown 命令<br /><br />　　功能：更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu，为了让用户xu能够存取这个文件，root用户应该把这个文件的属主设为xu，否则，用户xu无法存取这个文件。<br /><br />　　语法：chown [选项] 用户或组 文件 <br /><br />　　说明：chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表，支持通配符。<br /><br />　该命令的各选项含义如下：<br /><br />　　- R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。<br /><br />　　- v 显示chown命令所做的工作。<br /><br />Linux与用户有关的命令 <br /><br /><br />passwd命令 <br /><br />出于系统安全考虑，Linux系统中的每一个用户除了有其用户名外，还有其对应的用户口令。因此使用useradd命令增加时，还需使用passwd命令为每一位新增加的用户设置口令；用户以后还可以随时用passwd命令改变自己的口令。<br /><br />该命令的一般格式为： passwd [用户名] 其中用户名为需要修改口令的用户名。只有超级用户可以使用“passwd 用户名”修改其他用户的口令，普通用户只能用不带参数的passwd命令修改自己的口令。<br /><br />该命令的使用方法如下：<br /><br />输入<br /><br />passwd&lt; Enter&gt;；<br /><br />在（current） UNIX passwd:下输入当前的口令<br /><br />在new password:提示下输入新的口令（在屏幕上看不到这个口令）：<br /><br />系统提示再次输入这个新口令。<br /><br />输入正确后，这个新口令被加密并放入/etc/shdow文件。选取一个不易被破译的口令是很重要的。<br /><br />选取口令应遵守如下规则： <br /><br />口令应该至少有六位（最好是八位）字符；<br /><br />口令应该是大小写字母、标点符号和数字混杂的。<br /><br />超级用户修改其他用户（xxq）的口令的过程如下，<br /><br /># passwd root<br /><br />New UNIX password: <br /><br />Retype new UNIX password: <br /><br />passwd: all authentication tokens updated successfully<br /><br />#<br /><br /><br /><br />su命令<br /><br />这个命令非常重要。它可以让一个普通用户拥有超级用户或其他用户的权限，也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令。如要离开当前用户的身份，可以打exit。 <br /><br />该命令的一般形式为： su [选项] [? ] [使用者帐号]<br /><br />说明：若没有指定使用者帐号，则系统预设值为超级用户root。 该命令中各选项的含义分别为：<br /><br />? c 执行一个命令后就结束。 <br /><br />? 加了这个减号的目的是使环境变量和欲转换的用户相同。<br /><br />? m 保留环境变量不变。<br /><br />password: 【输入超级用户的密码】 　 <br /><br />Linux系统管理命令 <br /><br /><br />wall命令<br /><br />这个命令的功能是对全部已登录的用户发送信息，用户可以先把要发送的信息写好存入一个文件中，然后输入： <br /><br /># wall &lt; 文件名 <br /><br />这样就能对所有的用户发送信息了。 <br /><br />在上面的例子中符号“&lt;”表示输入重定向，有关它的含义和用法请参阅第十章的有关内容。 例如：<br /><br /># wall ‘Thank you!’ <br /><br />Broadcast message from root （tty1） Fri Nov 26 14：15：07 1999…<br /><br />Thank you! <br /><br />#<br /><br />执行以上命令后，用户的屏幕上显示出“Thank you!”信息后，并不出现系统提示符$（#），再次按回车键后，屏幕出现系统提示符。 <br /><br /><br /><br />write命令 <br /><br />write命令的功能是向系统中某一个用户发送信息。 该命令的一般格式为：<br /><br />write 用户帐号 [终端名称] <br /><br />例如： $ write Guest hello<br /><br />此时系统进入发送信息状态，用户可以输入要发送的信息，输入完毕，希望退出发送状态时，按组合键&lt; Ctrl+c&gt;即可。<br /><br /><br /><br />mesg指令<br /><br />mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人给自己发送信息，输入命令：<br /><br /># mesg y<br /><br />否则，输入：<br /><br /># mesg n<br /><br />对于超级用户，系统的默认值为 n；而对于一般用户系统的默认值为y。 如果mesg后不带任何参数，则显示当前的状态是y还是n.。<br /><br /><br /><br />sync命令<br /><br />　　sync命令是在关闭Linux系统时使用的。 用户需要注意的是，不能用简单的关闭电源的方法关闭系统，因为Linux象其他Unix系统一样，在内存中缓存了许多数据，在关闭系统时需要进行内存数据与硬盘数据的同步校验，保证硬盘数据在关闭系统时是最新的，只有这样才能确保数据不会丢失。一般正常的关闭系统的过程是自动进行这些工作的，在系统运行过程中也会定时做这些工作，不需要用户干预。 sync命令是强制把内存中的数据写回硬盘，以免数据的丢失。用户可以在需要的时候使用此命令。该命令的一般格式为：<br /><br />　　sync<br /><br /><br /><br />shutdown命令<br /><br />shutdown 命令可以安全地关闭或重启Linux系统，它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数，可以是一个精确的时间，也可以是从现在开始的一个时间段。精确时间的格式是hh:mm，表示小时和分钟；时间段由“+”和分钟数表示。系统执行该命令后，会自动进行数据同步的工作。<br /><br />该命令的一般格式为： shutdown [选项] [时间] [警告信息] 命令中各选项的含义为：<br /><br />- k 并不真正关机，而只是发出警告信息给所有用户。<br /><br />- r 关机后立即重新启动。 <br /><br />- h 关机后不重新启动。<br /><br />- f 快速关机，重启动时跳过fsck。<br /><br />- n 快速关机，不经过init程序。 <br /><br />- c 取消一个已经运行的shutdown。<br /><br />需要特别说明的是，该命令只能由超级用户使用。<br /><br /><br /><br />free命令 <br /><br />free命令的功能是查看当前系统内存的使用情况，它显示系统中剩余及已用的物理内存和交换内存，以及共享内存和被核心使用的缓冲区。<br /><br />该命令的一般格式为： free [-b | -k | -m] 命令中各选项的含义如下：<br /><br />-b 以字节为单位显示。 <br /><br />-k 以K字节为单位显示。 <br /><br />-m 以兆字节为单位显示。<br /><br /><br /><br />uptime命令<br /><br />uptime命令显示系统已经运行了多长时间，它依次显示下列信息：现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。<br /><br />该命令的一般格式为： uptime <br /><br />Linux磁盘管理 <br /><br /><br />df命令<br /><br />功能：检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间，目前还剩下多少空间等信息。 <br /><br />语法：df [选项] <br /><br />说明：df命令可显示所有文件系统对i节点和磁盘块的使用情况。 <br /><br />该命令各个选项的含义如下：<br /><br />-a 显示所有文件系统的磁盘使用情况，包括0块（block）的文件系统，如/proc文件系统。 <br /><br />-k 以k字节为单位显示。<br /><br />-i 显示i节点信息，而不是磁盘块。<br /><br />-t 显示各指定类型的文件系统的磁盘空间使用情况。<br /><br />-x 列出不是某一指定类型文件系统的磁盘空间使用情况（与t选项相反）。<br /><br />-T 显示文件系统类型。<br /><br /><br /><br />du命令<br /><br />du的英文原义为“disk usage”，含义为显示磁盘空间的使用情况。 <br /><br />功能：统计目录（或文件）所占磁盘空间的大小。 <br /><br />语法：du [选项] [Names…] <br /><br />说明：该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块（1024字节）的情况。若没有给出Names，则对当前目录进行统计。<br /><br />该命令的各个选项含义如下：<br /><br />-s 对每个Names参数只给出占用的数据块总数。<br /><br />-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s，也不指定-a，则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。 <br /><br />-b 以字节为单位列出磁盘空间使用情况（系统缺省以k字节为单位）。 <br /><br />-k 以1024字节为单位列出磁盘空间使用情况。<br /><br />-c 最后再加上一个总计（系统缺省设置）。<br /><br />-l 计算所有的文件大小，对硬链接文件，则计算多次。<br /><br />-x 跳过在不同文件系统上的目录不予统计。</p><p>dd命令<br /><br />功能：把指定的输入文件拷贝到指定的输出文件中，并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件，再把这个寄存文件写入第二张软盘上，完成diskcopy的功能。需要注意的是，应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。 <br /><br />语法：dd [选项]<br /><br />if =输入文件（或设备名称）。<br /><br />of =输出文件（或设备名称）。<br /><br />ibs = bytes 一次读取bytes字节，即读入缓冲区的字节数。<br /><br />skip = blocks 跳过读入缓冲区开头的ibs*blocks块。<br /><br />obs = bytes 一次写入bytes字节，即写入缓冲区的字节数。<br /><br />bs = bytes 同时设置读/写缓冲区的字节数（等于设置ibs和obs）。<br /><br />cbs = byte 一次转换bytes字节。 <br /><br />count=blocks 只拷贝输入的blocks块。 <br /><br />conv = ASCII 把EBCDIC码转换为ASCIl码。<br /><br />conv = ebcdic 把ASCIl码转换为EBCDIC码。<br /><br />conv = ibm 把ASCIl码转换为alternate EBCDIC码。<br /><br />conv = block 把变动位转换成固定字符。<br /><br />conv = ublock 把固定位转换成变动位。<br /><br />conv = ucase 把字母由小写转换为大写。 <br /><br />conv = lcase 把字母由大写转换为小写。 <br /><br />conv = notrunc 不截短输出文件。<br /><br />conv = swab 交换每一对输入字节。<br /><br />conv = noerror 出错时不停止处理。<br /><br />conv = sync 把每个输入记录的大小都调到ibs的大小（用NUL填充）。<br /><br /><br /><br />fdformat 命令<br /><br />软盘是用户常用的存储介质之一。软盘在使用之前必须先作格式化操作，然后可以用tar、dd、cpio等命令存储数据，也可以在软盘上建立可安装的文件系统。<br /><br />功能：低级格式化软盘<br /><br />语法：format [-n] device<br /><br />说明：该命令的作用是对软盘进行格式化。<br /><br />-n 软盘格式化后不作检验。<br /><br />device 指定要进行格式化的设备，通常是下述设备之一：<br /><br />/dev/fd0d360<br /><br />/dev/fd0h1200 <br /><br />/dev/fd0D360 <br /><br />/dev/fd0H360 <br /><br />/dev/fd0D720 <br /><br />/dev/fd0H720 <br /><br />/dev/fd0h360 <br /><br />/dev/fd0h720 <br /><br />/dev/fd0H1440<br /><br />Linux其它命令 <br /><br /><br />echo命令 <br /><br />echo命令的功能是在显示器上显示一段文字，一般起到一个提示的作用。<br /><br />该命令的一般格式为： echo [ -n ] 字符串<br /><br />其中选项n表示输出文字后不换行；字符串可以加引号，也可以不加引号。用echo命令输出加引号的字符串时，将字符串原样输出；用echo命令输出不加引号的字符串时，将字符串中的各个单词作为字符串输出，各字符串之间用一个空格分割。 <br /><br /><br /><br />cal命令 <br /><br />cal命令的功能是显示某年某月的日历。<br /><br />该命令的一般格式为： cal [选项] [月 [年]] 命令中各选项的含义为：<br /><br />- j 显示出给定月中的每一天是一年中的第几天（从1月1日算起）。<br /><br />- y 显示出整年的日历。 <br /><br /><br /><br />date命令 <br /><font color="#ff0000">date -s 060714    -----设置日期为2006 7 14</font><br />date命令的功能是显示和设置系统日期和时间。<br /><br />该命令的一般格式为： date [选项] 显示时间格式（以+开头，后面接格式） <br /><br />date 设置时间格式<br /><br />命令中各选项的含义分别为： <br /><br />-d datestr, --date datestr 显示由datestr描述的日期 <br /><br />-s datestr, --set datestr 设置datestr 描述的日期<br /><br />-u, --universal 显示或设置通用时间<br /><br />时间域<br /><br />% H 小时（00..23）<br /><br />% I 小时（01..12）<br /><br />% k 小时（0..23） <br /><br />% l 小时（1..12）<br /><br />% M 分（00..59）<br /><br />% p 显示出AM或PM<br /><br />% r 时间（hh：mm：ss AM或PM），12小时<br /><br />% s 从1970年1月1日00：00：00到目前经历的秒数<br /><br />% S 秒（00..59）<br /><br />% T 时间（24小时制）（hh:mm:ss） <br /><br />% X 显示时间的格式（％H:％M:％S） <br /><br />% Z 时区 日期域 <br /><br />% a 星期几的简称（ Sun..Sat）<br /><br />% A 星期几的全称（ Sunday..Saturday）<br /><br />% b 月的简称（Jan..Dec） <br /><br />% B 月的全称（January..December）<br /><br />% c 日期和时间（ Mon Nov 8 14：12：46 CST 1999）<br /><br />% d 一个月的第几天（01..31）<br /><br />% D 日期（mm／dd／yy）<br /><br />% h 和%b选项相同<br /><br />% j 一年的第几天（001..366）<br /><br />% m 月（01..12） <br /><br />% w 一个星期的第几天（0代表星期天）<br /><br />% W 一年的第几个星期（00..53，星期一为第一天）<br /><br />% x 显示日期的格式（mm/dd/yy）<br /><br />% y 年的最后两个数字（ 1999则是99）<br /><br />% Y 年（例如：1970，1996等）<br /><br />注意：只有超级用户才有权限使用date命令设置时间，一般用户只能使用date命令显示时间。<br /><br /><br /><br />clear命令<br /><br />clear命令的功能是清除屏幕上的信息，它类似于DOS中的 cls命令。清屏后，提示符移动到屏幕左上角。<br /></p><img src ="http://www.cnitblog.com/applezk/aggbug/15240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 17:50 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mount使用指南</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15239.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 09:49:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15239.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15239.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15239.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15239.html</trackback:ping><description><![CDATA[
		<p>在Linux中，如果你要使用储存设备 (Mo、硬盘、光驱等) ，就得先将它挂上 (Mount)，而当储存设备挂上了之后，就可以把它当成一个目录来进行访问。挂上一个设备使用mount命令。 <br /><br />在使用mount这个指令时，至少要先知道下列三种信息： <br /><br />　1. 要Mount对象的文件系统类型？ (File system type) <br /><br />　 2. 要Mount对象的设备名称？ (/dev/????) <br /><br />　 3. 要将设备Mount到哪个目录去？ <br /><br /><br />一、获得系统支持的文件系统类型 <br /><br />就第一点来说，用户可以执行 <br /><br />　　 cat /proc/filesystems <br /><br />来获得机器上支持的文件系统类型。如果系统并不支持你要挂接设备的文件系统类型，那你可能需要重新编译内核以使其增加对该种文件类型支持。关于如何编译内核请参照LinuxAid在线培训栏目中的相关文章。 <br /><br />常用的文件系统有： <br /><br />　Win95/98常用的FAT 32文件系统 ：vfat <br /><br />　Win NT用的文件系统 　　　　：ntfs <br /><br />　OS2用的文件系统 　　　：hpfs <br /><br />　Linux用的文件系统 　　　：ext2 <br /><br />　光盘片用的文件系统 　　　：iso9660 <br /><br />其中虽然vfat是指FAT 32系统，但事实上它也兼容FAT 16的文件系统类型。 <br /><br /><br />二、确定设备的名称 <br /><br />在Linux中，设备名称通常都在/dev里。这些设备名称的命名都是有规则的，我们可以用"推理"的方式把设备名称找出来。 <br /><br />譬如说/dev/hda1这个IDE设备。hd是Hard Disk(硬盘)的意思，sd是SCSI Device，fd是Floppy Device(或是Floppy Disk?)。a则是代表第一个设备，通常IDE接口可以接上四个IDE设备(例如四块硬盘)。所以要识别IDE硬盘的方法分别就 <br /><br />是：hda、hdb、hdc、hdd。此外，hda1中的"1"代表hda的第一个硬盘分区 <br /><br />(partition)，hda2代表hda的第二个分割区，依此类推。 <br /><br />此外，你可以直接检查/var/log/messages这个文件，在该文件中可以找到计算机开机后，系统已辨认出来的设备代号。<br />三、查找挂接点 <br /><br />最后我们要决定将设备挂接到哪里，先查看一下你的计算机是不是有个/mnt的空目录？该目录就是专门用来当作挂载点(Mount Point)的目录。建议您在/mnt里多建这几个目录：/mnt/cdrom、/mnt/floppy、/mnt/mo等来当作目录的专用挂载点。 <br /><br /><br />举例而言，如要挂载下列五个设备的话，其执行指令可能是 (假设都是Linux <br /><br />的ext2系统，如果是Win XX的话，请将ext2改成vfat)： <br /><br />1. 软盘 ===&gt;mount -t ext2 /dev/fd0 /mnt/floppy <br /><br />2. MO ===&gt;mount -t ext2 /dev/sda /mnt/mo <br /><br />3. cdrom ===&gt;mount -t ext2 /dev/hdc /mnt/cdrom <br /><br />4. SCSI cdrom ===&gt;mount -t iso9660 /dev/sdb /mnt/scdrom <br /><br />5. SCSI cdr ===&gt;mount -t iso9660 /dev/sdc /mnt/scdr <br /><br /><br />这是假设，如果你的设备的名称跟这个不同的话请自行修改。 <br /><br /><br />最后需要注意的是： <br /><br />1. 执行mount动作时先打一下pwd看看现在的目录是不是在挂载点，如果现在目录在挂载点的话，mount (或umount)不会成功 (会显示device busy)。 <br /><br />2. 想卸载某设备的语法是umount 目录名，例如umount /mnt/cdrom等 <br /><br />在此處要提醒一點就是NTFS格式的掛載需要高版本的內核支持才行，通常都要大家來手功編譯內核後才可以。</p>
		<p>在上面的命令中沒有提到掛載後顯示中文亂碼的問題，再補充一點如下：</p>
		<p>mount -t vfat -o iocharset=cp936 /dev/hdxx /mnt/*(其中的x根據實際情況來決定，*為你/MNT下的空目錄名)</p>
		<p>另外掛載還有一種方法就是讓系統啟動時自壇將需要的設備掛載上。這要通過編輯/etc/fstab.conf文件來實現。</p>
<img src ="http://www.cnitblog.com/applezk/aggbug/15239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 17:49 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关闭机器、目录结构、文件与目录的权限操作、用户管理</title><link>http://www.cnitblog.com/applezk/archive/2006/08/14/15237.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Mon, 14 Aug 2006 09:46:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/08/14/15237.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/15237.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/08/14/15237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/15237.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/15237.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">关闭机器 <br />在Linux系统中，普通用户是无权关闭系统的！只有root用户才能够关闭它。当然如果你是按关机按钮则别当别论。我们可以通过以下几种方法实现： <br />1） 按下CTRL+ALT+DEL组合键，这样系统将重新启动！ <br />2） 执行reboot命令，这样系统也将重新启动！ <br />3） 执行shutdown -h now命令，这样系统将关闭计算机！ <br />4） 执行halt命令，可以关闭计算机。 <br />注意千万不要随意采用硬关机、重启动键等方式关闭系统，那样会导致Linux文件系统遭受破坏！ </font> </p>
		<p>
				<font size="2">目录结构 <br />与Windows下一样，在Linux中也是通过目录来组织文件的。但不同的是，在Linux下只有一个根目录，而不象Windows那样一个分区一个根目录。如果有多个分区的话，就需要将其它分区mount到根目录上来用。 <br />大家回忆一下当时为Linux分区时，有一个选项要填，那就是Mount Point，我们将其中一个写成了“/”，也就是根目录（这点与Windows相反，一个是“\”，一个是“/”，真是天生冤家）。其它的则可能是/home、/usr。 <br />安装完系统后，你会发现/home、/usr就是根目录下面的home、usr目录！对了，整个分区就用于该目录了。 <br />安装完Linux后，有许许多多的目录，下面我们就说明一些重要的目录： <br />/bin：存放着一百多个Linux下常用的命令、工具 <br />/dev：存放着Linux下所有的设备文件！ <br />/home：用户主目录，每建一个用户，就会在这里新建一个与用户同名的目录，给该用户一个自己的空间 <br />/lost+found：顾名思义，一些丢失的文件可能可以在这里找到 <br />/mnt：外部设备的挂接点，通常用cdrom与floppy两个子目录！它的存在简化了光盘与软盘的使用。你只需在塞入光盘后，运行：mount /mnt/cdrom，就可以将光盘上的内容Mount到/mnt/cdrom上，你就可以访问了。不过你使用完成后，应该离开该目录，并执行umount /mnt/cdrom。同样的，软盘就是mount /mnt/floppy和umount /mnt/floppy了。 <br />/proc：这其实是一个假的目录，通过这里你可以访问到内存里的内容。 <br />/sbin：这里存放着系统级的命令与工具 <br />/usr：通常用来安装各种软件的地方 <br />/usr/X11R6 X Window目录 <br />/usr/bin与/usr/sbin 一些后安装的命令与工具 <br />/usr/include、/usr/lib及/usr/share 则是存放一些共享链接库 <br />/usr/local 常用来安装新软件 <br />/usr/src Linux源程序 <br />/boot：Linux就是从这里启动的 <br />/etc：这里存放在Linux大部分的配置文件 <br />/lib：静态链接库 <br />/root：root用户的主目录，这就是特权之一！ <br />/var：通常用来存放一些变化中的东西！ <br />/var/log：存放系统日志 <br />/var/spool：存放一些邮件、新闻、打印队列等 <br />另外，要说明的是，在Linux下“当前目录”、“路径”等概念与Windows下是一样的。</font>
		</p>
		<p>
				<font size="2">文件与目录的权限操作 <br />在Linux系统中，每一个文件和目录都有相应的访问许可权限，我们可以用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为可读、可写和可执行三种，分别以r，w，x表示，其含义为： <br />r w x <br />文件 可读 可写 可执行 <br />目录 可列出目录 可在目录中做写操作 可以访问该目录 <br />在文件被创建时，文件所有者可以对该文件的权限进行设置。 <br />对于一个文件来说，可以将用户分成三种，并对其分别赋予不同的权限： <br />1） 文件所有者 <br />2） 与文件所有者同组用户 <br />3） 其它用户 <br />每一个文件或目录的访问权限都有三组，每组用三位表示，如： <br />d rwx r-x r-- <br />第一部分：这里的d代表目录，其它的有：- 代表普通文件 c 代表字符设备文件； <br />第二部分：文件所有者的权限字，这里为r w x表示可读、可写、可执行 (目录的可执行指的可以进入目录)； <br />第三部分：与文件所有者同组的用户的权限字，这里为r - x表示可读、不可写、可执行。由于同组用户之间交流较多，让他看看文件，别乱改就行了嘛。 <br />第四部分：其它用户的权限字，这里为- - -，当然给我无关的人嘛，我的文件当然不但不给你写，也不让你读。 <br />1） 文件/目录权限设置命令：chmod <br />这是Linux系统管理员最常用到的命令之一，它用于改变文件或目录的访问权限。该命令有两种用法： <br />Ø 用包含字母和操作符表达式的文字设定法 <br />其语法格式为：chmod [who] [opt] [mode] 文件/目录名 <br />其中who表示对象，是以下字母中的一个或组合： <br />u：表示文件所有者 <br />g：表示同组用户 <br />o：表示其它用户 <br />a：表示所有用户 <br />opt则是代表操作，可以为： <br />+：添加某个权限 <br />-：取消某个权限 <br />=：赋予给定的权限，并取消原有的权限 <br />而mode则代表权限： <br />r：可读 <br />w：可写 <br />x：可执行 <br />例如：为同组用户增加对文件a.txt的读写权限： <br />chmod g+rw a.txt <br />Ø 用数字设定法 <br />而数字设定法则更为简单：chmod [mode] 文件名 <br />关键是mode的取值，一开始许多初学者会被搞糊涂，其实很简单，我们将rwx看成二进制数，如果有则有1表示，没有则有0表示，那么rwx r-x r--则可以表示成为： <br />111 101 100 <br />再将其每三位转换成为一个十进制数，就是754。 <br />例如，我们想让a.txt这个文件的权限为： <br />自己 同组用户 其他用户 <br />可读 是 是 是 <br />可写 是 是 <br />可执行 <br />那么，我们先根据上表得到权限串为：rw-rw-r--，那么转换成二进制数就是110 110 100，再每三位转换成为一个十进制数，就得到664，因此我们执行命令： <br />chmod 664 a.txt <br />2） 改变文件的属主命令：chown <br />语法格式很简单：chown [选项] 用户名 文件/目录名 <br />其中最常用的选项是“R”，加上这个参数，可以将整个目录里的所有子目录和文件的属主都改变成指定用户。 <br />3） 改变文件属组命令：chgrp <br />该命令也很简单：chgrp 组名 文件名</font>
				<br />
		</p>
		<p>
				<font size="2">用户管理，主要的工作就是建立一个合法的用户帐户、设置和管理用户的密码、修改用户帐户的属性以及在必要时删除已经废弃的用户帐号。 <br /><br />1. 增加一个新用户 <br />在Linux系统中，只有root用户才能够创建一个新用户，如下的命令将新建一个登录名user1的用户。 <br /># useradd user1 <br />但是，这个用户还不能够登录，因为还没给它设置初始密码，而没有密码的用户是不能够登录系统的。在默认情况下，将会在/home目录下新建一个与用户名相同的用户主目录。如果需要另外指定用户主目录的话，那么可以使用如下命令： <br /># useradd -d /home/xf user1 <br />同时，该用户登录时将获得一个Shell程序：/bin/bash，而假如你不想让这个用户登录，也就可以指定该用户的Shell程序为：/bin/false，这样该用户即使登录，也不能够执行Linux下的命令： <br /># useradd -s /bin/false user1 <br />在Linux中，新增一个用户的同时会创建一个新组，这个组与该用户同名，而这个用户就是该组的成员。如果你想让新的用户归属于一个已经存在的组，则可以使用如下命令： <br /># useradd -g user user1 <br />这样该用户就属于user组的一员了。而如果只是想让其再属于一个组，那么应该使用： <br /># useradd -G user user1 <br />完成了这一操作后，你还应该使用passwd命令为其设置一个初始密码。 <br /><br />2. 删除一个用户 <br />删除用户，只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉，你可以使用“userdel -r 用户名”来实现这一目的。 <br /><br />3. 修改用户属性 <br />在前面我们看到了在新建一个用户的时候如何指定它的用户主目录，如何指定它的Shell，如何设置它所属的组…等等。在Linux中提供了一个命令来实现： <br />usermod -g组名 -G 组名 -d 用户主目录 -s 用户Shell <br />还有一种直接的方法，那就是修改/etc/passwd文件，在这个文件中每个用户占用一行，它的内容为： <br />用户名:密码:用户ID:组ID:用户全名:用户主目录:用户Shell <br />不过值得注意的是，密码这一项通常是用一个*号代替的，你是看不到的。 <br /><br />4. 增加一个组 <br />还记得Linux的文件可以为同组的人、非同组的人设置不同的访问权限吗？我们可以根据自己的需要创建用户组： <br />groupadd 组名 <br /><br />5. 删除一个组 <br />同样的，我们有时会需要删除一个组，它的命令就是groupdel 组名。 <br /><br />6. 修改组成员 <br />如果我们需要将一个用户加入一个组，只需编辑/etc/group文件，将用户名写到组名的后面。例如将newuser用户加入到softdevelop组，只需找到softdevelop这一行： <br />softdevelop:x:506:user1,user2 <br />然后在后面加上newuser，形成： <br />softdevelop:x:506:user1,user2,newuser <br />另外，在Red Hat Linux中还提供一个图形化的用户管理工具：userconf，通过它可以更直接地进行用户管理。</font>
				<br />
		</p>
<img src ="http://www.cnitblog.com/applezk/aggbug/15237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-08-14 17:46 <a href="http://www.cnitblog.com/applezk/archive/2006/08/14/15237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux如何启动自动进入文本模式</title><link>http://www.cnitblog.com/applezk/archive/2006/06/30/13104.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Fri, 30 Jun 2006 08:47:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/06/30/13104.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/13104.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/06/30/13104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/13104.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/13104.html</trackback:ping><description><![CDATA[修改/etc/inittab中的"id:5:initdefault:" <br />"5"为"3"，restart即自动进入文本模式<br /><br /><br /><br /><br /><br />进入vi的命令<br />vi filename :打开或新建文件，并将光标置于第一行首<br />vi +n filename ：打开文件，并将光标置于第n行首<br />vi + filename ：打开文件，并将光标置于最后一行首<br />vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处<br />vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename<br />vi filename....filename ：打开多个文件，依次进行编辑
<p>移动光标类命令<br />h ：光标左移一个字符<br />l ：光标右移一个字符<br />space：光标右移一个字符<br />Backspace：光标左移一个字符<br />k或Ctrl+p：光标上移一行<br />j或Ctrl+n ：光标下移一行<br />Enter ：光标下移一行<br />w或W ：光标右移一个字至字首<br />b或B ：光标左移一个字至字首<br />e或E ：光标右移一个字至字尾<br />) ：光标移至句尾<br />( ：光标移至句首<br />}：光标移至段落开头<br />{：光标移至段落结尾<br />nG：光标移至第n行首<br />n+：光标下移n行<br />n-：光标上移n行<br />n$：光标移至第n行尾<br />H ：光标移至屏幕顶行<br />M ：光标移至屏幕中间行<br />L ：光标移至屏幕最后行<br />0：（注意是数字零）光标移至当前行首<br />$：光标移至当前行尾</p><p>屏幕翻滚类命令<br />Ctrl+u：向文件首翻半屏<br />Ctrl+d：向文件尾翻半屏<br />Ctrl+f：向文件尾翻一屏<br />Ctrl＋b；向文件首翻一屏<br />nz：将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。</p><p>插入文本类命令<br />i ：在光标前<br />I ：在当前行首<br />a：光标后<br />A：在当前行尾<br />o：在当前行之下新开一行<br />O：在当前行之上新开一行<br />r：替换当前字符<br />R：替换当前字符及其后的字符，直至按ESC键<br />s：从当前光标位置处开始，以输入的文本替代指定数目的字符<br />S：删除指定数目的行，并以所输入文本代替之<br />ncw或nCW：修改指定数目的字<br />nCC：修改指定数目的行</p><p>删除命令<br />ndw或ndW：删除光标处开始及其后的n-1个字<br />do：删至行首<br />d$：删至行尾<br />ndd：删除当前行及其后n-1行<br />x或X：删除一个字符，x删除光标后的，而X删除光标前的<br />Ctrl+u：删除输入方式下所输入的文本</p><p>搜索及替换命令<br />/pattern：从光标开始处向文件尾搜索pattern<br />?pattern：从光标开始处向文件首搜索pattern<br />n：在同一方向重复上一次搜索命令<br />N：在反方向上重复上一次搜索命令<br />：s/p1/p2/g：将当前行中所有p1均用p2替代<br />：n1,n2s/p1/p2/g：将第n1至n2行中所有p1均用p2替代<br />：g/p1/s//p2/g：将文件中所有p1均用p2替换</p><p>选项设置<br />all：列出所有选项设置情况<br />term：设置终端类型<br />ignorance：在搜索中忽略大小写<br />list：显示制表位(Ctrl+I)和行尾标志（$)<br />number：显示行号<br />report：显示由面向行的命令修改过的数目<br />terse：显示简短的警告信息<br />warn：在转到别的文件时若没保存当前文件则显示NO write信息<br />nomagic：允许在搜索模式中，使用前面不带“\”的特殊字符<br />nowrapscan：禁止vi在搜索到达文件两端时，又从另一端开始<br />mesg：允许vi显示其他用户用write写到自己终端上的信息</p><p>最后行方式命令<br />：n1,n2 co n3：将n1行到n2行之间的内容拷贝到第n3行下<br />：n1,n2 m n3：将n1行到n2行之间的内容移至到第n3行下<br />：n1,n2 d ：将n1行到n2行之间的内容删除<br />：w ：保存当前文件<br />：e filename：打开文件filename进行编辑<br />：x：保存当前文件并退出<br />：q：退出vi<br />：q!：不保存文件并退出vi<br />：!command：执行shell命令command<br />：n1,n2 w!command：将文件中n1行至n2行的内容作为command的输入并执行之，若不指定n1，n2，则表示将整个文件内容作为command的输入<br />：r!command：将命令command的输出结果放到当前行</p><p>寄存器操作<br />"?nyy：将当前行及其下n行的内容保存到寄存器？中，其中?为一个字母，n为一个数字<br />"?nyw：将当前行及其下n个字保存到寄存器？中，其中?为一个字母，n为一个数字<br />"?nyl：将当前行及其下n个字符保存到寄存器？中，其中?为一个字母，n为一个数字<br />"?p：取出寄存器？中的内容并将其放到光标位置处。这里？可以是一个字母，也可以是一个数字<br />ndd：将当前行及其下共n行文本删除，并将所删内容放到1号删除寄存器中。 </p><p>进入vi<br />vi test<br />离开vi<br />:q! 离开vi,并放弃刚在缓冲区内编辑的内容。<br />　　 :wq 将缓冲区内的资料写入磁盘中，并离开vi。<br />　　 :ZZ 同wq<br />同wq<br />:w 将缓冲区内的资料写入磁盘中，但并不离开vi。<br />　　:q 离开vi,若文件被修改过，则会被要求确认是否放弃修改的内容，此指令可与: w 配合使用。<br />Vi 的操作模式<br />Vi 提供两种操作模式：<br />输入模式（insert mode）<br />指令模式（command mode）<br />当使用者进入vi后，既处于指令模式下，此刻键入任何字元皆被视为指令。<br />输入模式：a(append) 游标之后加入资料。<br />A 该行之末加入资料<br />i (insert) 游标之前加入资料<br />I 该行之首加入资料<br />o (open) 新增一行与该行之下供输入资料<br />O 新增一行与该行之上供输入资料<br />指令模式：B 　 　　　移至该行第一个字符，若光标在该行第一字符则光标移至上一行第一字符。<br />　　 b 　　 由游标所在位置之前一个字串的第一个字元<br />　　　　　cc 删除整行，修改整行的内容。<br />　　　　　D　　　　　 以行为单位，删除游标在内后面的所有字符。<br />db 删除该行光标前字符<br />　　　　　dd 删除该行<br />　　　　　de 删除自光标开始后面的字符<br />　　　　　d加字符　　　删除光标所在位置至字符之间的单<br />　　　　　E　　　　　　移至该行最后字符，若光标在该行最后字符则光标移至下一行最后字符<br />　e　　　　　　由游标所在位置至该字串的最后一个字元<br />　　　　　G 移至该档案的最后一行　<br />　　　　　h 向前移一个字元<br />j 向下移一个字元<br />k 向上移一个字元<br />0 移至该行之首<br />M 移至视窗的中间那行<br />L 移至视窗的最后一行<br />　　　　　l 向后移一个字符<br />0 由游标所在位置该行的第一个字元<br />nG 移至该档案的第n行<br />n+ 自游标所在位置向后移n行至该行的第一字符<br />n- 自游标所在位置向前移n行至该行的第一字符<br />R 进入取代状态，直到《ESC》为止<br />s 删除游标所在字元，并进入取代模式直到《ESC》<br />S 删除游标所在之该行资料，并进入输入模式直到《ESC》<br />w 由游标所在位置之下一个字串的第一个字元<br />x 删除游标所在该字元。<br />X 删除游标所在之前一字元。<br />r 用接于此指令之后的字元取代（replace）游标所在字元<br />yy yank整行，使游标所在该行复制到记忆体缓冲区<br /><ctrl><g>显示该行之行号、档案名称、档案中最末之行号、游标所在行号占<br />总行号之百分比<br />$ 由游标所在位置至该行的最后一个字元。<br />） 由游标所在位置至下一个句子的第一个字元。<br />（ 由游标所在位置至该句子的第一个字元。<br />{ 由游标所在位置至该段落的最后一个字元。<br />} 由游标所在位置至该段落的第一个字元<br />yank和delete可将指定的资料复制到记忆体缓冲区，而藉有put指令可将缓冲区内的资料复制到荧幕上<br />例如：搬移一行 ：在该行执行dd<br />游标移至目的地<br />执行p<br />复制一行 ：在该行执行yy<br />游标移至目的地<br />执行p<br />视窗移动：<br /></g></ctrl></p><img src ="http://www.cnitblog.com/applezk/aggbug/13104.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-06-30 16:47 <a href="http://www.cnitblog.com/applezk/archive/2006/06/30/13104.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>忘记root密码</title><link>http://www.cnitblog.com/applezk/archive/2006/05/31/11311.html</link><dc:creator>applezk's IT blog</dc:creator><author>applezk's IT blog</author><pubDate>Wed, 31 May 2006 04:36:00 GMT</pubDate><guid>http://www.cnitblog.com/applezk/archive/2006/05/31/11311.html</guid><wfw:comment>http://www.cnitblog.com/applezk/comments/11311.html</wfw:comment><comments>http://www.cnitblog.com/applezk/archive/2006/05/31/11311.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/applezk/comments/commentRss/11311.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/applezk/services/trackbacks/11311.html</trackback:ping><description><![CDATA[
		<div class="posttext">在Red Hat Linux9 入门指南中就有详细的说明，我今天试了一下很凑效。我想对你的redhat 8.0应该也可采取同样的方法。以下是我从文档中复制过来的，希望对你有用。<br />你可以使用单用户 Linux 模式来登录，然后创建一个新的根口令。 <br /><br />要进入单用户Linux模式，重新引导计算机。如果你使用的是默认的引导装载程序 GRUB，你可以执行下列步骤来进入单用户模式：<br /><br /><br />在引导装载程序菜单上，键入 [e] 来进入编辑模式。 <br /><br />你会面对一个引导项目列表。查找其中类似以下输出的那一行：<br /><br />kernel /vmlinuz-2.4.18-0.4 ro root=/dev/hda2<br /><br /><br />按箭头键直到这一行被突出显示，然后按 [e]。<br /><br />按一下空格键来添加一个空格，然后添加 single 来通知 GRUB 引导单用户 Linux 模式。按 [Enter] 键来使编辑结果生效。<br /><br />你会被带回编辑模式屏幕，从这里，按 [b]，GRUB 就会引导单用户 Linux 模式。载入结束后，你会面对一个类似以下的 shell 提示：<br /><br />sh-2.05#<br /><br /><br />现在，你便可以改变根命令，键入： passwd root<br /><br />你会被要求重新键入口令来校验。结束后，口令就会被改变，你便可以在提示下键入 reboot 来重新引导；然后，象平常一样登录为根用户。<br />提醒：在输入新口令时，可能提示符并不移动，不要管他，你输你的口令即可。</div>
<img src ="http://www.cnitblog.com/applezk/aggbug/11311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/applezk/" target="_blank">applezk's IT blog</a> 2006-05-31 12:36 <a href="http://www.cnitblog.com/applezk/archive/2006/05/31/11311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>