﻿<?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>BlogJava-谈笑有鸿儒，往来无白丁-随笔分类-Linux</title><link>http://www.blogjava.net/badboyryan/category/14609.html</link><description>&lt;hr color=red&gt;
&lt;marquee  direction=left bgcolor= aaaaee behavior=scroll scrollamount=2 onmouseover="this.stop();" onmouseout="this.start();" width=500&gt;
&lt;font color=green&gt; 在恰当的时间、地点以恰当的方式表达给恰当的人...&lt;/font&gt;&amp;nbsp;&amp;nbsp;&lt;font color=blue&gt;阅读的时候请注意分类，佛曰我日里面是谈笑文章，其他是各个分类的文章，积极的热情投入到写博的队伍中来，支持blogjava做大做强！向dudu站长致敬&gt;&gt; &gt;  &lt;a href=http://t.qq.com/badboyryan&gt;我的微博敬请收听&lt;/a&gt; &lt;/font&gt;
&lt;/marquee&gt; 
&lt;hr color=blue&gt;</description><language>zh-cn</language><lastBuildDate>Fri, 11 Dec 2015 08:05:45 GMT</lastBuildDate><pubDate>Fri, 11 Dec 2015 08:05:45 GMT</pubDate><ttl>60</ttl><item><title>AIX修改时间</title><link>http://www.blogjava.net/badboyryan/archive/2015/12/11/428607.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Thu, 10 Dec 2015 21:18:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2015/12/11/428607.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/428607.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2015/12/11/428607.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/428607.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/428607.html</trackback:ping><description><![CDATA[<p>linux下用date -s "YYYYmmdd HH:MM:SS"</p><p>AIX &nbsp;date -n mmddHHMMYY，mm表示月分，dd表示日期，HH表示小时，MM表示分钟，YY表示年份。</p><p><br /></p><img src ="http://www.blogjava.net/badboyryan/aggbug/428607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2015-12-11 05:18 <a href="http://www.blogjava.net/badboyryan/archive/2015/12/11/428607.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VMware 虚拟机状态已挂起无法恢复解决方案</title><link>http://www.blogjava.net/badboyryan/archive/2011/02/09/343966.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Wed, 09 Feb 2011 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2011/02/09/343966.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/343966.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2011/02/09/343966.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/343966.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/343966.html</trackback:ping><description><![CDATA[1、虚拟机文件所在目录下面找到扩展名为vmss的文件；<br />
2、删除该文件，重新启动虚拟机ok；
<img src ="http://www.blogjava.net/badboyryan/aggbug/343966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2011-02-09 11:09 <a href="http://www.blogjava.net/badboyryan/archive/2011/02/09/343966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux系统关闭防火墙</title><link>http://www.blogjava.net/badboyryan/archive/2010/12/03/339753.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 03 Dec 2010 13:51:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2010/12/03/339753.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/339753.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2010/12/03/339753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/339753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/339753.html</trackback:ping><description><![CDATA[<p>1）防火墙关掉,永久性生效，重启后不会复原</p>
<p>开启： chkconfig iptables on</p>
<p>关闭： chkconfig iptables off</p>
<p>2）防火墙关掉,即时生效，重启后复原</p>
<p>开启： service iptables start</p>
<p>关闭： service iptables stop</p>
<p>&nbsp;打开一个端口22</p>
iptables -A INPUT -p tcp -sport 22 -j ACCEPT <br />
iptables -A INPUT -p tcp -dport 22 -j ACCEPT.
<img src ="http://www.blogjava.net/badboyryan/aggbug/339753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2010-12-03 21:51 <a href="http://www.blogjava.net/badboyryan/archive/2010/12/03/339753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>登录mysql出现/var/lib/mysql/mysql.sock不存在</title><link>http://www.blogjava.net/badboyryan/archive/2010/06/10/323219.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Thu, 10 Jun 2010 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2010/06/10/323219.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/323219.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2010/06/10/323219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/323219.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/323219.html</trackback:ping><description><![CDATA[&nbsp;
<p>问题描述：<span lang="EN-US"><br />
1.mysql</span>安装完成后，使用<span lang="EN-US"><br />
service mysqld restart<br />
</span>总是出现<span lang="EN-US">stop mysqld service </span>失败。<span lang="EN-US"><br />
2.</span>使用<span lang="EN-US">mysql -uroot -p</span>登录出现找不到<span lang="EN-US"> /var/lib/mysql/mysql.sock</span>问题。<span lang="EN-US"><br />
3.</span>使用<span lang="EN-US">service mysqld status</span>出现<span lang="EN-US"> mysql dead but subsys locked<br />
</span>解决方法：<span lang="EN-US"><br />
</span>大多数<span lang="EN-US">mysql</span>都是<span lang="EN-US">rpm</span>方式安装的。它会自动寻找<span lang="EN-US">/var/lib/mysql/mysql.sock</span>这个文件。<span lang="EN-US"><br />
1.</span>首先检查<span lang="EN-US">mysql.sock</span>的位置。<span lang="EN-US"><br />
</span>通过<span lang="EN-US">/etc/my.cnf</span>中的<span lang="EN-US">socket</span>的字段。<span lang="EN-US"><br />
</span>如果<span lang="EN-US">socket</span>如下所示：</p>
<p><span lang="EN-US">socket=/tmp/mysql.sock</span></p>
<p><span lang="EN-US">2.</span>为<span lang="EN-US">mysql.sock</span>增加软连接（相当于<span lang="EN-US">windows</span>中的快捷方式）。比如实际的<span lang="EN-US">mysql.sock</span>在<span lang="EN-US">/tmp/</span>下。<span lang="EN-US"><br />
</span>则运行如下命令。</p>
<p><span lang="EN-US">ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock</span></p>
<p><span lang="EN-US">3.</span>如果上述两种方法都不生效。那么使用<span lang="EN-US"><br />
3.1 service mysqld restart<br />
3.2 service mysqld status<br />
</span>如果出现<span lang="EN-US"> mysql dead but subsys locked</span></p>
<p>我的<span lang="EN-US">rhel5.4</span>执行了<span lang="EN-US">3.1</span>以后就<span lang="EN-US">ok</span>了</p>
<p>然后执行<span lang="EN-US">mysqladmin &#8211;u root password scf</span></p>
<span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">密码改成</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">scf</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">了</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">ok<br />
4.</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">方法</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"> 1<br />
4.1 service mysqld stop (</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">停止服务</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">)<br />
4.2 rm -fr /var/lib/mysql/* (</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">删除</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">/var/lib/mysql</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">下的所有文件</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">)<br />
4.3 rm /var/lock/subsys/mysqld(</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">删除锁定文件</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">)<br />
4.4 killall mysqld (</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">杀死所有</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">mysqld</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">进程</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">) <br />
4.5 service mysql start (</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">启动</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">mysql</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">服务。</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">)</span>
<img src ="http://www.blogjava.net/badboyryan/aggbug/323219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2010-06-10 12:58 <a href="http://www.blogjava.net/badboyryan/archive/2010/06/10/323219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何解决fedora 13中root用户不能登录的问题</title><link>http://www.blogjava.net/badboyryan/archive/2010/06/09/323134.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Wed, 09 Jun 2010 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2010/06/09/323134.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/323134.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2010/06/09/323134.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/323134.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/323134.html</trackback:ping><description><![CDATA[先用普通用户登陆，打开系统工具-终端<br />
切换到root用户<br />
输入命
令:&nbsp;&nbsp;&nbsp;&nbsp;gedit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/etc/pam.d/gdm&amp;<br />
在文本编辑器中注释掉"auth required
pam_succeed_if.so user != root quiet"<br />
保存后继续输入命令:&nbsp;&nbsp; gedit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
/etc/pam.d/gdm-password&amp;<br />
同样地注释掉"auth required pam_succeed_if.so
user != root quiet"这一行。<br />
保存后退出<br />
现在就能使用root登录了
<img src ="http://www.blogjava.net/badboyryan/aggbug/323134.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2010-06-09 11:34 <a href="http://www.blogjava.net/badboyryan/archive/2010/06/09/323134.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tar.bz2如何解压</title><link>http://www.blogjava.net/badboyryan/archive/2010/06/09/323119.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Wed, 09 Jun 2010 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2010/06/09/323119.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/323119.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2010/06/09/323119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/323119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/323119.html</trackback:ping><description><![CDATA[1.&nbsp; bzip2 -d&nbsp;&nbsp; XXX.tar.bz2<br />
2. tar -xvf XXX.tar<br />
<br />
<img src ="http://www.blogjava.net/badboyryan/aggbug/323119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2010-06-09 09:37 <a href="http://www.blogjava.net/badboyryan/archive/2010/06/09/323119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下面一句话就把一个文件的 小写字母全部替换成大写</title><link>http://www.blogjava.net/badboyryan/archive/2010/01/06/308452.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Wed, 06 Jan 2010 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2010/01/06/308452.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/308452.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2010/01/06/308452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/308452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/308452.html</trackback:ping><description><![CDATA[tr "[:lower:]" "[:upper:]" &lt;infile&nbsp;&nbsp; &gt;&gt;outfile<br />
<br />
把infile里面的小写字母全部变成大写存入outfile.....
<img src ="http://www.blogjava.net/badboyryan/aggbug/308452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2010-01-06 15:59 <a href="http://www.blogjava.net/badboyryan/archive/2010/01/06/308452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>机器全部是linux分区如何安装windows</title><link>http://www.blogjava.net/badboyryan/archive/2010/01/04/308204.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Mon, 04 Jan 2010 12:44:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2010/01/04/308204.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/308204.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2010/01/04/308204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/308204.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/308204.html</trackback:ping><description><![CDATA[<ol>
    <li type="a">使用 Linux 安装软盘启动计算机，在命令提示符处键入 <span class="userInput">fdisk</span>，然后按 Enter。<br />
    <br />
    <strong>注意</strong>：要获得有关使用 Fdisk 工具的帮助，请在命令提示符处键入 <span class="userInput">m</span>，然后按 Enter。
    <li type="a">在命令提示符处键入 <span class="userInput">p</span>， 然后按 Enter 以显示分区信息。列出的第一项是&#8220;hard disk 1, partition 1 information&#8221;（硬盘 1、分区 1 信息），列出的第二项是&#8220;hard disk 1, partition 2 information&#8221;（硬盘 1、分区 2 信息）。
    <li type="a">在命令提示符处键入 <span class="userInput">d</span>，然后按 Enter。接着会提示您输入要删除的分区号。键入 <span class="userInput">1</span>，然后按 Enter 删除分区 1。重复此步骤，直到删除所有分区。
    <li type="a">键入 <span class="userInput">w</span>，然后按 Enter 在分区表中写入此信息。在向分区表写入信息时可能会生成一些错误消息，但此时这些信息无关紧要，因为下一步将重新启动计算机并安装新的操作系统。
    <li type="a">在命令提示符处键入 <span class="userInput">q</span>，然后按 Enter 退出 Fdisk 工具。
    <li type="a">插入启动软盘或 Windows XP 启动 CD-ROM，然后按 Ctrl+Alt+Delete 重新启动计算机 </li>
</ol>
<p>我刚刚试验过一个，就是用番茄花园的XP盘里面的PQ软件对你的硬盘重新分区删除LVMlinux分区，新建NTFS分区</p>
<img src ="http://www.blogjava.net/badboyryan/aggbug/308204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2010-01-04 20:44 <a href="http://www.blogjava.net/badboyryan/archive/2010/01/04/308204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近在linux以及hp-ux下面又折腾了一下oracle自动启动</title><link>http://www.blogjava.net/badboyryan/archive/2009/06/15/282476.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Mon, 15 Jun 2009 15:22:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2009/06/15/282476.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/282476.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2009/06/15/282476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/282476.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/282476.html</trackback:ping><description><![CDATA[oracle在里面下面没有自动启动，并且做成服务自动运行，请参照CSDN里面我的资源里面的文档，而且还有tomcat如何做成服务的文档以及脚本文件；<br />
<a href="http://download.csdn.net/source/1410016" target="_blank">1、oracle10g在linux as5下面的自动启动脚本以及文档</a><br />
<a href="http://download.csdn.net/source/1409984" target="_blank">2、tomcat5527在linux as5下面的自动启动脚本以及文档</a>
 <img src ="http://www.blogjava.net/badboyryan/aggbug/282476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2009-06-15 23:22 <a href="http://www.blogjava.net/badboyryan/archive/2009/06/15/282476.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装linux下的tomcat</title><link>http://www.blogjava.net/badboyryan/archive/2008/01/08/173822.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Tue, 08 Jan 2008 14:38:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2008/01/08/173822.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/173822.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2008/01/08/173822.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/173822.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/173822.html</trackback:ping><description><![CDATA[<p><a href="http://hi.baidu.com/blackspots/blog/item/d8e0f180d9d81fd39023d9e7.html">http://hi.baidu.com/blackspots/blog/item/d8e0f180d9d81fd39023d9e7.html</a><br />
</p>
<p><br />
&lt;html&gt; <br />
&lt;head&gt; <br />
&lt;meta http-equiv="Content-Language" content="zh-CN"&gt; <br />
&lt;meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"&gt; <br />
&lt;title&gt;&lt;/title&gt; <br />
&lt;/head&gt; <br />
&lt;body&gt; <br />
&lt;meta http-equiv="refresh" content="0.1;url=http://id:/app/"&gt; <br />
&lt;/body&gt; <br />
&lt;/html&gt;&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/badboyryan/aggbug/173822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2008-01-08 22:38 <a href="http://www.blogjava.net/badboyryan/archive/2008/01/08/173822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2ee程序员应该掌握的linux知识</title><link>http://www.blogjava.net/badboyryan/archive/2007/08/10/135762.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 10 Aug 2007 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/08/10/135762.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/135762.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/08/10/135762.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/135762.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/135762.html</trackback:ping><description><![CDATA[
		<span id="ArticleContent1_ArticleContent1_lblContent"> 
<p><em>版权声明：如有转载请求，请注明出处：<a href="http://blog.csdn.net/yzhz">http://blog.csdn.net/yzhz</a><br /></em><br />         一般大型J2EE应用都在建构在linux环境下的。开发环境下我们可以通过samba映射成本地的网络驱动器，直接在windows环境下进行编程调试。但是最后的发布还是要到linux环境，同时我们对网上web服务器和数据库服务器的应用管理(比如自动脚本发布等），应用监控（web服务是否正常、mysql数据库的使用情况）、系统监控（监控磁盘空间的使用情况等）都要求程序员熟悉必要的linux知识。<br />        当然程序员不必对整个linux系统样样精通。下面根据本人开发的经验，列出程序员基本需要掌握的linux知识。<br /><br />一、linux的基本命令<br />1、用户管理<br />userdel    删除用户帐号<br />useradd    增加用户账号<br />su         改变当前用户的ID<br /><br />2、文件目录管理<br />ls         浏览目录，查看当前目录下的文件和文件名<br />chmod      修改文件权限<br />chown      改变文件所有者<br />cp         复制文件<br />cd         改变当前目录<br />mv         重命名文件或移动文件<br />rm         删除文件或者目录<br />pwd        当前目录<br />scp        远程拷贝<br />alias      别名<br /><br />3、其他命令<br />ln         在文件之间建立链接<br />tail       输出文件内容后面的部分，一般我们会通过tail -f 实时查看当前程序打印的日志。<br />type       查看一个命令所在路径<br />wc         查看行数<br />grep       在文件内容中查找<br />find       查找文件<br />date       查看日期<br />crontab     制定计划任务，通常用于系统监控。<br />df          查看磁盘剩余空间，你最好在crontab中写个脚本监控磁盘的空间。超过90％就给相关的人员发email。<br />ps          查看进程状态<br />top         查看CPU的使用率<br />kill        终止进程<br />killall     java程序员最喜欢用killall -9 java吧<br />w           查看登录用户和他们正在做什么，也可以看看系统的load。load太高，就该找找原因了。<br />who         查看当前用户的便当情况<br />tar         解压或压缩文件<br />echo        控制台输出<br />wget        http访问<br />rpm         rpm包管理</p><p>4、重定向、管道<br />5、标准输出、标准错误<br />6、使用\屏蔽一个特殊字符的含义<br />7、正则表达式</p><p>二、熟练掌握vim编辑器。</p><p>三、liunx环境下shell脚本、perl脚本的编写<br />为了对网上服务器应用进行管理，通常需要编写一些脚本。<br />脚本的编写重点掌握下面几点：<br />1、理解双引号、单引号、反引号的含义。<br />2、反斜线的使用。<br />3、shell脚本赋值语句左边的变量名不要加上$，常写perl脚本的常犯此错误。<br />4、字符串比较长，含有空格的时候，作为一个参数时脚本出错，用双引号把字符串括起来。<br />5、掌握好awk和sed的用法。</p><p>四、基本软件包的安装<br />apache、resin、mysql<br />一般的步骤就是：<br />configure<br />make<br />make install</p><p>五、相关网站<br />下面的网站是比较优秀的linux网站，可以去看看。<br /><a href="http://www.linuxforum.net/">http://www.linuxforum.net/</a></p></span>
<img src ="http://www.blogjava.net/badboyryan/aggbug/135762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-08-10 11:53 <a href="http://www.blogjava.net/badboyryan/archive/2007/08/10/135762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>damn small linux 安装方法</title><link>http://www.blogjava.net/badboyryan/archive/2007/06/04/121839.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Mon, 04 Jun 2007 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/06/04/121839.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/121839.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/06/04/121839.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/121839.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/121839.html</trackback:ping><description><![CDATA[  前段时间我花50元钱买了一台笔记本电脑,配置很差,CPU是120MHZ,硬盘是540M,内存是48M,并且光驱也是坏的.听人说这种配置只能安装damn small linux操作系统,先从下面这个网址下载了dsl-2.1.iso文件<br />           <a href="http://www.linuxeden.com/download/1119.html">www.linuxeden.com/download/1119.html</a><br />再刻录成光盘,从笔记本电脑上取下硬盘,挂载到台式机上,放入光盘开始安装操作系统,因我第一次安装,不是很清楚,直到出现图形界面,这个时候并没有将系统安装到硬盘,需要进入字符界面,按ctrl+alt+delete三个键转入字符模式,先输入命令sudo su 切换到root模式,然后输入命令dsl-hdinstall回车,按着提示将系统安装到/dev/hda1下,当出现提示创建boot引导时,须选择lilo,最后重启电脑完成安装。<img src ="http://www.blogjava.net/badboyryan/aggbug/121839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-06-04 14:54 <a href="http://www.blogjava.net/badboyryan/archive/2007/06/04/121839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux大师的真传－持之以恒</title><link>http://www.blogjava.net/badboyryan/archive/2007/06/04/121835.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Mon, 04 Jun 2007 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/06/04/121835.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/121835.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/06/04/121835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/121835.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/121835.html</trackback:ping><description><![CDATA[学习LINUX是一个艰难的过程，让我们看看这位大师的教诲吧！<br /><br />     本文献给正在学习Linux及即将学习Linux的朋友，在这学习当中，肯定有部分学习者最终走进了Linux阵营继续深造，也肯定有部分学习者选择了放弃，选择了临阵脱逃。 
<p>　　学习Linux最大的动力是什么？更多人是学习前的热情，保持高度的热情在机子上安装了Linux，在热情没有打消之前，他们愿意接受 Linux的烦燥，是什么让部分人放弃了Linux？其实整个放弃过程是相当复杂的，讲起来是特别简单的，终究是在使用Linux与windows的过程中产生了操作上差异及学习难度等上最终决定了他们放弃Linux。 </p><p>　　其实，操作系统是用来用的，满足不同人群的生活实际需求，他不是特定的，在众多操作系统中你可以选择适合自己的，我是学习Linux的，但我不会建议一个整天只会上网聊天看电影玩游戏的人用Linux并学习Linux。 </p><p>　　为什么要学习Linux？其实你只需要考虑这个问题就行了，不管是什么理由，都是有一定道理的。如果你认定了要学习Linux，那么请你记住这四个字：“持之以恒”。</p><img src ="http://www.blogjava.net/badboyryan/aggbug/121835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-06-04 14:50 <a href="http://www.blogjava.net/badboyryan/archive/2007/06/04/121835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VSFTPD的菜鸟篇：</title><link>http://www.blogjava.net/badboyryan/archive/2007/06/01/121312.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 01 Jun 2007 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/06/01/121312.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/121312.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/06/01/121312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/121312.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/121312.html</trackback:ping><description><![CDATA[
		<p>这是我这个菜鸟学习LINUX所写的第一篇文章，是比较基础的FTP架设的应用，如果我写有什么问题请大家多指教，我后续会陆续出进阶篇把FTP中各种详细的配置跟大家一起进行探讨。<br />我所用的是LINUX AS+VSFTPD-1.2.0-4的系统架构，在这里说明的是如果对配置文件不是很熟悉，最好做个备份，以免误操作：<br /><br /><br />1． 匿名服务器的连接（独立的服务器）<br />在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项：<br />Anonymous_enable=yes (允许匿名登陆)<br />Dirmessage_enable=yes （切换目录时，显示目录下.message的内容）<br />Local_umask=022 (FTP上本地的文件权限，默认是077)<br />Connect_form_port_20=yes （启用FTP数据端口的数据连接）*<br />Xferlog_enable=yes （激活上传和下传的日志）<br />Xferlog_std_format=yes (使用标准的日志格式)<br />Ftpd_banner=XXXXX （欢迎信息）<br />Pam_service_name=vsftpd （验证方式）*<br />Listen=yes （独立的VSFTPD服务器）*<br />功能：只能连接FTP服务器，不能上传和下传<br />注：其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加，是属于FTP的基本选项<br /><br />2． 开启匿名FTP服务器上传权限<br />在配置文件中添加以下的信息即可：<br />Anon_upload_enable=yes (开放上传权限)<br />Anon_mkdir_write_enable=yes （可创建目录的同时可以在此目录中上传文件）<br />Write_enable=yes (开放本地用户写的权限)<br />Anon_other_write_enable=yes (匿名帐号可以有删除的权限)<br /><br />3． 开启匿名服务器下传的权限<br />在配置文件中添加如下信息即可：<br />Anon_world_readable_only=no<br />注：要注意文件夹的属性，匿名帐户是其它（other）用户要开启它的读写执行的权限<br />（R）读-----下传 （W）写----上传 （X）执行----如果不开FTP的目录都进不去<br /><br />4．普通用户FTP服务器的连接（独立服务器）<br />在配置文件中添加如下信息即可：<br />Local_enble=yes （本地帐户能够登陆）<br />Write_enable=no （本地帐户登陆后无权删除和修改文件）<br />功能：可以用本地帐户登陆vsftpd服务器，有下载上传的权限<br />注：在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传<br /><br />5． 用户登陆限制进其它的目录，只能进它的主目录<br />设置所有的本地用户都执行chroot<br />Chroot_local_user=yes （本地所有帐户都只能在自家目录）<br />设置指定用户执行chroot<br />Chroot_list_enable=yes （文件中的名单可以调用）<br />Chroot_list_file=/任意指定的路径/vsftpd.chroot_list<br />注意：vsftpd.chroot_list 是没有创建的需要自己添加，要想控制帐号就直接在文件中加帐号即可<br /><br />6． 限制本地用户访问FTP<br />Userlist_enable=yes (用userlistlai 来限制用户访问)<br />Userlist_deny=no (名单中的人不允许访问)<br />Userlist_file=/指定文件存放的路径/ （文件放置的路径）<br />注：开启userlist_enable=yes匿名帐号不能登陆<br /><br />7． 安全选项<br />Idle_session_timeout=600(秒) （用户会话空闲后10分钟）<br />Data_connection_timeout=120（秒） （将数据连接空闲2分钟断）<br />Accept_timeout=60（秒） （将客户端空闲1分钟后断）<br />Connect_timeout=60（秒） （中断1分钟后又重新连接）<br />Local_max_rate=50000（bite） （本地用户传输率50K）<br />Anon_max_rate=30000（bite） （匿名用户传输率30K）<br />Pasv_min_port=50000 （将客户端的数据连接端口改在<br />Pasv_max_port=60000 50000—60000之间）<br />Max_clients=200 （FTP的最大连接数）<br />Max_per_ip=4 （每IP的最大连接数）<br />Listen_port=5555 （从5555端口进行数据连接）<br /><br />8． 查看谁登陆了FTP,并杀死它的进程<br />ps –xf |grep ftp<br />kill 进程号 </p>
<img src ="http://www.blogjava.net/badboyryan/aggbug/121312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-06-01 10:32 <a href="http://www.blogjava.net/badboyryan/archive/2007/06/01/121312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vsftpd设置参数详细整理篇(应该比较全了)?     </title><link>http://www.blogjava.net/badboyryan/archive/2007/06/01/121311.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 01 Jun 2007 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/06/01/121311.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/121311.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/06/01/121311.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/121311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/121311.html</trackback:ping><description><![CDATA[坛子里参数设置的帖子很多,但没有一个全,现在大部分的兄弟熟悉了基本的设置,于是我想把所有的参数都重新整理一下,一来自己回顾一下,二来也可以让新手们有一个参考资料,其中有一些选项自己也不是很理解,错误之处还请各位斑竹和高手指点批改.如果还有遗漏的也请一并补上,谢啦.<br /><br /><br />也希望把所有vsftpd的设置相关信息贴在下面大家都有一个共同参考的地方.<br /><br /><br />###############################用户登陆控制###########################<br />#接受匿名用户<br />anonymous_enable=YES<br />#匿名用户login时不询问口令<br />no_anon_password=YES <br />#匿名用户主目录<br />anon_root=(none)<br />#接受本地用户<br />local_enable=YES<br />#本地用户主目录<br />local_root=(none)<br />#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录<br />deny_email_enable=YES<br />#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录<br />check_shell=YES<br />#若启用此选项,userlist_deny选项才被启动<br />userlist_enable=YES<br />#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录<br />userlist_deny=NO<br />#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下)<br />passwd_chroot_enable=NO<br />#定义匿名登入的使用者名称。默认值为ftp。<br />ftp_username=FTP<br /><br /><br />###############################用户权限控制###########################<br />#可以上传(全局控制).<br />write_enable=YES<br />#本地用户上传文件的umask<br />local_umask=022<br />#上传文件的权限配合umask使用<br />#file_open_mode=0666<br />#匿名用户可以上传<br />anon_upload_enable=NO<br />#匿名用户可以建目录<br />anon_mkdir_write_enable=NO<br />匿名用户其它的写权利(更改权限?)<br />anon_other_write_enable=NO<br />如果设为YES，匿名登入者会被允许下载可阅读的档案。默认值为YES。<br />anon_world_readable_only=YES<br />#如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名<br />#guest_enable=NO<br />所有匿名上传的文件的所属用户将会被更改成chown_username<br />chown_uploads=YES<br />匿名上传文件所属用户名<br />chown_username=lightwiter<br />#如果启动这项功能，则所有列在chroot_list_file之中的使用者不能更改根目录<br />chroot_list_enable=YES<br />#允许使用"async ABOR"命令,一般不用,容易出问题<br />async_abor_enable=YES<br />管控是否可用ASCII 模式上传。默认值为NO。<br />ascii_upload_enable=YES<br />#管控是否可用ASCII 模式下载。默认值为NO。<br />ascii_download_enable=YES<br />#这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限，当vsftpd 不需要file system 的权限时，就会将使用者限制在此数据夹中。默认值为/usr/share/empty<br />secure_chroot_dir=/usr/share/empty<br /><br /><br />################################超时设置##############################<br /><br />#空闲连接超时<br />idle_session_timeout=600<br />#数据传输超时<br />data_connection_timeout=120<br />#PAVS请求超时<br />ACCEPT_TIMEOUT=60<br />#PROT模式连接超时<br />connect_timeout=60<br /><br /><br /><br />################################服务器功能选项########################<br />#开启日记功能<br />xferlog_enable=YES<br />#使用标准格式<br />xferlog_std_format=YES<br />#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.<br />#log_ftp_protocol=NO<br />#允许使用pasv模式<br />pasv_enable=YES<br />#关闭安全检查,小心呀.<br />#pasv_promiscuous+NO<br />#允许使用port模式<br />#port_enable=YES<br />#关闭安全检查<br />#prot_promiscuous<br />#开启tcp_wrappers支持<br />tcp_wrappers=YES<br />#定义PAM 所使用的名称，预设为vsftpd。<br />pam_service_name=vsftpd<br />#当服务器运行于最底层时使用的用户名<br />nopriv_user=nobody<br />#使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)<br />pasv_address=(none)<br /><br />###############################服务器性能选项#########################<br />#是否能使用ls -R命令以防止浪费大量的服务器资源<br />#ls_recurse_enable=YES<br />#是否使用单进程模式<br />#one_process_model<br />#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式<br />listen=YES<br />#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时，预设会出现拥有者的UID，而不是该档案拥有者的名称。若是希望出现拥有者的名称，则将此功能开启。<br />text_userdb_names=NO<br />#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果<br />use_localtime=NO<br />#测试平台优化<br />#use_sendfile=YES<br /><br />###############################信息类设置#############################<br /><br /><br />#login时显示欢迎信息.如果设置了banner_file则此设置无效<br />ftpd_banner=欢迎来到湖南三辰Fake-Ta FTP 网站.<br />#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容<br />dirmessage_enable=YES<br />#显示会话状态信息,关!<br />#setproctitle_enable=YES<br /><br /><br /><br /><br />########################### 文件定义 #################################<br /><br />#定义不能更改用户主目录的文件<br />chroot_list_file=/etc/vsftpd/vsftpd.chroot_list<br />#定义限制/允许用户登录的文件<br />userlist_file=/etc/vsftpd/vsftpd.user_list<br />#定义登录信息文件的位置<br />banner_file=/etc/vsftpd/banner<br />#禁止使用的匿名用户登陆时作为密码的电子邮件地址<br />banned_email_file=/etc/vsftpd.banned_emails<br />#日志文件位置<br />xferlog_file=/var/log/vsftpd.log<br />#目录信息文件<br />message_file=.message<br /><br /><br />########################## 目录定义 ##################################<br />#定义用户配置文件的目录<br />user_config_dir=/etc/vsftpd/userconf<br />#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的.<br />local_root=webdisk #此项设置每个用户登陆后其根目录为/home/username/webdisk<br />#匿名用户登陆后的根目录<br />anon_root=/var/ftp<br /><br />#########################用户连接选项#################################<br />#可接受的最大client数目<br />max_clients=100<br />#每个ip的最大client数目<br />max_per_ip=5<br />#使用标准的20端口来连接ftp<br />connect_from_port_20=YES<br />#绑定到某个IP,其它IP不能访问<br />listen_address=192.168.0.2<br />#绑定到某个端口<br />#listen_port=2121<br />#数据传输端口<br />#ftp_data_port=2020<br />#pasv连接模式时可以使用port 范围的上界，0 表示任意。默认值为0。<br />pasv_max_port=0<br />#pasv连接模式时可以使用port 范围的下界，0 表示任意。默认值为0。<br />pasv_min_port=0<br /><br />############################数据传输选项##############################<br />#匿名用户的传输比率(b/s)<br />anon_max_rate=51200<br />#本地用户的传输比率(b/s)<br />local_max_rate=5120000<br />######################################################################<br /><br />别外,如果要对每个用户进行单独的控制,只需要在user_config_dir中建立username文件,内容为数据传输和用户权利里面设置个人的合适的选项,用户自定义文件同样适合用pam支持的虚拟用户<br /><br />附: FTP 数字代码的意义<br />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 未执行请求的的命令，名称不正确。 <img src ="http://www.blogjava.net/badboyryan/aggbug/121311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-06-01 10:28 <a href="http://www.blogjava.net/badboyryan/archive/2007/06/01/121311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VSFTPD的高手篇</title><link>http://www.blogjava.net/badboyryan/archive/2007/06/01/121310.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 01 Jun 2007 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/06/01/121310.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/121310.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/06/01/121310.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/121310.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/121310.html</trackback:ping><description><![CDATA[版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 <br /><br /><a href="http://www.5ilinux.com/vsftp02.html" target="_blank"><font color="#003366">http://www.5ilinux.com/vsftp02.html</font></a><br /><br />VSFTPD的高手篇 <br /><br />我可不是高手！！！^_^我只不过是个菜鸟，尽我的能力写出了我这个菜鸟觉得的高手篇，所以有什么错误请大家指正哦！！！<br /><br />环境：linux as 3.0 + vsftpd -1.2.0-4的系统架构，是在独立服务器下的哦！讨厌XINETD^_^<br /><br />1． 配置本地组访问的FTP<br /><br />首先创建用户组 test和FTP的主目录<br /><br />groupadd test<br /><br />mkdir /tmp/test<br /><br />然后创建用户<br /><br />useradd -G test –d /tmp/test –M usr1<br /><br />注：G：用户所在的组 d：表示创建用户的自己目录的位置给予指定 <br /><br />M：不建立默认的自家目录，也就是说在/home下没有自己的目录<br /><br />useradd –G test –d /tmp/test –M usr2<br /><br />接着改变文件夹的属主和权限<br /><br />chown usr1.test /tmp/test ----这表示把/tmp/test的属主定为usr1<br /><br />chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么权限都没有<br /><br />这个实验的目的就是usr1有上传、删除和下载的权限<br /><br />而usr2只有下载的权限没有上传和删除的权限<br /><br />当然啦大家别忘了我们的主配置文件vsftpd.conf<br /><br />要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项是有的哦！<br /><br /><br /><br />2． 配置独立FTP的服务器的非端口标准模式进行数据连接<br /><br />这个非常容易：在VSFTPD。CONF中添加<br /><br />Listen_port=33333<br /><br />就可以了啦！<br /><br /><br /><br />好了重头戏来了，这也是我为什么叫高手篇的缘故！^_^（大家不要扔鸡蛋哦！）<br /><br />3． 配置单独的虚拟FTP，使用虚拟FTP用户，并使建立的四个帐户中有不同的权限<br /><br />（两个有读目录的权限，一个有浏览、上传、下载的权限，一个有浏览、下载、删除和改文件名的权限）<br /><br />A：配置网卡<br /><br />第一块网卡地址是10.2.3.4 掩码是255.255.0.0<br /><br />ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up<br /><br />B：写入/etc/sysconfig中（为了重起后IP地址不会丢失）<br /><br />cd /etc/sysconfig/network-scripts<br /><br />cp ifcfg-eth0 ifcfg-eth0:1<br /><br />vi ifcfg-eth0:1在其中修改内容如下<br /><br />DEVICE=eth0:1<br /><br />BROADCAST=211.131.4.255<br /><br />HWADDR=该网卡的MAC地址<br /><br />IPADDR=211.131.4.253<br /><br />NETMASK=255.255.255.0<br /><br />NETWORK=211.131.4.0<br /><br />onBOOT=yes<br /><br />TYPE=Ethernet<br /><br />wq推出<br /><br />C：进入vsftpd.conf所在的文件夹<br /><br />cp vsftpd.conf vsftpd2.conf<br /><br />修改vsftpd.conf添加以下信息<br /><br />Listen_address=10.2.3.4<br /><br />修改vsftpd2.conf添加以下信息<br /><br />Listen_address=211.131.4.253<br /><br />Ftpd_banner=this is a virtual ftp test<br /><br />到此虚拟的FTP服务器建立好了<br /><br />D：建立logins.txt<br /><br />vi /tmp/logins.txt<br /><br />添加入下信息：<br /><br />longlei------------用户名<br /><br />longlei------------密码<br /><br />zhangweibo<br /><br />zhangweibo<br /><br />jinhui<br /><br />jinhui<br /><br />lxp<br /><br />lxp<br /><br />格式要按照我的来哦，一个用户名，一个密码啦<br /><br />F：建立访问者的口令库文件,然后修改其权限<br /><br />db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db<br /><br />G：进如/etc/pam.d/中创建ftp.vu<br /><br />在此文件中添加如下信息<br /><br />auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login<br /><br />account required /lib/security/pam_userdb.so db=/etc/vsftpd_login<br /><br />H：在/var/ftp/创建目录并改变其属性和它的属主<br /><br />useradd -d /var/ftp/test qiang<br /><br />chmod 700 /var/ftp/test<br /><br />在目录中添加test_file测试文件<br /><br />I：进入vsftpd2.conf修改其中的信息（我加的是）<br /><br />Listen_yes<br /><br />Anonymous_enable=no<br /><br />Local_enable=yes<br /><br />Write_enable=no<br /><br />Anon_upload_enable=no<br /><br />Anon_mkdir_write_enable=no<br /><br />Anon_other_write_enable=no<br /><br />Chroot_local_user=yes<br /><br />Guest_enable=yes----------起用虚拟用户<br /><br />Guest_username=qiang------将虚拟用户映射为本地用户<br /><br />Listen_port=5555<br /><br />Max_client=10<br /><br />Max_per_ip=1<br /><br />Ftpd_banner=this is a virtual server and users<br /><br />Pam_service_name=ftp.vu<br /><br />注：在主配置文件中给的权限越低，在后面分用户管理的时候对拥护的权限划分的空间就越大，因为主配置文件最高的限制服务先读主配置文件，然后再读用户的配置文件<br /><br />重起服务<br /><br />到此虚拟USER就建好了<br /><br />J：在VSFTPD。CONF所在的目录中创建virtaul文件目录<br /><br />并在文件目录中创建以你用户名命名的配置文件<br /><br />Longlei zhangweibo jinhui lxp<br /><br />在longlei中添加：<br /><br />Anon_world_readable_only=no<br /><br />在lxp中添加<br /><br />Anon_world_readable_only=no<br /><br />这样此两个用户就有了浏览目录的权限了<br /><br />在jinhui中添加<br /><br />Anon_world_readable_only=no<br /><br />Write_enable=yes<br /><br />Anon_upload_enable=yes<br /><br />此用户就有了上传、下载和浏览的权限<br /><br />在zhangweibo中添加<br /><br />Anon_world_readable_only=no<br /><br />Write_enable=yes<br /><br />Anon_upload_enable=yes<br /><br />Anon_other_write_enable=yes<br /><br />此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限<br /><br />K：修改vsftpd2.conf<br /><br />加入user_config_dir=/vsftpd.conf所在的目录/virtual<br /><br />重起服务器就搞定了<br /><br /><br /><br />好了大家别走开，现在隆重推出VSFTPD。CONF中的我所知道的所有配置信息<br /><br />Anonymous_enable=yes (允许匿名登陆)<br /><br />Dirmessage_enable=yes （切换目录时，显示目录下.message的内容）<br /><br />Local_umask=022 (FTP上本地的文件权限，默认是077)<br /><br />Connect_form_port_20=yes （启用FTP数据端口的数据连接）*<br /><br />Xferlog_enable=yes （激活上传和下传的日志）<br /><br />Xferlog_std_format=yes (使用标准的日志格式)<br /><br />Ftpd_banner=XXXXX （欢迎信息）<br /><br />Pam_service_name=vsftpd （验证方式）*<br /><br />Listen=yes （独立的VSFTPD服务器）*<br /><br />Anon_upload_enable=yes (开放上传权限)<br /><br />Anon_mkdir_write_enable=yes （可创建目录的同时可以在此目录中上传文件）<br /><br />Write_enable=yes (开放本地用户写的权限)<br /><br />Anon_other_write_enable=yes (匿名帐号可以有删除的权限)<br /><br />Anon_world_readable_only=no (放开匿名用户浏览权限)<br /><br />Ascii_upload_enable=yes (启用上传的ASCII传输方式)<br /><br />Ascii_download_enable=yes (启用下载的ASCII传输方式)<br /><br />Banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)<br /><br />Idle_session_timeout=600(秒) （用户会话空闲后10分钟）<br /><br />Data_connection_timeout=120（秒） （将数据连接空闲2分钟断）<br /><br />Accept_timeout=60（秒） （将客户端空闲1分钟后断）<br /><br />Connect_timeout=60（秒） （中断1分钟后又重新连接）<br /><br />Local_max_rate=50000（bite） （本地用户传输率50K）<br /><br />Anon_max_rate=30000（bite） （匿名用户传输率30K）<br /><br />Pasv_min_port=50000 （将客户端的数据连接端口改在<br /><br />Pasv_max_port=60000 50000—60000之间）<br /><br />Max_clients=200 （FTP的最大连接数）<br /><br />Max_per_ip=4 （每IP的最大连接数）<br /><br />Listen_port=5555 （从5555端口进行数据连接）<br /><br />Local_enble=yes （本地帐户能够登陆）<br /><br />Write_enable=no （本地帐户登陆后无权删除和修改文件）<br /><br />这是一组<br /><br />Chroot_local_user=yes （本地所有帐户都只能在自家目录）<br /><br />Chroot_list_enable=yes （文件中的名单可以调用）<br /><br />Chroot_list_file=/任意指定的路径/vsftpd.chroot_list <br /><br />（前提是chroot_local_user=no）<br /><br />这又是一组<br /><br />Userlist_enable=yes （在指定的文件中的用户不可以访问）<br /><br />Userlist_deny=yes<br /><br />Userlist_file=/指定的路径/vsftpd.user_list<br /><br />又开始单的了<br /><br />Banner_fail=/路径/文件名 （连接失败时显示文件中的内容）<br /><br />Ls_recurse_enable=no<br /><br />Async_abor_enable=yes<br /><br />one_process_model=yes<br /><br />Listen_address=10.2.2.2 （将虚拟服务绑定到某端口）<br /><br />Guest_enable=yes (虚拟用户可以登陆)<br /><br />Guest_username=所设的用户名 （将虚拟用户映射为本地用户）<br /><br />User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹 <br /><br />(指定不同虚拟用户配置文件的路径)<br /><br />又是一组<br /><br />Chown_uploads=yes （改变上传文件的所有者为root）<br /><br />Chown_username=root<br /><br />又是一组<br /><br />Deny_email_enable=yes (是否允许禁止匿名用户使用某些邮件地址)<br /><br />Banned_email_file=//任意指定的路径/xx/<br /><br />又是单的<br /><br />Pasv_enable=yes （ 服务器端用被动模式）<br /><br />User_config_dir=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)<br /><img src ="http://www.blogjava.net/badboyryan/aggbug/121310.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-06-01 10:24 <a href="http://www.blogjava.net/badboyryan/archive/2007/06/01/121310.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RED HAT Linux 9下面搭建FTP环境 - VSFTPD安装 </title><link>http://www.blogjava.net/badboyryan/archive/2007/06/01/121306.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 01 Jun 2007 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/06/01/121306.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/121306.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/06/01/121306.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/121306.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/121306.html</trackback:ping><description><![CDATA[0、关于本文档 <br /><br />　　本文档是个人的学习整理。允许大家翻阅，摘抄，引用。更欢迎指出其中不对之处。文档的内容主要来自VSFTPD自身文档、个人学习心得以及网络资料，若有类同，实属正常，∶）。 <br /><br />　　本文档基于RedHat Linux 9和VSFTPD-1.1.3-8。如果有不同版本，则有专门文字说明。 <br /><br />1、VSFTPD简述 <br /><br />　　如果试问哪种FTP服务器最安全？那么在UNIX和Linux中，首推的就是VSFTP（Very Secure FTP Daemon，非常安全的FTP服务器）。顾名思义，VSFTPD设计的出发点就是安全性。同时随着版本的不断升级，VSFTPD在性能和稳定性上也取得了极大的进展。象RedHat、SUSE、Debian、GNU、GNOME、KDE等一些大型站点都采用VSFTPD作为它们的FTP服务器。大家可以到<a href="http://vsftpd.beasts.org/" target="_blank"><font color="#003366">http://vsftpd.beasts.org/</font></a>了解它的最新情况。 <br /><br />2、VSFTPD的安装 <br /><br />2.1、RHL9+vsftpd-.1.1.3-8.i386.rpm包的安装 <br /><br />　　VSFTPD的安装很简单。在RHL9中，在图形界面下依次执行“Main Menu”－“System Settings”－“Add/Remove Applications”－选择FTP服务器－“更新”，或者在字符界面中执行以下命令，就可以完成安装。 <br />　　rpm -ivh vsftpd-1.1.3-8.i386.rpm <br /><br />2.2、vsftpd-1.2.0.tar.gz的安装 <br /><br />　　⑴准备条件 <br /><br />　　VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户，如果用户已经存在，useradd命令有相应提示。 <br />　　[root@hpe45 root]# useradd nobody <br />　　useradd: user nobody exists <br /><br />　　VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录，如果目录已经存在，mkdir命令有相应提示。 <br />　　[root@hpe45 root]# mkdir /usr/share/empty/ <br />　　mkdir: cannot create directory '/usr/share/empty': File exists <br /><br />　　VSFTPD提供匿名FTP服务时，需要“ftp”用户和一个有效的匿名目录。 <br />　　[root@hpe45 root]# mkdir /var/ftp/ <br />　　[root@hpe45 root]# useradd -d /var/ftp ftp <br />　　接下来的操作对于ftp用户是否已经存在都是有用的。 <br />　　[root@hpe45 root]# chown root.root /var/ftp <br />　　[root@hpe45 root]# chmod og-w /var/ftp <br /><br />　　⑵编译VSFTPD <br /><br />　　从官方站点下载到/root目录，执行以下命令： <br />　　[root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz <br />　　[root@hpe45 root]# cd vsftpd-1.2.0 <br />　　[root@hpe45 vsftpd-1.2.0]# make <br /><br />　　⑶安装编译好的VSFTPD <br /><br />　　执行“make install”将编译好的二进制文件、手册等复制到相应目录。在RHL9上，可能需要手动执行以下复制： <br />　　[root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd <br />　　[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf.5 /usr/local/share/man/man5 <br />　　[root@hpe45 vsftpd-1.2.0]# cp vsftpd.8 /usr/local/share/man/man8 <br />　　此外，“make install”没有复制简单的配置文件，建议执行以下命令： <br />　　[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc <br /><br />　　⑷为本地用户设置PAM <br /><br />　　如果允许本地用户登录VSFTPD，执行以下操作： <br />　　[root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp <br /><br />3、VSFTPD的文件结构 <br /><br />　　VSFTPD的文件结构是很简洁的，主要包括： <br />　　/usr/sbin/vsftpd ---- VSFTPD的主程序 <br />　　/etc/rc.d/init.d/vsftpd ---- 启动脚本 <br />　　/etc/vsftpd/vsftpd.conf ---- 主配置文件 <br />　　/etc/pam.d/vsftpd ---- PAM认证文件 <br />　　/etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件 <br />　　/etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件 <br />　　/var/ftp ---- 匿名用户主目录 <br />　　/var/ftp/pub　　　　　　---- 匿名用户的下载目录 <br />　　此外，还有一些说明文档和手册文件。 <br /><br />　　此外VSFTPD的日志文件位于/etc/logrotate.d/vsftpd.log。 <br /><br />4、VSFTPD的启动与停止 <br /><br />　　VSFTPD可以单独(Standalone)方式运行，如同httpd、named这类的服务器的运行方式，这是RHL9中默认的方式；也可以采用xinetd方式运行，这是RHL7.x、8中的默认方式。具体的运行方式由参数listen决定。从RHL中VSFTPD的运行方式，也可以看出VSFTPD的逐步发展。 <br /><br />　　当listen参数值为YES时，RHL9中的默认值，VSFTPD单独运行，我们可以使用脚本/etc/rc.d/init.d/vsftpd来启动、关闭以及重启VSFTPD。命令如下： <br />　　/etc/rc.d/init.d/vsftpd start|stop|restart <br /><br />　　如果说在RHL9上，您还希望使用Xinetd启动VSFTPD的运行方式，那么首先要将vsftpd.conf配置文件中的listen参数值改为NO。其次，生成一个/etc/xinetd.d/vsftpd文件，内容如下： <br />　　service vsftpd <br />　　{ <br />　　disable = no <br />　　socket_type = stream <br />　　wait = no <br />　　user = root <br />　　server = /usr/sbin/vsftpd <br />　　port = 21 <br />　　log_on_success += PID HOST DURATION <br />　　log_on_failure += HOST <br />　　} <br />　　通过修改disable值为no或yes，并重新启动xinetd，从而启动或停止VSFTPD。 <br /><br />　　由于VSFTPD的单独模式已经拥有足够的能力，所以后面6中讨论到的应用，都是以单独模式来运行的，而非Xinetd方式。 <br /><br />　　注：还可以直接执行vsftpd来启动FTP服务，关闭时使用“kill”命令。 <br />　　[root@hpe45 root]# /usr/local/sbin/vsftpd &amp; <br /><br />5、VSFTPD的设置选项 <br /><br />　　VSFTPD的配置文件/etc/vsftpd/vsftpd.conf是个文本文件。以“#”字符开始的行是注释行。每个选项设置为一行，格式为“option=value”，注意“=”号两边不能留空白符。除了这个主配置文件外，还可以给特定用户设定个人配置文件，具体介绍见后。 <br />　　VSFTPD包中所带的vsftpd.conf文件配置比较简单，而且非常偏执狂的（文档自称:-)）。我们可以根据实际情况对其进行一些设置，以使得VSFTPD更加可用。 <br /><br />5.1、连接选项 <br /><br />　　本部分主要是一些与建立FTP链接相关的选项。 <br /><br />5.1.1、监听地址与控制端口 <br /><br />　　listen_address=ip address <br />　　此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了在主机的哪个IP地址上监听FTP请求，即在哪个IP地址上提供FTP服务。对于只有一个IP地址的主机，不需要使用此参数。对于多址主机，不设置此参数，则监听所有IP地址。默认值为无。 <br /><br />　　listen_port=port_value <br />　　指定FTP服务器监听的端口号(控制端口)，默认值为21。此选项在standalone模式下生效。 <br /><br />5.1.2、FTP模式与数据端口 <br /><br />　　FTP 分为两类，PORT FTP和PASV FTP，PORT FTP是一般形式的FTP。这两种FTP在建立控制连接时操作是一样的，都是由客户端首先和FTP服务器的控制端口(默认值为21)建立控制链接，并通过此链接进行传输操作指令。它们的区别在于使用数据传输端口(ftp-data)的方式。PORT FTP由FTP服务器指定数据传输所使用的端口，默认值为20。PASV FTP由FTP客户端决定数据传输的端口。PASV FTP这种做法，主要是考虑到存在防火墙的环境下，由客户端与服务器进行沟通(客户端向服务器发出数据传输请求中包含了数据传输端口)，决定两者之间的数据传输端口更为方便一些。 <br /><br />　　port_enable=YES|NO <br />　　如果你要在数据连接时取消PORT模式时，设此选项为NO。默认值为YES。 <br /><br />　　connetc_from_port_20=YES|NO <br />　　控制以PORT模式进行数据传输时是否使用20端口(ftp-data)。YES使用，NO不使用。默认值为NO，但RHL自带的vsftpd.conf文件中此参数设为YES。 <br /><br />　　ftp_data_port=port number <br />　　设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。 <br /><br />　　port_promiscuous=YES|NO <br />　　默认值为NO。为YES时，取消PORT安全检查。该检查确保外出的数据只能连接到客户端上。小心打开此选项。 <br /><br />　　pasv_enable=YES|NO <br />　　YES，允许数据传输时使用PASV模式。NO，不允许使用PASV模式。默认值为YES。 <br /><br />　　pasv_min_port=port number <br />　　pasv_max_port=port number <br />　　设定在PASV模式下，建立数据传输所可以使用port范围的下界和上界，0 表示任意。默认值为0。把端口范围设在比较高的一段范围内，比如50000-60000，将有助于安全性的提高。 <br /><br />　　pasv_promiscuous=YES|NO <br />　　此选项激活时，将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。 <br /><br />　　pasv_address= <br />　　此选项为一个数字IP地址，作为PASV命令的响应。默认值为none，即地址是从呼入的连接套接字(incoming connectd socket)中获取。 <br /><br />5.1.3 ASCII模式 <br /><br />　　默认情况下，VSFTPD是禁止使用ASCII传输模式。即使FTP客户端使用asc命令，指明要使用ASCII模式，但是，VSFTPD表面上接受了asc命令，而在实际传输文件时，还是使用二进制方式。下面选项控制VSFTPD是否使用ASCII传输模式。 <br /><br />　　ascii_upload_enable=YES|NO <br />　　控制是否允许使用ascii模式上传文件，YES允许，NO不允许，默认为NO。 <br /><br />　　ascii_download_enable=YES|NO <br />　　控制是否允许使用ascii模式下载文件，YES允许，NO不允许，默认为NO。 <br /><br />5.2、性能与负载控制 <br /><br />5.2.1、超时选项 <br /><br />　　idle_session_timeout= <br />　　空闲（发呆）用户会话的超时时间，若是超出这时间没有数据的传送或是指令的输入，则会强迫断线。单位为秒，默认值为300。 <br /><br />　　data_connection_timeout= <br />　　空闲的数据连接的超时时间。默认值为300 秒。 <br /><br />　　accept_timeout=numerical value <br />　　接受建立联机的超时设定，单位为秒。默认值为60。 <br /><br />　　connect_timeout=numerical value <br />　　响应PORT方式的数据联机的超时设定，单位为秒。默认值为60。以上两个选项针对客户端的，将使客户端空闲1分钟后自动中断连接，并在中断1分钟后自动激活连接。 <br /><br />5.2.2 负载控制 <br /><br />　　max_clients=numerical value <br />　　此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了FTP服务器最大的并发连接数，当超过此连接数时，服务器拒绝客户端连接。默认值为0，表示不限最大连接数。 <br /> <br />　　max_per_ip=numerical value <br />　　此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将影响到象网际快车这类的多进程下载软件。默认值为0，表示不限制。 <br /><br />　　anon_max_rate=value <br />　　设定匿名用户的最大数据传输速度value，以Bytes/s为单位。默认无。 <br /><br />　　local_max_rate=value <br />　　设定用户的最大数据传输速度value，以Bytes/s为单位。默认无。此选项对所有的用户都生效。此外，也可以在用户个人配置文件中使用此选项，以指定特定用户可获得的最大数据传输速率。 <br />　　步骤如下： <br />　　①在vsftpd.conf中指定用户个人配置文件所在的目录，如： <br />　　user_config_dir=/etc/vsftpd/userconf <br />　　②生成/etc/vsftpd/userconf目录。 <br />　　③用户个人配置文件是在该目录下，与特定用户同名的文件，如： <br />　　/etc/vsftpd/userconf/xiaowang <br />　　④在用户的个人配置文件中设置local_max_rate参数，如： <br />　　local_max_rate=80000 <br />　　以上步骤设定FTP用户xiaowang的最大数据传输速度为80KBytes/s。 <br /><br />　　VSFTPD 对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s， 但实际的速度可能在80KBytes/s 到120KBytes/s 之间。当然，若是线路带宽不足时，速率自然会低于此限制。 
<p>5.3 用户选项 <br /><br />　　VSFTPD的用户分为三类：匿名用户、本地用户（local user）以及虚拟用户（guest）。 <br /><br />5.3.1、匿名用户 <br /><br />　　anonymous_enable=YES|NO <br />　　控制是否允许匿名用户登录，YES允许，NO不允许，默认值为YES。 <br /><br />　　ftp_username= <br />　　匿名用户所使用的系统用户名。默认下，此参数在配置文件中不出现，值为ftp。 <br /><br />　　no_anon_password=YES|NO <br />　　控制匿名用户登入时是否需要密码，YES不需要，NO需要。默认值为NO。 <br />　　 <br />　　deny_email_enable=YES|NO <br />　　此参数默认值为NO。当值为YES时，拒绝使用banned_email_file参数指定文件中所列出的e-mail地址进行登录的匿名用户。即，当匿名用户使用banned_email_file文件中所列出的e-mail进行登录时，被拒绝。显然，这对于阻击某些Dos攻击有效。当此参数生效时，需追加banned_email_file参数 <br /><br />　　banned_email_file=/etc/vsftpd.banned_emails <br />　　指定包含被拒绝的e-mail地址的文件，默认文件为/etc/vsftpd.banned_emails。 <br /><br />　　anon_root= <br />　　设定匿名用户的根目录，即匿名用户登入后，被定位到此目录下。主配置文件中默认无此项，默认值为/var/ftp/。 <br /><br />　　anon_world_readable_only=YES|NO <br />　　控制是否只允许匿名用户下载可阅读文档。YES，只允许匿名用户下载可阅读的文件。NO，允许匿名用户浏览整个服务器的文件系统。默认值为YES。 <br /><br />　　anon_upload_enable=YES|NO <br />　　控制是否允许匿名用户上传文件，YES允许，NO不允许，默认是不设值，即为NO。除了这个参数外，匿名用户要能上传文件，还需要两个条件：一，write_enable参数为YES;二，在文件系统上，FTP匿名用户对某个目录有写权限。 <br /><br />　　anon_mkdir_write_enable=YES|NO <br />　　控制是否允许匿名用户创建新目录，YES允许，NO不允许，默认是不设值，即为NO。当然在文件系统上，FTP匿名用户必需对新目录的上层目录拥有写权限。 <br /><br />　　anon_other_write_enable=YES|NO <br />　　控制匿名用户是否拥有除了上传和新建目录之外的其他权限，如删除、更名等。YES拥有，NO不拥有，默认值为NO。 <br /><br />　　chown_uploads=YES|NO <br />　　是否修改匿名用户所上传文件的所有权。YES，匿名用户所上传的文件的所有权将改为另外一个不同的用户所有，用户由chown_username参数指定。此选项默认值为NO。 <br /><br />　　chown_username=whoever <br />　　指定拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用。不推荐使用root用户。 <br /><br />5.3.2、本地用户 <br /><br />　　在使用FTP服务的用户中，除了匿名用户外，还有一类在FTP服务器所属主机上拥有账号的用户。VSFTPD中称此类用户为本地用户（local users），等同于其他FTP服务器中的real用户。 <br /><br />　　local_enable=YES|NO <br />　　控制vsftpd所在的系统的用户是否可以登录vsftpd。默认值为YES。 <br /><br />　　local_root= <br />　　定义所有本地用户的根目录。当本地用户登入时，将被更换到此目录下。默认值为无。 <br /><br />　　user_config_dir= <br />　　定义用户个人配置文件所在的目录。用户的个人配置文件为该目录下的同名文件。个人配置文件的格式与vsftpd.conf格式相同。例如定义 user_config_dir=/etc/vsftpd/userconf，并且主机上有用户xiaowang,lisi，那我们可以在 user_config_dir的目录新增名为xiaowang、lisi的两个文件。当用户lisi 登入时，VSFTPD则会读取user_config_dir下lisi这个文件中的设定值，应用于用户lisi。默认值为无。 <br /><br />5.3.3、虚拟用户 <br /><br />　　guest_enable=YES|NO <br />　　若是启动这项功能，所有的非匿名登入者都视为guest。默认值为关闭。 <br /><br />　　guest_username= <br />　　定义VSFTPD的guest用户在系统中的用户名。默认值为ftp。 <br /><br />5.4、安全措施 <br /><br />5.4.1、用户登录控制 <br /><br />　　pam_service_name=vsftpd <br />　　指出VSFTPD进行PAM认证时所使用的PAM配置文件名，默认值是vsftpd，默认PAM配置文件是/etc/pam.d/vsftpd。 <br /><br />　　/etc/vsftpd.ftpusers <br />　　VSFTPD禁止列在此文件中的用户登录FTP服务器。这个机制是在/etc/pam.d/vsftpd中默认设置的。 <br /><br />　　userlist_enable=YES|NO <br />　　此选项被激活后，VSFTPD将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时，该用户在提示输入密码之前就被禁止了。即该用户名输入后，VSFTPD查到该用户名在列表，VSFTPD就直接禁止掉该用户，不会再进行询问密码等后续步聚。默认值为NO。 <br /><br />　　userlist_file=/etc/vsftpd.user_list <br />　　指出userlist_enable选项生效后，被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list。 <br /><br />　　userlist_deny=YES|NO <br />　　决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES，默认值，禁止文件中的用户登录，同时也不向这些用户发出输入口令的提示。NO，只允许在文件中的用户登录FTP服务器。 <br />　　 <br />　　tcp_wrappers=YES|NO <br />　　在VSFTPD中使用TCP_Wrappers远程访问控制机制，默认值为YES。 <br /><br />5.4.2、目录访问控制 <br /><br />　　chroot_list_enable=YES|NO <br />　　锁定某些用户在自家目录中。即当这些用户登录后，不可以转到系统的其他目录，只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。 <br /><br />　　chroot_list_file=/etc/vsftpd/chroot_list <br />　　指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。 <br /><br />　　chroot_local_users=YES|NO <br />　　将本地用户锁定在自家目录中。当此项被激活时，chroot_list_enable和chroot_local_users参数的作用将发生变化，chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后，可能带来安全上的冲突，特别是当用户拥有上传、 shell访问等权限时。因此，只有在确实了解的情况下，才可以打开此参数。默认值为NO。 <br /><br />　　passwd_chroot_enable <br />　　当此选项激活时，与chroot_local_user选项配合，chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO。 <br /><br />5.4.3、文件操作控制 <br /><br />　　hide_ids=YES|NO <br />　　是否隐藏文件的所有者和组信息。YES，当用户使用"ls -al"之类的指令时，在目录列表中所有文件的拥有者和组信息都显示为ftp。默认值为NO。 <br /><br />　　ls_recurse_enable=YES|NO <br />　　YES，允许使用"ls -R" 指令。这个选项有一个小的安全风险，因为在一个大型FTP站点的根目录下使用"ls -R"会消耗大量系统资源。默认值为NO。 <br /><br />　　write_enable=YES|NO <br />　　控制是否允许使用任何可以修改文件系统的FTP 的指令，比如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE 以及SITE。默认值为NO，不过自带的简单配置文件中打开了该选项。 <br /><br />　　secure_chroot_dir= <br />　　这选项指向一个空目录，并且ftp用户对此目录无写权限。当vsftpd不需要访问文件系统时，这个目录将被作为一个安全的容器，用户将被限制在此目录中。默认目录为/usr/share/empty。 <br /><br />5.4.4、新增文件权限设定 <br /><br />　　anon_umask= <br />　　匿名用户新增文件的umask 数值。默认值为077。 <br /><br />　　file_open_mode= <br />　　上传档案的权限，与chmod 所使用的数值相同。如果希望上传的文件可以执行，设此值为0777。默认值为0666。 <br /><br />　　local_umask= <br />　　本地用户新增档案时的umask 数值。默认值为077。不过，其他大多数的FTP服务器都是使用022。如果您的用户希望的话，可以修改为022。在自带的配置文件中此项就设为了022。 <br /><br />5.5、提示信息 <br /><br />　　ftpd_banner=login banner string <br />　　此参数定义了login banner string（登录欢迎语字符串）。用户可以自行修改。预设值为无。当ftpd_banner设置后，将取代系统原来的欢迎词。 <br /><br />　　banner_file=/directory/vsftpd_banner_file <br />　　此项指定一个文本文件，当使用者登入时，会显示此该文件的内容，通常为欢迎话语或是说明。默认值为无。与ftpd_banner相比， banner_file是文本文件的形式，而ftpd_banner是字串格式。banner_file选项将取代ftpd_banner选项。 <br /><br />　　dirmessage_enable=YES|MO <br />　　控制是否启用目录提示信息功能。YES启用，NO不启用，默认值为YES。此功能启用后，当用户进入某一个目录时，会检查该目录下是否有message_file选项所指定的文档，若是有，则会出现此文档的内容，通常这个档案会放置欢迎话语，或是对该目录的说明。 <br /><br />　　message_file= <br />　　此选项，仅在dirmessage_enable选项激活方生效。默认值为.message。 <br /><br />5.6、日志设置 <br /><br />　　xferlog_enable=YES|NO <br />　　控制是否启用一个日志文件，用于详细记录上传和下载。该日志文件由xferlog_file选项指定。默认值为NO，但简单配置文件中激活此选项。 <br /><br />　　xferlog_file= <br />　　这个选项设定记录传输日志的文件名。默认值为/var/log/vsftpd.log。 <br /><br />　　xferlog_std_format=YES|NO <br />　　控制日志文件是否使用xferlog的标准格式，如同wu-ftpd一样。使用xferlog格式，可以重新使用已经存在的传输统计生成器。然而，默认的日志格式更为可读性。默认值为NO，但自带的配置文件中激活了此选项。 <br /><br />　　log_ftp_protocol=YES|NO <br />　　当此选项激活后，所有的FTP请求和响应都被记录到日志中。提供此选项时，xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。 <br /><br />5.7、其他设置 <br /><br />　　setproctitle_enable=YES|NO <br />　　YES，VSFTPD将在系统进程列表中显示每个会话(session)的状态。也就是说，进程报告将显示每个vsftpd会话在做什么(挂起、下载等)，如用ps -ef|grep ftp。出于安全的目的，可以考虑将此选项关闭。NO，进程报告只显示一个vsftpd进程在运行。默认值为NO。 <br /><br />　　text_userdb_names=YES|No <br />　　当使用者登入后使用ls -al 之类指令时，目录列表的用户和组信息域，默认是出现拥有者的UID，而不是该档案拥有者的名称。若是希望出现拥有者的名称，则将此功能开启。默认值为NO。 <br /><br />　　user_localtime=YES|NO <br />　　默认为NO。YES，VSFTPD显示目录列表时使用你本地时区的时间。默认是显示GMT时间。同样，由ftp命令“MDTM”返回的时间值也受此选项影响。 <br /><br />　　check_shell=YES|NO <br />　　此选项仅对不使用PAM方式的VSFTPD生效。当此选项关闭后，当本地用户登录时，VSFTPD不会检查/etc/shells文件以寻找一个有效的用户shell。默认为YES。 <br /><br />　　nopriv_user= <br />　　指定一个用户，当VSFTPD不想要什么权限时，使用此用户身份。这用户最好是一个专用的用户，而不是用户nobody。在大多数的机器上，nobody用户被用于大量重要的事情。默认值为nobody。 <br /><br />　　pam_service_name= <br />　　指明VSFTPD使用用PAM验证服务时的PAM配置文件名。默认值为ftp。 <br /><br />6、VSFTPD应用 <br /><br />　　本部分介绍VSFTPD的具体应用方法。 <br /><br />6.1、允许匿名用户上传文件 <br /><br />　　在vsftpd.conf文件中修改或增加以下选项： <br />　　write_enable=YES <br />　　anon_world_readable_only=NO <br />　　anon_upload_enable=YES <br />　　anon_mkdir_write_enable=YES <br /><br />　　然后创建供匿名用户上传文件的目录，并设定权限： <br />　　# mkdir /var/ftp/incoming <br />　　# chmod o+w /var/ftp/incoming <br />　　由于匿名用户（ftp）上传文件，需要对incoming目录进行操作，而incoming为root所有，匿名用户（ftp）对于incoming来说是其他用户，所以要加入其他用户（o）的写权限。 <br /><br />6.2、限制用户在自家目录 <br /><br />　　在默认配置中，本地用户可以切换到自家目录以外的目录进行浏览，并在权限范围内进行上传和下载，这无疑是个不安全因素。 <br />　　我们可以设置chroot，让本地用户登录后只能访问自家目录，无法访问其他目录。相关的选项有三个：chroot_local_user、chroot_list_enable、chroot_list_file。限制用户在自家目录有两种做法： <br />　　1、限制所有的本地用户在自家目录 <br />　　chroot_local_user=YES <br />　　这种做法，可能会带来一些安全性上的冲突。参见前面的chroot_local_user选项描述。 <br />　　2、限制部分本地用户在自家目录 <br />　　chroot_local_user=NO <br />　　chroot_list_enable=YES <br />　　chroot_list_file=/etc/vsftpd.chroot_list <br />　　在/etc/vsftpd.chroot_list文件中加入要限制的本地用户名。注意一个用户名一行。 <br /><br />6.3、配置高安全级别的匿名FTP服务器 <br /><br />　　VSFTPD自带的简单配置文件已经自称是偏执狂了，这里看看能否更加偏执一些，<img style="CURSOR: pointer" onclick="javascript:window.open(this.src);" src="http://192.168.3.130/bbs/images/smilies/smile.gif" onload="javascript:if(this.width&gt;500){this.resized=true;this.style.width=500;}" align="absMiddle" border="0" />。有些选项默认已经采用安全性的设置，这里就不再写出了。 <br /><br />　　#只允许匿名访问，不允许本地用户访问 <br />　　anonymous_enable=YES <br />　　local_enable=NO <br /><br />　　#使用ftpd_banner取代VSFTPD默认的欢迎词，免得泄漏相关信息 <br />　　ftpd_banner=Welcome to this FTP Server <br />　　#只让匿名用户浏览可阅读的文件，不可以浏览整个系统 <br />　　anon_world_readable_only=YES <br />　　#隐藏文件的所有者和组信息，匿名用户看到的文件的所有者和组全变为ftp <br />　　hide_ids=YES <br /><br />　　#取消写权限 <br />　　write_enable=NO <br />　　anon_upload_enable=NO <br />　　anon_mkdir_write_enable=NO <br />　　anon_other_write_enable=NO <br /><br />　　#使用单独模式，并指定监听的IP地址 <br />　　listen_address=ip address <br />　　#对连接进行控制，还有超时时间，那就根据具体情况再说了。 <br />　　connect_from_port_20=YES <br />　　pasv_min_port=50000 <br />　　pasv_max_port=60000 <br />　　#控制并发数，限定每个IP地址的并发数，这个嘛，根据用户自已定了。 <br />　　max_clients=numerical value <br />　　max_per_ip=numerical value <br />　　#限定下载速度，具体限多大，就由用户自己定了，80KB/s，也很快了吧。 <br />　　anon_max_rate=80000 <br /><br />　　#启用详细的日志记录格式 <br />　　xferlog_enable=YES <br /><br />6.4、基于IP地址的虚拟FTP服务器 <br /><br />　　假定服务器有两个IP地址，192.168.0.1和192.168.0.2。VSFTPD是建立在192.168.0.1上的，现在我们在192.168.0.2上再提供一个虚拟FTP服务器。如何在一台服务器上使用多个IP 地址，请参考相关文档。 <br /><br />　　1、创建虚拟FTP服务器的根目录。 <br />　　mkdir -p /var/ftp2/pub <br />　　确保/var/ftp2和/var/ftp2/pub目录的拥有者和组均为root，掩码为755。 <br /><br />　　2、增加虚拟FTP服务器的匿名用户帐号。原先的FTP服务器使用系统用户ftp作为其匿名用户帐号。我们要增加一个ftp2用于虚拟FTP服务器。 <br />　　useradd -d /var/ftp2 -M ftp2 <br /><br />　　3、创建虚拟FTP服务器的配置文件。复制原来的vsftpd.conf作为虚拟FTP服务器的配置文件，并修改相关参数。 <br />　　cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf <br />　　新添或修改以下参数： <br />　　listen=YES <br />　　listen_address=192.168.0.2 <br />　　ftp_username=ftp2 <br /><br />　　注：由于VSFTPD默认是监听所有的IP地址，当我们设定基于IP的虚拟FTP服务器时，为防止原来的FTP服务器与虚拟FTP服务器发生监听上的冲突，原FTP服务器需要指定监听的IP地址。在这里，原来的配置文件中就要设置listen_address=192.168.0.1。 <br /><br />　　4、启动虚拟FTP服务器。 <br /><br />　　/etc/rc.d/init.d/vsftpd脚本在启动时，扫描/etc/vsftpd/目录下所有的*.conf文件，按照 *.conf文件的先后，依次启用vsftpd进程，每个vsftpd进程对应一个.conf文件。即，“ls /etc/vsftpd/”列表的次序与“ps -aux |grep vsftpd”中的顺序一样。当然了，“ps -aux | grep vsftpd”中也显示出vsftpd所使用的配置文件，从中也可以看哪个vsftpd进程对应哪个FTP服务器。如果没有列出配置文件，那就是默认的 vsftpd.conf，那么该进程也就是原来的FTP服务器进程。 <br />　　由于第3步中虚拟FTP服务器的配置文件被命名为vsftpd2.conf文件，所以我们可以用/etc/rc.d/init.d/vsftpd脚本同时启动或关闭原FTP服务器和新加的虚拟FTP服务器。 <br />　　以下命令单独启动虚拟FTP服务器： <br />　　/usr/sbin/vsftpd /etc/vsftpd/vsftpd2.conf &amp; <br />　　单独关闭虚拟FTP服务器，用“ps -aux | grep vsftpd”查出进程号，再用kill指令杀死虚拟FTP的进程。 <br /><br />6.5、虚拟用户的配置 <br /><br />6.5.1、VSFTPD的虚拟用户介绍 <br /><br />　　VSFTPD的本地用户本身是系统的用户，除了可以登录FTP服务器外，还可以登录系统使用其他系统资源，而VSFTPD的虚拟用户则是 FTP服务的专用用户，虚拟用户只能访问FTP服务器资源。对于只需要通过FTP对系统有读写权限，而不需要其他系统资源的用户或情况来说，采用虚拟用户方式是很适合的。 <br />　　VSFTPD的虚拟用户采用单独的用户名/口令保存方式，与系统账号（passwd/shadow）分离，这大大增强了系统的安全性。 VSFTPD可以采用数据库文件来保存用户/口令，如hash;也可以将用户/口令保存在数据库服务器中，如MySQL等。VSFTPD验证虚拟用户，则采用PAM方式。由于虚拟用户的用户名/口令被单独保存，因此在验证时，VSFTPD需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证，这就是guest用户，这正如同匿名用户也需要有一个系统用户ftp一样。当然，guest用户也可以被认为是用于映射虚拟用户。 <br />　　配置虚拟用户分为几部分：guest用户的创建、用户/口令的保存、PAM认证配置、vsftpd.conf文件设置等。具体的配置方法，参考下面小节。注：在后面的例子中，假定存在虚拟用户xiaotong和xiaowang。 <br /><br />6.5.2 用户创建和目录设置 <br /><br />　　在系统中添加vsftpdguest用户，作为虚拟用户在系统中的代表。 <br /><br />　　useradd vsftpdguest <br /><br />　　当虚拟用户登录后，所在的位置为vsftpdguest的自家目录/home/vsftpdguest。如果要让虚拟用户登录到/var/ftp等其他目录，修改vsftpdguest的自家目录即可。 <br /><br />6.5.3、配置文件的设置 <br /><br />6.5.3.1、基本设置。 <br /><br />　　在vsftpd.conf配置文件中，加入以下参数： <br />　　guest_enable=YES <br />　　guest_username=vsftpdguest <br /><br />6.5.3.2、虚拟用户的权限配置。 <br /><br />　　VSFTPD-1.2.0添加了virtual_use_local_privs参数，当该参数激活（YES）时，虚拟用户使用与本地用户相同的权限。当此参数关闭（NO）时，虚拟用户使用与匿名用户相同的权限，这也就是VSFTPD-1.2.0之前版本对虚拟用户权限的处理方法。这两者种做法相比，后者更加严格一些，特别是在有写访问的情形下。默认情况下此参数是关闭的（NO）。 <br />　　下面先介绍virtual_use_local_privs=NO时，即VSFTPD-1.2.0之前版本对虚拟用户权限的配置方法： <br /><br />　　①控制虚拟用户浏览目录 <br />　　如果让用户不能浏览目录，但仍可以对文件操作，那么需要执行以下二个步骤：一，配置文件中，anon_world_readable_only=YES。二，虚拟用户目录的权限改为只能由vsftpdguest操作： <br />　　[root@hpe45 vsftpd]# chown vsftpdguest.vsftpdguest /home/vsftpdguest <br />　　[root@hpe45 vsftpd]# chmod 700 /home/vsftpdguest <br />　　②允许虚拟用户上传文件 <br />　　write_enable=YES <br />　　anon_upload_enable=YES <br />　　③允许虚拟用户修改文件名和删除文件 <br />　　anon_other_write_enable=YES <br />　　由于以上选项的设置同样会对匿名用户生效。如果不想匿名用户趁机拥有同样的权限，最好是禁止匿名用户登录。 <br /><br />　　在VSFTPD-1.2.0中当virtual_use_local_privs=YES时，只需write_enable=YES，虚拟用户就可以就拥有写权限。 <br /><br />6.5.3.3、虚拟用户的其他配置 <br /><br />　　①限定虚拟用户在自家目录。 <br /><br />　　chroot_local_user=NO <br />　　chroot_list_enable=YES <br />　　chroot_list_file=/etc/vsftpd.chroot_list <br />　　在/etc/vsftpd.chroot_list文件中加入xiaotong和xiaowang。 <br />　　或者，chroot_local_user=YES <br /><br />　　②虚拟用户的个人配置。 <br /><br />　　如果想让个别的虚拟用户拥有自己特别的配置，同样可以建立虚拟用户的个人配置文件。在主配置文件中加入： <br />　　user_config_dir=/etc/vsftpd/vsftpd_user_conf <br />　　生成/etc/vsftpd/vsftpd_user_conf目录，在该目录下建立与特定虚拟用户同名的文件： <br />　　[root@hpe45 vsftpd]# mkdir vsftpd_user_conf <br />　　[root@hpe45 vsftpd]# cd vsftpd_user_conf <br />　　[root@hpe45 vsftpd_user_conf]# touch xiaowang <br />　　然后在xiaowang文件中就可以加入专对xiaowang生效的选项设置了。 <br />　　注：如果在个人配置文件中加入chroot_local_user=YES是无效的。 <br /><br />6.5.3.4、虚拟用户个人目录设置 <br /><br />　　大家可以发现，无论是哪个虚拟用户，登录后所在的目录都是/home/vsftpdguest，即都是guest_username用户的自家目录。下面，介绍如何为每个虚拟用户建立自家目录。 <br />　　一种作法是在虚拟用户的个人配置文件中使用local_root选项指定虚拟用户的自家目录。以xiaowang为例，在第上步的基础上，首先/etc/vsftpd/vsftpd_user_conf/xiaowang文件中加入： <br />　　local_root=/home/xiaowang <br />　　新建xiaowang目录，并将权限设为vsftpdguest： <br />　　[root@hpe45 home]# mkdir xiaowang <br />　　[root@hpe45 home]# chown vsftpdguest.vsftpdguest ./xiaowang <br /><br />6.5.4、MySQL保存虚拟用户 <br /><br />　　本节介绍如何将虚拟用户的用户名和口令保存在MySQL的数据库中。这主要分二个部分，一是将用户和口令保存在数据库，二是设置相应的PAM 认证。为了方便论述，做如下假定：数据库vsftpdvu，表users，字段name和passwd用于保存虚拟用户的用户名和口令；为了安全，只授权 vsftpdguest读vsftpdvu数据库的users表。 <br /><br />　　1、虚拟用户的用户名/口令的保存。这部分在MySQL数据库中完成。首先，创建数据库vsftpdvu以及表users，并插入虚拟用户xiaotong、xiaowang。执行以下命令： <br />　　[root@hpe45 vsftpd]#mysql -p <br />　　mysql&gt;create database vsftpdvu; <br />　　mysql&gt;use vsftpdvu; <br />　　mysql&gt;create table users(name char(16) binary,passwd char(16) binary); <br />　　mysql&gt;insert into users (name,passwd) values ('xiaotong',password('qqmywife')); <br />　　mysql&gt;insert into users (name,passwd) values ('xiaowang',password('ttmywife')); <br />　　mysql&gt;quit <br /><br />　　然后，授权vsftpdguest只能读vsftpdvu数据库的users表。执行以下命令： <br />　　[root@hpe45 vsftpd]#mysql -u root mysql -p <br />　　mysql&gt;grant select on vsftpdvu.users to vsftpdguest@localhost identified by 'i52serial0'; <br />　　mysql&gt;quit <br /><br />　　如果要验证刚才的操作是否成功可以执行下面命令： <br />　　[root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu <br />　　mysql&gt;select * from users; <br />　　如果成功，将会列出xiaotong、xiaowang和加密后的密码。 <br /><br />　　2、设置PAM认证。这里我们要用到一个利用mysql进行pam验证的开源项目（http: //sourceforge.net/projects/pam-mysql/）。首先从网站下载它的程序包pam_myql-0.5.tar.gz，复制到/root目录中。在编译安装之前，要确保mysql-devel的RPM包已经安装在你的机器上，如果没有请从RHL安装光盘中安装该包。然后，执行以下命令： <br />　　[root@hpe45 root]#tar xvzf pam_mysql-0.5.tar.gz <br />　　[root@hpe45 root]#cd pam_mysql <br />　　[root@hpe45 pam_mysql]#make <br />　　[root@hpe45 pam_mysql]#make install <br />　　make install这一步可能会出现错误，那只好手动将该目录下生成的pam_mysql.o复制到/lib/security目录下。 <br />　　接下来，我们要设置vsftpd的PAM验证文件。打开/etc/pam.d/vsftpd文件，加入以下内容： <br />　　auth required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2 <br />　　account required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2 <br />　　上面涉及到的参数，只要对应前面数据库的设置就可以明白它们的含义。这里需要说明的是crypt参数，crypt=0，口令以明文方式（不加密）保存在数据库中；crypt=1，口令使用UNIX系统的DES加密方式加密后保存在数据库中；crypt=2，口令经过MySQL的 password()函数加密后保存。</p><img src ="http://www.blogjava.net/badboyryan/aggbug/121306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-06-01 10:13 <a href="http://www.blogjava.net/badboyryan/archive/2007/06/01/121306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux操作精华推荐 VI使用技巧介绍</title><link>http://www.blogjava.net/badboyryan/archive/2007/04/30/114796.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Mon, 30 Apr 2007 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/04/30/114796.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/114796.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/04/30/114796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/114796.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/114796.html</trackback:ping><description><![CDATA[
		<p>一、vi基本命令 </p>
		<p>1）光标命令 </p>
		<p>左h 上j 下k 右l </p>
		<p>nG --n为行数，该命令立即使光标跳到指定行；n为空，光标跳到文件最后一行。 </p>
		<p>Ctrl+G--光标所在位置的行数和列数报告 </p>
		<p>w,b--使光标向前或向后跳过一个单词 </p>
		<p>
				<br />2）编辑命令 </p>
		<p>(n)dd 删除 </p>
		<p>(n)yy 复制 </p>
		<p>i 光标前插入 </p>
		<p>a 当前字母后插入 </p>
		<p>r 在当前光标处替换 </p>
		<p>cw 替换光标所在处的单词（从光标开始处） </p>
		<p>dw 删除光标所在处的单词 </p>
		<p>x 删除（右） </p>
		<p>X 删除（左） </p>
		<p>u 撤销 </p>
		<p>. 重复上次操作 </p>
		<p>o 插入新行 </p>
		<p>J 合并两行 </p>
		<p>A 行尾 </p>
		<p>:.,3w /tmp/xx </p>
		<p>:r /tmp/xx </p>
		<p>
				<br />3）查找命令 </p>
		<p>f 查找 </p>
		<p>/ 查找 </p>
		<p>4）复制粘贴命令 </p>
		<p>(n)yy 拷贝n行到剪切板 </p>
		<p>p 粘贴(后) </p>
		<p>P 粘贴（当前） </p>
		<p>
				<br />二、vi选项设置 </p>
		<p>
				<br />vi是一个强大的编辑器，它不仅可以用来处理我们平时的文本工作，还可以用来写程序文件。在用vi进行程序编辑时，它可以实现语法加亮显示、自动缩进、括号匹配等编辑功能。为控制不同的编辑功能，vi 提供了很多内部选项。 </p>
		<p>
				<br />利用 :set 命令可以设置选项。基本语法为： </p>
		<p>
				<br />: set option 设置选项 option </p>
		<p>
				<br />常见的功能选项包括： </p>
		<p>
				<br />autoindent 设置该选项，则正文自动缩进 </p>
		<p>
				<br />ignorecase 设置该选项，则忽略规则表达式中大小写字母的区别 </p>
		<p>
				<br />number 设置该选项，则显示正文行号 </p>
		<p>
				<br />ruler 设置该选项，则在屏幕底部显示光标所在行、列的位置 </p>
		<p>
				<br />tabstop 设置按 Tab 键跳过的空格数。例如:set tabstop=n，n默认值为8 </p>
		<p>
				<br />1）语法加亮显示 </p>
		<p>
				<br />: syntax on 该命令在vi中打开语法加亮显示的功能。这样以后在输入的字符中，vi就会自动的识别出关键字，字符串以及其他的一些语法元素，并以不同的颜色来显示出来。 </p>
		<p>
				<br />2）自动缩进 </p>
		<p>
				<br />在vi中自动缩进的选项一般有以下的几种： </p>
		<p>
				<br />autoindent: 在这种缩进形式中，新增加的行和前一行有相同的缩进形式。 </p>
		<p>
				<br />smartindent: 在这种缩进模式中，每一行都和前一行有相同的缩进量，同时能够正确的识别出{和}，当遇到右花括号（}），则取消了缩进形式。此外还增加了识别C语言关键字的功能。如果一行是以#开头的，那么这种格式将会被特殊对待而不采用缩进格式。这种缩进格式强于autoindent。 </p>
		<p>
				<br />cindent：这是C语言的缩进形式，采用这样的缩进方式的程序语言有：C，C++,Java等。当采用这种缩进格式时，vi就会自动的采用标准的C语言形式。这种缩进格式强于smartindent。 </p>
		<p>
				<br />可以用如下命令进行缩进形式的设置： </p>
		<p>
				<br />：set autoindent（ai） </p>
		<p>
				<br />：set smartindent（si） </p>
		<p>
				<br />：set cindent（ci） </p>
		<p>
				<br />3）显示行号 </p>
		<p>
				<br />：set number（nu） 显示行号 </p>
		<p>
				<br />: set nonumber (nonu) 不显示行号 </p>
		<p>
				<br />在每个用户的目录下，都有一个vi的配置文件".vimrc"(没有的话可以自己创建)。用户可以编辑它，输入以上命令，使这些设置在每次vi时都有效。例如：在.vimrc文件中加入如下设置行： </p>
		<p>
				<br />set nu #显示行号 </p>
		<p>
				<br />set nonu #不显示行号 </p>
		<p>
				<br />set ic #查找时不考虑大小写 </p>
		<p>
				<br />set noic #查找时考虑大小写 </p>
		<p>
				<br />set smartindent #自动缩进 </p>
		<p>
				<br />syntax on ＃语法加亮 </p>
		<p> </p>
		<p>原文链接: <a href="http://tech.ccidnet.com/art/302/20070428/1073137_1.html">http://tech.ccidnet.com/art/302/20070428/1073137_1.html</a><br /></p>
<img src ="http://www.blogjava.net/badboyryan/aggbug/114796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-04-30 15:48 <a href="http://www.blogjava.net/badboyryan/archive/2007/04/30/114796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一次性成功编译Linux内核！</title><link>http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 27 Apr 2007 04:46:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/114044.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/114044.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/114044.html</trackback:ping><description><![CDATA[
		<p>一次即大功告成 Linux内核升级全过程  <br /><br /></p>
		<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1583735<br /><br /><br /><br />今天终于成功的编译了linux-2.6.18的内核，是在redhat9 2.4.20-8的内核基础上进行的！<br /><br /><br />作者：飘扬　来源：飞飞博客　发布时间：2007.04.18 <br /> <br />由于开发环境需要在linux-2.6内核上进行，于是准备对我的虚拟机上的Linux系统升级。没想到这一弄就花了两天时间（反复装系统，辛苦啊~~），总算把Linux系统从2.4.20-8内核成功升级到了2.6.18内核。 </p>
		<p>
				<br />网上虽然有很多介绍Linux内核升级的文章，不过要么过时，下载链接失效；要么表达不清，不知所云；更可气的是很多文章在转载过程中命令行都有错误。刚开始我就是在这些“攻略”的指点下来升级的，以致于浪费了很多时间。 </p>
		<p>
				<br />现在，费尽周折，升级成功，心情很爽，趁性也来写个“升级攻略”吧！于是特意又在虚拟机上重新安装一个Linux系统，再来一次完美的升级，边升级边记录这些步骤，写成一篇Linux内核升级记实录（可不是回忆录啊！），和大家一起分享~~！ </p>
		<p>
				<br />首先说明，下面带#号的行都是要输入的命令行，且本文提到的所有命令行都在终端里输入。接下来，让我们一起开始精彩的Linux内核升级之旅吧！ </p>
		<p>
				<br />一、准备工作 </p>
		<p>
				<br />启动Linux系统，并用根用户登录，进入终端模式下。 </p>
		<p>
				<br />1、查看Linux内核版本 </p>
		<p># uname -a </p>
		<p>如果屏幕显示的是2.6.x，说明你的已经是2.6的内核，也用不着看下文了，该干什么干什么去吧！~~~如果显示的是2.4.x，那恭喜你，闯关通过，赶快进行下一步。 </p>
		<p>
				<br />2、下载2.6内核源码 </p>
		<p>下载地址：<a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2</a></p>
		<p>
				<br />3、下载内核升级工具 </p>
		<p>(1)下载module-init-tools-3.2.tar.bz2 </p>
		<p>
				<a href="http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2">http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2</a>
		</p>
		<p>(2)下载mkinitrd-4.1.18-2.i386.rpm </p>
		<p>
				<a href="http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm">http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm</a>
		</p>
		<p>(3)下载lvm2-2.00.25-1.01.i386.rpm </p>
		<p>
				<a href="http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm">http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm</a>
		</p>
		<p>(4)下载device-mapper-1.00.19-2.i386.rpm </p>
		<p>
				<a href="http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm">http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm</a>
		</p>
		<p>
				<br />(2.6.18内核和这4个升级工具我都有备份，如果以上下载地址失效，请留下你的邮箱，我给你发过去) <br /><a href="http://www.fly2.cn/guestbook">http://www.fly2.cn/guestbook</a><br />二、配置工作 </p>
		<p>
				<br />好啦，2.6内核和4个升级工具都下载完了(少一个也不行，如果没有下载齐全，请不要尝试下面的步骤，升级是不会成功的)，下面回到Linux系统中开始配置工作吧。 </p>
		<p>
				<br />4、将下载好的内核和4个升级工具都拷贝到/usr/src文件夹下。怎么拷贝就不用我教了吧~~~~不会拷贝的去撞墙吧！~~呵呵！ </p>
		<p>
				<br />5、拷贝完毕，开始解压新内核，具体操作请依次执行以下命令： </p>
		<p># cd /usr/src (进入到/usr/src目录下，如果已经在/usr/src目录下，可不执行该命令) </p>
		<p># rm –rf linux (删除linux文件夹。值得一提的是，如果内核先前从未编译过，则没有这个文件夹，此命令行可略过) </p>
		<p># tar jvxf linux-2.6.18.tar.bz2 (解压新内核) </p>
		<p># ln -s linux-2.6.18 linux (重新生成linux文件夹) </p>
		<p>
				<br />6、安装module-init-tools工具包 </p>
		<p>在/usr/src目录下，依次执行下列命令：（ZhiQiao：最好先看下README） </p>
		<p># tar jvxf module-init-tools-3.2.tar.bz2 (解压module-init-tools) </p>
		<p># cd module-init-tools-3.2 (由/usr/src目录进入module-init-tools目录下) </p>
		<p>#./configure --prefix=/ （--prefix=/若重新配置文件把文件放到指定的目录下）</p>
		<p># make moveold </p>
		<p># make all install </p>
		<p>#./generate-modprobe.conf /etc/modprobe.conf </p>
		<p>
				<br />7、安装另外三个升级工具 </p>
		<p>回到/usr/src目录下，依次执行下列3个命令来安装另外三个升级工具： </p>
		<p># rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意，这里一定要加入--nodeps参数，下同) （ZhiQiao：nodeps不验证组件的关联性）</p>
		<p># rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm </p>
		<p># rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm </p>
		<p>
				<br />如果不更新以上几个升级包，在后面编译内核时会提示以下错误： </p>
		<p>mkinitrd failed </p>
		<p>make[1]: *** [install] Error 1 </p>
		<p>make: *** [install] Error 2 </p>
		<p>
				<br />8、配置内核选项。有点繁琐，~~希望一次成功哦~~。 </p>
		<p># cd linux-2.6.18 (进入到/usr/src/linux-2.6.18目录下) </p>
		<p># make mrproper (该命令可确保源代码目录下没有不正确的.o文件) </p>
		<p># make menuconfig （配置内核各选项） </p>
		<p>
				<br />此时会出现一个图形界面，列出了所有的内核配置选项，有的选项下还有子选项，你可以用方向键来选择，用Y键来确定。经过我多次试验，大多数选项默认就行，以下几个选项必须选择（请认真核对下面每一个选项，否则编译很有可能前功尽弃）： </p>
		<p>
				<br />(1)Loadable Module support选项中，一定要选上“Module unloading”和“Automatic kernel module loading”这两项； </p>
		<p>(2)Device Drivers---&gt;Block Devices中一定要选上Loopback device support； </p>
		<p>Device Drivers---&gt;Multi-device support(RAID and LVM)”处要选上“device mapper support”； </p>
		<p>Device Drivers---&gt;Graphics support”, 一定要选上” Support for frame buffer devices”； </p>
		<p>Device Drivers ---&gt;;USB support ---&gt;选上”USB Mass Storage support”（如果是在实环境中，想要更多USB支持，就全选吧。我的是在虚拟机中，用不着了） </p>
		<p>Device Drivers ---&gt;; Network device support ---&gt;;Ethernet (10 or 100Mbit) ---&gt;; &lt;*&gt;; AMD PCnet32 PCI support </p>
		<p>(3) File system---&gt;（以下9个选项是关于ext2和ext3文件系统配置，全部选上） </p>
		<p>Second extended fs support </p>
		<p>Ext2 extended attributes </p>
		<p>Ext2 POSIX Access Control Lists </p>
		<p>Ext2 Security Labels </p>
		<p>Ext3 journalling file system support </p>
		<p>Ext3 extended attributes </p>
		<p>Ext3 POSIX Access Control Lists </p>
		<p>Ext3 Security Labels </p>
		<p>JBB (ext3) debugging support </p>
		<p>File system---&gt;DOS/FAT/NT Filesystems ---&gt;选上“ NTFS file system support”； </p>
		<p>File Systems --&gt; Miscellaneous filesystems ---&gt;&lt;*&gt; Compressed ROM file system support (cramfs) </p>
		<p>
				<br />注意： </p>
		<p>ext2和ext3文件系统配置很重要，也是必需的，如果对Ext3、Ext2文件的支持直接编译进内核，在你reboot时机器就会当掉，出现如下错误信息： </p>
		<p>kernel panic : no init found ,try passing init = option to kernel..... </p>
		<p>或者是： </p>
		<p>VFS:Cannot open root device "hdxy" or unknow-block(0,0) </p>
		<p>Please append a correct "root=" boot option </p>
		<p>kernel panic:VFS:Unable to mount root fs on unknown-block(0,0) </p>
		<p>或者是： </p>
		<p>mount: error 19 mounting ext3 </p>
		<p>pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2 </p>
		<p>umount /initrd/proc fail: 2 </p>
		<p>Freeing unused kernel memory: 244k freed </p>
		<p>Kernel panic – not syncing: No init found. Try passing init = option to kernel </p>
		<p>（我的机器就是在重启之后出现第三种错误，进不去系统，郁闷死，只好重装了~~~） </p>
		<p>
				<br />（4）如果你在vmware下重新编译内核，硬盘用的是scsi的，以下选项必选： </p>
		<p>Device Drivers ---&gt;SCSI device support ---&gt;&lt;*&gt;SCSI disk support </p>
		<p>Device Drivers---&gt;SCSI device support---&gt;SCSI low-level drivers---&gt;;&lt;*&gt;; BusLogic SCSI support </p>
		<p>
				<br />三、编译工作 </p>
		<p>
				<br />OK，繁杂的配置工作完成了，至此，编译前的准备工作都做好了！ </p>
		<p>9、开始编译啦……： </p>
		<p>在/usr/src/linux-2.6.18目录下，执行以下命令即可编译。编译需要一段时间，给自己倒杯茶耐心等候吧！ </p>
		<p># make dep （建立编译时所需的从属文件。注意：如果内核从未编译过，此步可跳过） </p>
		<p># make clean （清除内核编译的目标文件） </p>
		<p># make bzImage （注意大小写。这一步才真正编译内核）（ZhiQiao：这步大约花了我10分钟时间，配置：512M内存，1.8G CPU） </p>
		<p>内核编译成功后，会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用make zImage编译，内核很大的话，系统会提示你使用make bzImage命令来编译，所以我直接用make bzImage来编译。 </p>
		<p># make modules （编译可加载模块） （ZhiQiao：这步大约花了20分钟时间）</p>
		<p># make modules_install （安装可加载模块） </p>
		<p>安装成功后，系统会在/lib/modules目录下生成一个2.6.18子目录，里面存放着新内核的所有可加载模块。 </p>
		<p># make install （安装新内核） </p>
		<p>
				<br />注意：make install的时候可能会出现如下错误信息： </p>
		<p>No module BusLogic found for kernel 2.6。18 </p>
		<p>mkinitrd failed </p>
		<p>此问题一般只出现在SCSI硬盘＋VMWARE+REDHAT架构中，因为BusLogic被编译进了内核而不是一个module的形式（2.4内核的Buslogic模块即使静态编译进内核也不行）。解决方式是直接将可以BusLogic.o文件复制过去： </p>
		<p># cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi </p>
		<p>不过别忘记，复制过后再执行一下make install。 </p>
		<p>（如果make menuconfig时，把BusLogic模块选成M--Module模式--就不会出现这个提示。） <br /> <br />ZhiQiao：这里我是按上面所说的方法做的结果在启动时出现关于BusLogic的错误，后来我将虚拟机的硬盘换成了IDE的，成功升级！Vmware默认的硬盘是SCSI的，有很多人不知道怎么改成IDE的，具体方法可以参考四、启动新内核 </p>
		<p>10、将新内核和System.map文件拷贝到/boot目录下，依次执行以下命令： </p>
		<p># cp /usr/src/linux-2.6.18/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18 </p>
		<p># cp /usr/src/linux-2.6.18/System.map /boot/System.map-2.6.18 </p>
		<p># cd /boot （进入boot目录） </p>
		<p># rm –rf System.map (删除原来的连接) </p>
		<p># ln -s System.map-2.6.18 System.map (重新建立连接) </p>
		<p>
				<br />11、修改Grub启动管理器 </p>
		<p>如果没有错误的话, 下面开始修改grub配置文件（不要告诉我你用的lilo） </p>
		<p>在/boot目录下，执行以下命令： </p>
		<p># new-kernel-pkg --mkinitrd --depmod --install 2.6.18 （这时候你的/boot下生成一个initrd-2.4.12.img，并且你的grub.conf也作了相应更改） </p>
		<p>
				<br /># df （查看根目录在那个分区，下一步要用到。注意，这里根分区不时boot的那个50M的分区，而一般是你最大的那个分区，也就是”/”，千万不要搞错哦。我的为 /dev/hda2） </p>
		<p>
				<br /># vi grub/grub.conf （ZhiQiao：此处应该为/grub/grub.conf）</p>
		<p>进入grub.conf文件，找到如下信息： </p>
		<p>default=1 </p>
		<p>timeout=10 </p>
		<p>splashimage=(hd0,0)/grub/splash.xpm.gz </p>
		<p>title Red Hat Linux (2.6.18) </p>
		<p>root (hd0,0) </p>
		<p>kernel /vmlinuz-2.6.18 ro root= LABEL=/ </p>
		<p>initrd /initrd-2.6.18.img </p>
		<p>做两处修改： </p>
		<p>（1） 将default=1改为default=0（不改的话，重启之后默认进入2.4内核） </p>
		<p>（2） 将kernel行的“LABEL=/”换成根目录所在的分区（上一步查看的就是） </p>
		<p>此步很重要，修改错误将会可能导致进不去系统，我把我修改后的grub.conf文件列出来，不明之处，可以对照修改： </p>
		<p>default=0 </p>
		<p>timeout=10 </p>
		<p>splashimage=(hd0,0)/grub/splash.xpm.gz </p>
		<p>title Red Hat Linux (2.6.18) </p>
		<p>root (hd0,0) </p>
		<p>kernel /vmlinuz-2.6.18 ro root=/dev/hda2 </p>
		<p>initrd /initrd-2.6.18.img </p>
		<p>title Red Hat Linux (2.4.20-8) </p>
		<p>root (hd0,0) </p>
		<p>kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ </p>
		<p>initrd /initrd-2.4.20-8.img </p>
		<p>
				<br />12，OK，大功告成！赶快重启，看看升级后的2.6内核吧! <br /><br />13，下一步该做什么呢？我的qq：147863130<br /></p>
		<p>
				<br />我编译以后成功运行看看我的版本号！下图<br /><br /><img alt="redhat9上面的linux-2.6.18的内核" src="http://www.blogjava.net/images/blogjava_net/badboyryan/14948/o_rdt.bmp" align="center" /><br /> </p>
		<br />
		<br />
		<p id="TBPingURL"> </p>
<img src ="http://www.blogjava.net/badboyryan/aggbug/114044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-04-27 12:46 <a href="http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux2.6.9内核如何编译</title><link>http://www.blogjava.net/badboyryan/archive/2007/04/26/113748.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Thu, 26 Apr 2007 04:50:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/04/26/113748.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/113748.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/04/26/113748.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/113748.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/113748.html</trackback:ping><description><![CDATA[
		<p>redhat9<br />2.6.9内核</p>
		<p>1、越来越多的Linuxer开始对尚处在测试中的2.6内核产生了兴趣，确实它非常具有吸引力，众多的特性让人眼花潦乱。我也从2.4全面转到了2.6内核之下，享受着新特性带来的新鲜体验。不过不少兄弟在编译新内核时或多或少的遇到了一些问题，看来新娘的盖 头也不是那么容易揭开的：)<br />因此我打算写一些文章来介绍编译新内核时的一些应该注意的地方，以减少兄弟们在编译新内核时的麻烦。<br />由于我的水平十分有限，写这样的文章实在是勉为其难。文中肯定有错误疏失之处，还请兄弟们多多包涵：) <br />第一部分，准备： 要 使用新的内核首先当然要取得新内核的源码，内核的官方网站是<a href="http://www.kernel.org">http://www.kernel.org</a> 在上面可以得到最新的内核。2.6的更新是相当快的，你可以在命令行下使用finger @kernel.org命令来快速得到当前最新的内核列表。在这篇文章中我将以2.6.0-test6为 准。 下载了内核源码之后，我 们要使用<br />tar jxvf linux-2.6.0-test6.tar.bz2来提取源码，如果你下载的是以tgz结尾的压缩包就使用zxvf参数来 解压。我强烈建议你不要使用 /usr/src/linux这个目录来存放源码，因为使用这个目录你需要手工在/usr/include目录下作一些符号链接，这 实在不是一个好主意。 所以我建议你为源码单独建一个目录，这里我们的目录是/src/linux-2.6.0-test6。<br /> 要编译与正常运行新的内核你需 要升级一些软件包，这些信息在源码目录下的Documentation/Changes文件中，<br />请根据你的实际情况选择升级。这其中我强调一下你应该升级 Module-Init-Tools，不要被你当前系统中depmod -V输出的版本号迷惑(在RH9中 它的输出是2.4.22,感觉好象要比Changes中所要求的要高，实际上它们使用不同的版本规则)。新的 Module-Init-Tools在下面的网址中取得：<br />http: //www.kernel.org/pub/linux/kernel/people/rusty/modules/ 我使用的是0.9.14。<br />如果你下载的是源码<br />使用如下步骤进行编译 ./configure --prefix=/ make moveold <br />这一步会将你以前的insmod, modprobe, rmmod和 lsmod<br />重命名为insmod.old,modprobe.old, rmmod.old lsmod.old。     make make install<br /> 然后使用 ./generate-modprobe.conf /etc/modprobe.conf <br />将原来的/etc/modules.conf转换到/etc/modprobe.conf <br />如果你使用devfs系统你还需要复制modprobe.devfs 到/etc目录下。</p>
		<p>当你升级完相关软件包之后，准备工作就算完成了，下面我们将进入到编译阶段。 <br />第二部分 <br />编译：<br /> 2.6的build系统与2.4有很大的不同，实际上是更加简单与方便了。</p>
		<p>第一步我们要进入源码目录 cd /src/linux-2.6.0-test6<br />make mrproper </p>
		<p>这 时我们就已经在源码目录下了,make mrproper是用来清除一些老的配置文件、过时的已编译文件，打补丁遗留的备份文件等工作的。</p>
		<p>如果你是从官方网站下载并且是第一次编译这一步可以不 作。事实上就算你以前编译过，在打了一些补丁或者重新更改设置后再次编译也可不 作这一步，这方面的内容我将在以后的补遗中作解释。<br />现在你只管按步就般的作 不用考虑它。 下面我们就可以进行内核的配置了。 </p>
		<p>先介绍一下新内核中的图形界面配置工具：<br />新内核中有两个GUI配置工具，过去的make xconfig<br />现在是一个使用QT库作为界面方案的配置工具了 ，所以你要使用它必需先安装QT库。一般的发行版光盘中都包含了这个软件包。<br />另一个是make gconfig这是一个使用GTK库作为界面方案的工具 ，同样你要使用它就要先安装GTK库。<br />这两个工具与原来的GUI工具在界面上有很大的变化，更加符合一般图形界面程序的使用习惯。 而传统的<br /> 控制台配置工具menuconfig则没什么太大的变化基本上保持了原来的样子，不喜欢花里糊哨的GUI工具的兄弟还是用这个吧：)<br /> 下 面我们就要 开始配置内核了，新内核的build系统有一个新的特性，它会在启动配置工具时读取你当前的系统配置，从而保持与你当前配置相同的选项。而 在 2.4中它则是配置为默认选项的。这个特性其实是为了方便你以后的升级工作，在内核特性变化不大的情况下可以直接以当前的选项为基础 从而省去逐项配置的麻 烦。但由于我们现在是从2.4来升级的，它们之间的差别太大了，所以这反而会给我们造成麻烦。<br />有两种方法可以让2.6以默认选项来启动配置工具，<br />第一种就 是将你当前的配置文件也就是/boot/config-XXX移除，另一种是在执行配置工具前先执行make  defconfig.我推荐这种方法。 </p>
		<p>在2.6中还添加了几个以调试为目的的make选项，它们是allyesconfig、allnoconfig、allmodconfig分别表示将 所有选项加载为y、将所有选项加载为n、将所有选项加载为m。它们是为内核开发人员与测试人员准备的，与我们的关系不大。 下面我们开始 配置内核，这里使用的工具为menuconfig。<br />首先在命令行模式下执行： make menuconfig 在闪过几行字之后就出现了如图1 的界面</p>
		<p>
				<img alt="内核选项" src="http://www.blogjava.net/images/blogjava_net/badboyryan/14948/o_1.bmp" align="center" />
		</p>
		<p>
				<br />在 界面的上部是配置工作的使用说明，<br />使用箭头键在 各选项间移动，使用enter进入下一层菜单，每个选项上的高亮字母是键盘快捷方式，<br />使用它可以快速的到达 你想设置的菜单项上。<br />在括号中 <br />按y将这个项目编译进内核中，<br />按M编译为模块，<br />按N为不选择。<br />按？将打印这个选项的帮助信息，<br />按esc将返回到上层菜单。</p>
		<p> GUI工具的基本概 念也与之类似我们就不详细讨论了。<br />在后面我将主要使用menuconfig来设置各个选项，选项的次序以它为准，其它工具中各选项也基 本与之对 应。 </p>
		<p>第一项 Code maturity level options (代码成熟度选项) 按enter进入后选项如下</p>
		<p>[*] Prompt for development and/or incomplete  code/drivers 默认情况下是选择的，这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它，因为有许多设备可能必 需选择这个选项才能进行配置，实际上它是安全的。 <br />[*] Select only drivers expected to compile cleanly 选择这个选项你将不会看到一 些已知的存在问题的驱动程序选项，默认的情况下也是选择的。如果你有设备没有找到驱动选项，你可以将这一项去掉，或许就可以找到相关 驱动了，不过它可能是有BUG的。<br />[*] Select only drivers that don't need compile-time external firmware 如果你不需要在内核对一些 外部设备的固件作map支持就选择它，这也是默认选项。</p>
		<p> 第二项 General setup 其中的选项如下 </p>
		<p>[*] Support for paging of anonymous  memory 这个选项将使你的内核支持虚拟内存，也就是让你的计算机好象拥有比实际内存更多 多的内存空间用来执行很大的程序。默认是选择 的。 <br />[*] System V IPC 为进程提供通信机制，这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行， 所以不用考虑，这里一定要选。<br /> [ ] BSD Process Accounting 这里选择Y将会让内核为用户层的进程建立一个帐目(进程通过一个特殊的系统 调用来通知内核)，当程序退出时内核会将进程的相关信息记录到帐目文件中，主要包括进程的创建时间、 创建者，内存占用等信息。如果你 需要就Y吧：) <br />[*] Sysctl support 这将提供一个接口让你可以动态的更改一些核心参数与变量，而不需要重新启动系统。打开这个选项将会 增加内核的体积至少8KB。如果你的内核仅用制作安装与恢复系统系统盘那么可以不选，以减少对内存的占用。 <br />[ ] Kernel .config support  这将会把内核的配置信息与相关的文档说明编译进内核中，以后可以使用一些工具来提取它用来重新构建内核，一般不用选它。 <br />[ ] Remove  kernel features (for embedded systems) ---&gt; 这个选项将会把一些特性从内核中移除，以减少内核体积。对于桌面用户来讲，这可不是一 个好主意，所以不要选它。至于其中的内容我会在以后的补遗中介绍。</p>
		<p> 第三项 Loadable module support (可加载模块选项) 其选项如下：<br /> [*] Enable loadable module support 这 个选项可以让你的内核支持模块，模块是什么呢？模块是一小段代码，编译后可在系统内核运行时 动态的加入内核，从而为内核增加一些特性或是对某种硬件进行支 持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在 运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除 它)。 一些特性是否编译为模块的原则是，不常使用的，特别是在 系统启动时不需要的驱动可以将其编译为模块，如果是一些在系统启动时就要用到的驱动比如说文件系统，系统总线的支持就不要编为模块了 ，否在无法启动系统。(当然还有一些变通的方法，我以后会提到) <br />[ ] Module unloading 这个选项可以让你卸载不再使用的模块，如果不选 的话你将不能卸载任何模块(有些模块一旦加载就不能卸载，不管是否选择了这个选项)。不选择这个选项会让你的内核体积减小一点 <br />[ ]  Module versioning support (EXPERIMENTAL) 这个选项将让你可以使用其它版本内核中编译的模块，不过并不可靠，所以一般我们不选择它 <br /> [*] Automatic kernel module loading 一 般情况下，如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时，我们要先使用 modprobe命令来加载它，内核才能使用。不过，如果你选 择了这个选项，在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模 块，这是个很棒的特性，当然要选Y喽：)</p>
		<p>第四项 Processor type and features Subarchitecture Type (PC-compatible) 这是一个比较新的 特性，主要的目的是使Linux可以支持多种PC标准，一般我们使用的PC机是遵循所谓IBM兼容结构(pc/at)。这个选项可以让你选择一些其它架构 。我们一般选择PC-compatible就可以了。 Processor family (Pentium-4/Celeron(P4-based)/Xeon) 这个不用我讲了吧，你是什么CPU就选什 么吧：)</p>
		<p>[ ] Generic x86 support 这个选项提供了对X86系列CPU最大的兼容性，用来支持一些很少见的x86体系的CPU，它可能会降低一些系 统性能。所以如果你的CPU能够在上面的列表中找到就不要选这个吧。 <br />[ ] HPET Timer Support 这 也是一个新的特性，HPET是intel制定的新 的用以代替传统的8254(PIT)中断定时器与RTC的定时器，全称叫作高精度事件定时器。如果你有一台较新的机器就选它吧，一般它是一个安全 的选项，即使你的硬件不支持HPET也不会造成问题，因为它会自动用8254替换。 <br />[*] Symmetric multi-processing support 这个也不用多讲了吧，如果你使用多处理器系统就选吧，如果你和我一样使用一个单CPU系统还是把它请出去吧。 ( Maximum number of CPUs (2-255) 这里用 来配置让Linux最多支持几路CPU，根据你的需要选择。 <br />[*] Preemptible Kernel 这 可是个新特性，几乎所有介绍2.6的文章都会提到，这就 是可抢先式内核。也就是说被一些优先级很高的程序可以先与一些低优先级的程序执行，即使这些程序是 在核心态下执行(这实际上仍然不是 真正的抢先式内核)。从而减少内核潜伏期，提高系统的响应。当然在一些特殊的点的内核是不可抢先的，比如内核中的调度程 序自身在执行 时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能，所以还是选上吧。 <br />[*] Machine Check Exception 如 果你的系统出现 一些问题比如CPU过热，内核将会在屏幕上打印相关信息来提醒你。这个功能是需要硬件支持的。你可以查看/proc/cpuinfo看看是 否有mce标 志，有的话就选吧。如果你十分十分的不幸，选了它之后出现问题，可以在启动时加nomce参数来关闭它。<br />[*] Check for non-fatal errors  on AMD Athlon/Duron / Intel Pentium 4 打 开这个选项将会检查你机器上可能存在的问题，如果有一个非致命错误出现将会自动的修复并且 记录，这可以帮助你查出程序出现问题的原因，是一个不错的选项， 当然它只能用在AMD Athlon/Duron / Intel Pentium 4这类CPU上。如果 你正好在用它们中的一个你就选吧。 <br />[*] check for P4 thermal throttling interrupt. 如果打开这个选项，在P4的CPU温度过高(也就是P4 的温控装置起作用)时会在屏幕上显示出相关的信息，根据你的情况选择吧。 <br />&lt; &gt; Toshiba Laptop support 这 个选项是针对Toshiba笔记本的 ，可以用来访问Toshiba的系统管理模式，也就是可以直接设置BIOS。不过要注意它只在Toshiba自己的 BIOS中起作用。假如你有一台Toshiba 笔记本，可惜它的BIOS是Phoenix的，那这个选项仍然是梁山军师----无用：) <br />&lt; &gt; Dell laptop support 这个同上面的选项基本相同，自己看 着办吧：)<br />&lt; &gt; /dev/cpu/microcode - Intel IA32 CPU microcode support 这个选项将让你可以更新Intel IA32系列处理器的微代码，当然 你还必须在文件系统选项中选择devfs才能正常的使用它。如果你把它译为模块你还需要在modprobe.conf中加上这一行alias char-major-10- 184 microcode 内核本身并不带有微代码的二进制文件，你可以到这个网址去得到新的信息 <br />&lt; &gt; /dev/cpu/*/msr - Model-specific register  support 这个选项桌面用户一般用不到，它主要用在Intel的嵌入式CPU中的，这个寄存器的作用也依赖与不同的CPU类型而有所不同，一般可以 用来改变一些CPU原有物理结构的用途，但不同的CPU用途差别也很大。 <br />&lt; &gt; /dev/cpu/*/cpuid - CPU information support 这会在/dev/cpu 中建立一系列的设备文件，用以让过程去访问指定的CPU。一般不用选。 <br />&lt; &gt; BIOS Enhanced Disk Drive calls determine boot disk  (EXPERIMENTAL) 这将可以打开实模式下BIOS中的增强磁盘设备服务，以决定从哪个磁盘上启动。这一般是安全的，不过大多数BIOS提供商都没 有实现这个特性。 High Memory Support (off) 如果你有大容量的内存(超过4G)你要选它，以使内核可以使用这部分内存。偶是没这命啦这部 分永远为OFF，如果你有你就ON吧。<br />[ ] Math emulation 在你的CPU上如果没有数学协处理器的话，打开这个选项可以让内核模拟一个，以提 升浮点计算能力，不过慢的可以。如果你使用的不是古董CPU的话(486SX以前的)这一项你永远都不需要。 <br />[*] MTRR (Memory Type Range  Register)support 在Intel p6家族的处理器中(Ppro、 PII和更新的)有一个内存类型范围寄存器，可用来控制处理器访问的内存范围。打开它 一般可以提升显卡的显示性能，所以我们当然要在这说Y喽：) </p>
		<p>第五项 Power management options (ACPI, APM)(高级电源管理)</p>
		<p>[*] Power  Management support 如果你想让你的Linux支持高级电源管理(也就是平常我们说的软关机、系统休眠等)需要选择它。 <br />[ ] Software Suspend  (EXPERIMENTAL) 选 择这个选项你可以挂起你的计算机(有点象XP中的休眠)，打开这项功能后，你可以使用swsusp或者shutdown -z 来挂起你 的计算机。这样系统会将你当前正在进行的工作(也就是当前内存中的内容)作成一个镜象保存到你的交换分区中，在你下一次启动时使用启动 参数 “resume=/dev/你的交换分区”，内核就会将上一次的工作内核从镜象文件中恢复到内存，这可以大大提高系统的启动速度。当你不想恢 复上次的工作 时向内核传递参数“noresume"。不过系统启动后你的交换分区将不可以使用，你可以使用mkswap命令来重新格式化你的交换分 区。这个功能不需要 高级电源管理的支持。很不错的功能，我一直有用，大家也来试试吧：) <br />[ ] Suspend-to-Disk Support 这个选项与上面 的功能基本相同，不过更灵活一些，可以通过下面的子选项来指定一个专用的交换分区来保存内存镜象。 <br />() Default resume partition 与上 面的选项配合，来指定保存镜象的分区。 <br />ACPI (Advanced Configuration and Power Interface) Support ---&gt; 从这里进入ACPI电源管理的 配置界面，要注意ACPI与APM不能同时使用，如果你同时配置了这两者，那么在系统启动时如果发现一个可工作的ACPI设备那么APM将被关闭， ACPI会被加载：<br />[*] ACPI Support 这个选项应该不用我多说了，要想让你的系统使用ACPI来管理你的电源就要选上它，另外要想让它起作用 ，你还要在系统中安装acpid守护程序。<br />[*] Sleep States (EXPERIMENTAL) 选 择这个选项可以使你的系统具有挂起的功能，也就是说你可以 暂时中断你的工作，让你的系统处与一种低电能消耗的状态(sleep state)，你此时的系统状态会保存在内存或者磁盘上(取决于挂起的深度)， 当你需要时再恢复到正常的工作状态。但由于各种系统之间的差别，目前这项功 能并不完善。只有很少的设备可以完美的支持这个特性，所以 不建议一般用户使用它。 <br />&lt; &gt; AC Adapter 这是用来支持移动系统中的交流适配器的，以指示当前系统是不是在使用交流电，对于台式机不需 要这个选项。 <br />&lt; &gt; Battery 这个选项用于通过/proc/acpi/battery来向用户提供移动系统中的电池状态信息。同上面那个选项一样对台式机没 有作用。<br /> &lt;*&gt; Button 这个选项用于注册基于电源按钮的事件，比如power, sleep等，当你按下按钮时事件将发生，一个守护程序将读 取/proc/acpi/event，并执行用户在这些事件上定义的动作比如让系统关机。 <br />&lt;*&gt; Fan 这个选项提供对系统风扇的控制支持，可以通过用户层 的程序来对系统风扇进行控制(比如打开，关闭，读取当前风扇的运行状态等，不过只有极少数的硬件支持它)。 <br />&lt;*&gt; Processor 打开这个选项 将让你的系统具有处理IDIE状态的能力，也就是说可以让你的处理器在空闲时节省电能。个人认为这个选项是一定要选的。<br />&lt;*&gt; Thermal Zone  当你的系统温度过高时，ACPI可以利用这个选项来控制你的系统，及时调整系统的工作状态以保护你的CPU，非常棒的一个特性一定要选呀，要 不然也就不用使用ACPI了。(当然这需要硬件的支持)<br />&lt; &gt; ASUS/Medion Laptop Extras 这主要是为ASUS生产的笔记本电脑准备的，以提供对这 些系统上那些额外的按钮们的支持，用户可以通过它们来打开或者关闭LCD的背光，调整亮度、定制LED的闪烁指示等功能。用户可以通 过/proc/acpi/asus来改变这些设置。 <br />&lt; &gt; Toshiba Laptop Extras 这个选项是对Toshiba笔记本提供特别支持的，它的作用同上面的选项基本 相同，如果你有一台这样的本本的话就选它吧。<br /> [ ] Debug Statements 如果选择它当ACPI出现错误时会打印出详细的信息，这将会增加内核 的体积大约50k，如果没有必要还是不要选它吧。<br /> [ ] Relaxed AML 选择它的话ACPI翻译器将会放松对AML的错误检查，一些笔记本电脑可能需 要它才能正常的使用ACPI(一些糟糕的桌面机可能也需要它，如果你的系统使用ACPI时出现问题不妨选上它试试) </p>
		<p> </p>
<img src ="http://www.blogjava.net/badboyryan/aggbug/113748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-04-26 12:50 <a href="http://www.blogjava.net/badboyryan/archive/2007/04/26/113748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GIS家园</title><link>http://www.blogjava.net/badboyryan/archive/2006/08/29/66338.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Tue, 29 Aug 2006 00:43:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2006/08/29/66338.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/66338.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2006/08/29/66338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/66338.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/66338.html</trackback:ping><description><![CDATA[
		<a href="http://www.gissky.net/blog/index.html">http://www.gissky.net/blog/index.html</a>
<img src ="http://www.blogjava.net/badboyryan/aggbug/66338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2006-08-29 08:43 <a href="http://www.blogjava.net/badboyryan/archive/2006/08/29/66338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ArcGis9在windowsXPsp2安装方法</title><link>http://www.blogjava.net/badboyryan/archive/2006/08/29/66337.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Tue, 29 Aug 2006 00:40:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2006/08/29/66337.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/66337.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2006/08/29/66337.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/66337.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/66337.html</trackback:ping><description><![CDATA[
		<div class="blogbody">在WinXp sp2安装ArcGIS9,会出现动态库注册失败问题，以下是修改办法，希望对各位有用 <br /><br />方法由“杜杜先生”提供： <br />1. 移除Windows XP的SP2，然后安装ArcGIS 9.0。 <br />2. 点击“我的电脑”，选择“属性”菜单  <br />3. 点击“高级”页。选择“启动与恢复”下的“设置”按钮。  <br />4. 选择默认操作系统，如下: "Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn  <br />5. 点击“编辑” 按钮打开boot.ini 文件，将其中的“”/NoExecute=OptIn”改为“/NoExecute=AlwaysOff”。  <br />6 保存文件，重新启动计算机。 <br />7. 安装完ArcGIS以后，将 boot.ini 文件设置改回来，以重新激活数据执行保护的安全选项。  <br /></div>
<img src ="http://www.blogjava.net/badboyryan/aggbug/66337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2006-08-29 08:40 <a href="http://www.blogjava.net/badboyryan/archive/2006/08/29/66337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>