<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>白舟工作室 &#187; linux</title>
	<atom:link href="http://www.baizoo.cn/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.baizoo.cn</link>
	<description>——长风破浪会有时</description>
	<lastBuildDate>Mon, 30 Jan 2012 08:09:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>mysql 出现 PID file not found 错误</title>
		<link>http://www.baizoo.cn/archives/1129.html</link>
		<comments>http://www.baizoo.cn/archives/1129.html#comments</comments>
		<pubDate>Tue, 31 May 2011 04:51:58 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[技术爱好]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=1129</guid>
		<description><![CDATA[今天vps访问速度很慢，我用/root/lnmp restart 命令给lnmp重启了一下，重启之后发觉mysql链接不上了。 ssh里面运行 service mysql restrat 出现 MySQL is running but PID file could not be found 错误。 用mysql -u root -p 命令运行mysql时出现 Can&#8217;t connect to MySQL through socket mysql.sock 错误。 后来网上找到一篇不错的文章 mysql PID file not found and Can&#8217;t connect to MySQL through socket mysql.sock 虽然后来我是直接重启vps(reboot)解决这个问题，不过上面文章里的很多内容还是挺有用的。 记录几个以前不知道的知识： 1、grep 是查找命令 可做文件内的字符串查找，使用如： ps aux &#124; grep [...]]]></description>
			<content:encoded><![CDATA[<p>今天vps访问速度很慢，我用/root/lnmp restart 命令给lnmp重启了一下，重启之后发觉mysql链接不上了。<br />
ssh里面运行 service mysql restrat 出现 MySQL is running but PID file could not be found 错误。<br />
用mysql -u root -p 命令运行mysql时出现 Can&#8217;t connect to MySQL through socket mysql.sock 错误。</p>
<p>后来网上找到一篇不错的文章 <a href="http://guanfengde.blog.163.com/blog/static/2947162201103071946719/">mysql PID file not found and Can&#8217;t connect to MySQL through socket mysql.sock</a></p>
<p>虽然后来我是直接重启vps(reboot)解决这个问题，不过上面文章里的很多内容还是挺有用的。</p>
<p><strong>记录几个以前不知道的知识：</strong><br />
1、grep 是查找命令 可做文件内的字符串查找，使用如：  ps aux | grep mysql<br />
2、<a href="http://124894752.blog.163.com/blog/static/71341832010784454391/">ps 命令</a> 显示所有进程 跟windows系统的 tasklist 命令相似 aux 显示所有包含其他使用者的行程<br />
   比如我运行 ps aux | grep mysql 命令后能够找到<br />
   &#8211;datadir=/usr/local/mysql/var&#8211;pid-file=/usr/local/mysql/var/li220-124.pid<br />
3、kill -9 [PID] 终止进程命令 通过ps 找到进程pid 然后用kill -9 [PID]终止进程(-9表示强迫进程立即停止)<br />
4、hostname 命令显示当前主机名 uname -a 命令显示当前系统内核版本<br />
5、service命令<br />
   通过 service mysql status 可以查看 mysql的状态。但是其他服务名称如何查找？<br />
   发现通过 ls /etc/init.d/ 目录下面可以找到各个服务名称。<br />
6、top命令 查看内存和cup使用情况<br />
   < shift+m 按内存使用排序><br />
    <1 显示cpu使用情况><br />
7、chown 更改属主和属主组<br />
chown [OPTION]&#8230; [OWNER][:[GROUP]] FILE&#8230;<br />
如：chown mysql:mysql redhat.pid 更改redhat.pid 的ownner为mysql 所属组为mysql</p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/1129.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下的定时执行工具Unix cron</title>
		<link>http://www.baizoo.cn/archives/1047.html</link>
		<comments>http://www.baizoo.cn/archives/1047.html#comments</comments>
		<pubDate>Wed, 23 Jun 2010 12:58:24 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[技术爱好]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[uninx]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=1047</guid>
		<description><![CDATA[介绍一下Cron Jobs： Cron来源于希腊单词chronos（意为“时间”）。 Cron是一个Linux下的定时执行工具，可以在无需人工干预的情况下运行作业，有点像 Windows 下的计划任务，但它比计划任务更强大更灵活。 由于Cron 是Linux的内置服务，但它不自动起来，可以用以下的方法启动、关闭这个服务。（见文章DreamHost 的 Web Cron Jobs详细） 相关文章： DreamHost 的 Web Cron Jobs Cronjob – WordPress定时备份MYSQL]]></description>
			<content:encoded><![CDATA[<p>介绍一下Cron Jobs：<br />
Cron来源于希腊单词chronos（意为“时间”）。<br />
Cron是一个Linux下的定时执行工具，可以在无需人工干预的情况下运行作业，有点像 Windows 下的计划任务，但它比计划任务更强大更灵活。<br />
由于Cron 是Linux的内置服务，但它不自动起来，可以用以下的方法启动、关闭这个服务。（见文章DreamHost 的 Web Cron Jobs详细）</p>
<p>相关文章：<br />
<a href="http://help.dreamhosters.com/advanced/web-panel-cronjob-changes.html">DreamHost 的 Web Cron Jobs</a><br />
<a href="http://www.wx35.cn/archives/738/">Cronjob – WordPress定时备份MYSQL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/1047.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu中配置Apache</title>
		<link>http://www.baizoo.cn/archives/718.html</link>
		<comments>http://www.baizoo.cn/archives/718.html#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:20:25 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=718</guid>
		<description><![CDATA[前些时候给自己的ubuntu虚拟机里装了lamp，详见：Ubuntu中安装配置LAMP服务器，不过装好后一直没去调配它，今天就来配置一下Apache。 一般linux中的apache配置文件目录为：/etc/httpd/conf/httpd.conf 但我用apt方式安装的apache配置文件却不在该目录下，后来查找之后才发现其配置文件目录为：/etc/apache2/apache2.conf 在该文件中，我们能找到几个被include进来的文件 # Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf # Include all the user configurations: Include /etc/apache2/httpd.conf # Include ports listing Include /etc/apache2/ports.conf 以及最后的 # Include generic snippets of statements Include /etc/apache2/conf.d/ # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ 从注释中，我们可以知道虚拟站点的配置文件在/etc/apache2/sites-enabled/目录下 接下来就来配置一下虚拟站点 终端进入/etc/apache2/sites-enabled/目录 运行：gedit default 编辑这个配置文件 这里我要实现几个简单的目的 一、禁止浏览用户访问目录列表 这个需要找到Options Indexes FollowSymLinks MultiViews [...]]]></description>
			<content:encoded><![CDATA[<p>前些时候给自己的ubuntu虚拟机里装了lamp，详见：<a href="http://www.baizoo.cn/archives/591.html">Ubuntu中安装配置LAMP服务器</a>，不过装好后一直没去调配它，今天就来配置一下Apache。</p>
<p>一般linux中的apache配置文件目录为：/etc/httpd/conf/httpd.conf</p>
<p>但我用apt方式安装的apache配置文件却不在该目录下，后来查找之后才发现其配置文件目录为<strong>：/etc/apache2/apache2.conf </strong><br />
在该文件中，我们能找到几个被include进来的文件<span id="more-718"></span></p>
<p><coolcode><br />
# Include module configuration:<br />
Include /etc/apache2/mods-enabled/*.load<br />
Include /etc/apache2/mods-enabled/*.conf</p>
<p># Include all the user configurations:<br />
Include /etc/apache2/httpd.conf</p>
<p># Include ports listing<br />
Include /etc/apache2/ports.conf<br />
</coolcode><br />
以及最后的<br />
<coolcode># Include generic snippets of statements<br />
Include /etc/apache2/conf.d/</p>
<p># Include the virtual host configurations:<br />
Include /etc/apache2/sites-enabled/</coolcode><br />
从注释中，我们可以知道虚拟站点的配置文件在/etc/apache2/sites-enabled/目录下</p>
<p>接下来就来配置一下虚拟站点<br />
终端进入/etc/apache2/sites-enabled/目录<br />
运行：<coolcode>gedit default</coolcode><br />
编辑这个配置文件</p>
<p>这里我要实现几个简单的目的<br />
一、禁止浏览用户访问目录列表<br />
这个需要找到Options Indexes FollowSymLinks MultiViews 将 Indexes去掉，如果只是针对某个目录，比如，我在站点跟目录/var/www/下建了个123目录，我希望用户不能浏览123目录列表，于是我就可以加入下面配置<br />
	<coolcode><Directory /var/www/123/><br />
	Options FollowSymLinks MultiViews<br />
	</Directory></coolcode><br />
去掉Indexes即可。<br />
二、修改默认首页<br />
可在directory下面加上<br />
//添加文件支持类型<br />
<coolcode><br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php .phtml<br />
</coolcode><br />
//添加首页文件<br />
<coolcode><br />
DirectoryIndex index.htm<br />
DirectoryIndex index.php<br />
</coolcode><br />
优先权由上而下<br />
三、添加虚拟目录<br />
一个最简单的虚拟目录可以包含下面几个部分<br />
<coolcode lang="html"><br />
<VirtualHost 192.168.1.59><br />
    ServerName linux.baizoo.cn<br />
    ServerAdmin ubuntu@baizoo.cn<br />
    DocumentRoot “/var/www/baizoo/”<br />
    ErrorLog “/var/log/apache2/baizoo_errors.log”<br />
    CustomLog “/var/log/apache2/linux_accesses.log” combined<br />
</VirtualHost><br />
</coolcode><br />
当然，里面还可以包含一些directory参数配置。<br />
配置完成后重启apache <coolcode>sudo /etc/init.d/apache2 restart </coolcode></p>
<p>今天实现了三个简单的配置目的，apache配置还有很多，比如重定向，代理等更复杂的配置留到以后再弄吧。</p>
<p>相关文章：<a href="http://hi.baidu.com/52hack/blog/item/535a6ad0b3512a87a0ec9cbc.html">apache服务器指令大全</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/718.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux用户和组的操作</title>
		<link>http://www.baizoo.cn/archives/588.html</link>
		<comments>http://www.baizoo.cn/archives/588.html#comments</comments>
		<pubDate>Sun, 23 Aug 2009 00:43:17 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[命令]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=588</guid>
		<description><![CDATA[在看一个Linux操作系统的用户和用户组管理详解的教程，还有最后“批量添加用户”和“赋予普通用户特殊权限”两部分没去操作。这里留个底，以备接下来继续参考和学习。]]></description>
			<content:encoded><![CDATA[<p>在看一个<a href="http://blog.csdn.net/andyxie407/archive/2007/06/21/1660518.aspx">Linux操作系统的用户和用户组管理详解</a>的教程，还有最后“批量添加用户”和“赋予普通用户特殊权限”两部分没去操作。这里留个底，以备接下来继续参考和学习。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/588.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMware中Ubuntu与本地Windows共享文件</title>
		<link>http://www.baizoo.cn/archives/572.html</link>
		<comments>http://www.baizoo.cn/archives/572.html#comments</comments>
		<pubDate>Sun, 16 Aug 2009 17:59:29 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=572</guid>
		<description><![CDATA[想让VMware中的Ubuntu系统共享我windows xp系统下的文件，根据网上的提示，我逐一尝试了一下。 一、用VMware Tools实现 因为我装的是精简版VMware，它把linux.iso文件精简掉了，要安装 VMware Tools还得现去下个linux.iso 这文件比较大，比VMware安装程序还大，我是好不容易才找到的。下载地址：http://www.damipan.com/file/OouNWr.html 下载完了之后放到vmware安装目录，载入到vmware光驱，接下来我是按照网上的这个“VMware Tools安装手记”教程用tar解压方式安装的。 当然，也可以用rpm方式安装，命令rpm -ivh vmware-tools.xxxx.rpm 注：unbuntu系统，安装到 What is the directory that contains the init directories (rc0.d/ to rc6.d/)? [/etc/rc.d] 时，要选择一下rc0.d/ to rc6.d/目录 遇到的问题：安装完成之后，并设置好与windows主机的共享目录，可/mnt/hgfs/目录下并没有显示共享文件。我到网上找了很久都没找到答案。这个问题只能留着。 二、用samba实现 安装samba实现文件共享功能。 Ubuntu下samba的安装方法：sudo apt-get install samba 遇到问题：安装好之后，设置共享，不过我的帐户好像没有设置共享的权限，提示：net usershare: cannot open usershare directory /var/lib/samba/usershares. Error Permission denied. You do not have permission to create a [...]]]></description>
			<content:encoded><![CDATA[<p>想让VMware中的Ubuntu系统共享我windows xp系统下的文件，根据网上的提示，我逐一尝试了一下。</p>
<p><strong>一、用VMware Tools实现</strong></p>
<p>因为我装的是精简版VMware，它把linux.iso文件精简掉了，要安装 VMware Tools还得现去下个linux.iso 这文件比较大，比VMware安装程序还大，我是好不容易才找到的。下载地址：http://www.damipan.com/file/OouNWr.html</p>
<p>下载完了之后放到vmware安装目录，载入到vmware光驱，接下来我是按照网上的这个“<a href="http://www.oklinux.cn/html/Basic/jyjq/20070325/8681.html" target=_blank>VMware Tools安装手记</a>”教程用tar解压方式安装的。</p>
<p>当然，也可以用rpm方式安装，命令rpm -ivh vmware-tools.xxxx.rpm</p>
<p>注：unbuntu系统，安装到<br />
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?<br />
[/etc/rc.d]<br />
时，要选择一下rc0.d/ to rc6.d/目录</p>
<p>遇到的问题：安装完成之后，并设置好与windows主机的共享目录，可<strong>/mnt/hgfs/目录下并没有显示共享文件</strong>。我到网上找了很久都没找到答案。这个问题只能留着。</p>
<p><span id="more-572"></span><br />
<strong>二、用samba实现</strong><br />
<a href="http://www.linuxidc.com/Linux/2008-12/17703.htm">安装samba</a>实现文件共享功能。<br />
Ubuntu下samba的安装方法：sudo apt-get install samba<br />
遇到问题：安装好之后，设置共享，<a href="http://forum.ubuntu.org.cn/viewtopic.php?t=135097">不过我的帐户好像没有设置共享的权限</a>，提示：net usershare: cannot open usershare directory /var/lib/samba/usershares. Error Permission denied. You do not have permission to create a usershare. Ask your administrator to grant you permissions to create a share.<br />
解决问题：看看你用户和组里，sambashaer 里有没有你的用户，<br />
sudo groupadd sambashare<br />
sudo adduser `whoami` sambashare<br />
用sudo usermod -G sambashare baizoo 命令将sambashare添加为我的附属组，重启后成功解决。<br />
注：（关于用户和组的命令，cat /etc/group|grep admin 查看admin组里包含的用户，sudo usermod -G sambashaer baizoo 这个命令只是把自己加入了一个组，即sambashare组中，不过该方法会将baizoo从admin组中删除，正确的方法是：sudo usermod -aG admin,sambashare baizoo ）</p>
<p><strong>三、搭建web服务器或ftp服务器</strong><br />
这个不多说了，windows下用iis、阿帕奇或者tomcat搭建web服务器，ftp服务器可用serv-u搭建。<br />
linux下搭建web服务器和ftp服务器等空了再去学习。</p>
<p>参考文章：<br />
<a href="http://fedora.linuxsir.org/main/?q=node/91">Linux 用户（user）和用户组（group）管理概述</a><br />
<a href="http://dev.csdn.net/article/82/82971.shtm">Windows与Vmware下的Linux文件共享方式总结 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/572.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu下写个小程序</title>
		<link>http://www.baizoo.cn/archives/431.html</link>
		<comments>http://www.baizoo.cn/archives/431.html#comments</comments>
		<pubDate>Thu, 26 Feb 2009 15:24:37 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[程序]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=431</guid>
		<description><![CDATA[1、打开终端，新建一个文件，例如我用 vi  baizoo.c 内容写入 #include main() { printf(&#8220;Hello,Baizoo!&#8221;); } 2、编译代码，并生成一个可执行文件名字叫baizoo gcc baizoo.c -o baizoo 3：运行该文件： ./baizoo 问题：执行之后发觉出现了个错误提示 stdio.h:No such file or directory 解决方法：错误原因是没有安装库文件，使用如下命令安装解决该问题 sudo apt-get install libc6-dev如果gcc没安装的话直接 用 sudo apt-get install build-essential 另外，如果第一次在linux下写程序，且对vi命令不熟悉的话，可以参考下面的vi基本操作 基本上VI可分为三种操作状态 =========================================================== 命令模式（Command mode）:控制屏幕光标的移动，字符或光标的删除，移动复制某区段及进入“插入模式”下，或者到“底线命令模式”。 插入模式（Insert mode）:唯有此模式下，才可做文字数据输入，按ESC等可回到“命令模式”。 底线命令模式（Last line mode）:将储存文件或离开编辑器，也可设置编辑环境，如寻找字符串、列出行号等。 进入VI =========================================================== 在系统提示符号输入vi及文件名称后，即可进入vi全屏幕编辑画面： $ vi testfile 有一点要特别注意，就是您进入vi之后是处于“命令模式”下，您要切换到“插入模式”才能输入文字。 切换至“插入模式”编辑文件 =========================================================== 在“命令模式”下按‘i’‘a’或‘o’三键就可进入“插入模式”。这时候您就可以开始输入文字了。 i: 插入，从目前光标所在之处插入所输入的文字。 a: [...]]]></description>
			<content:encoded><![CDATA[<p>1、打开终端，新建一个文件，例如我用 vi  baizoo.c</p>
<p>内容写入<br />
<coolcode linenum="off" lang="cpp"><br />
#include <stdio.h><br />
main()<br />
{<br />
   printf(&#8220;Hello,Baizoo!&#8221;);<br />
}<br />
</coolcode></p>
<p>2、编译代码，并生成一个可执行文件名字叫baizoo<br />
gcc baizoo.c -o baizoo</p>
<p>3：运行该文件：<br />
./baizoo</p>
<p><strong>问题</strong>：执行之后发觉出现了个错误提示<br />
stdio.h:No such file or directory</p>
<p><strong>解决方法</strong>：错误原因是没有安装库文件，使用如下命令安装解决该问题<br />
<strong>sudo apt-get install libc6-dev</strong>如果gcc没安装的话直接 用 <strong>sudo apt-get install build-essential</strong></p>
<p>另外，如果第一次在linux下写程序，且对vi命令不熟悉的话，可以参考下面的<strong>vi基本操作</strong><span id="more-431"></span></p>
<blockquote><p>
基本上VI可分为三种操作状态<br />
===========================================================<br />
命令模式（Command mode）:控制屏幕光标的移动，字符或光标的删除，移动复制某区段及进入“插入模式”下，或者到“底线命令模式”。<br />
插入模式（Insert mode）:唯有此模式下，才可做文字数据输入，按ESC等可回到“命令模式”。<br />
底线命令模式（Last line mode）:将储存文件或离开编辑器，也可设置编辑环境，如寻找字符串、列出行号等。</p>
<p>进入VI<br />
===========================================================<br />
在系统提示符号输入vi及文件名称后，即可进入vi全屏幕编辑画面：<br />
$ vi testfile<br />
有一点要特别注意，就是您进入vi之后是处于“命令模式”下，您要切换到“插入模式”才能输入文字。</p>
<p>切换至“插入模式”编辑文件<br />
===========================================================<br />
在“命令模式”下按‘i’‘a’或‘o’三键就可进入“插入模式”。这时候您就可以开始输入文字了。<br />
i: 插入，从目前光标所在之处插入所输入的文字。<br />
a: 增加，目前光标所在的下一个字开始输入文字。<br />
o: 插入新的一行，从行首开始输入文字</p>
<p>“插入模式”的切换→“命令模式”，按ESC键<br />
===========================================================<br />
您目前处于“插入模式”，您就只能一直打字。假如您发现打错字了，想用光标键往回移动，将该字删除，就要按ESC键转换回“命令模式”，再删除文字。</p>
<p>离开VI及存文件<br />
===========================================================<br />
在“命令模式”下，可按冒号“：”键进入“底线命令模式”，例如：<br />
:w filename (输入“w filename”，将文章存入指定的文件名filename)<br />
:wq (输入“wq”，因为进入之时已经指定文件名testfile，所以会写入testfile并离开VI)<br />
:q! (输入“q!”，强制离开并放弃编辑的文件)</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>进入vi的命令</p>
<p>vi filename :打开或新建文件，并将光标置于第一行首<br />
vi +n filename ：打开文件，并将光标置于第n行首<br />
vi + filename ：打开文件，并将光标置于最后一行首<br />
vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处<br />
vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename<br />
vi filename&#8230;.filename ：打开多个文件，依次进行编辑</p>
<p>移动光标类命令<br />
h ：光标左移一个字符<br />
l ：光标右移一个字符<br />
space：光标右移一个字符<br />
Backspace：光标左移一个字符<br />
k或Ctrl+p：光标上移一行<br />
j或Ctrl+n ：光标下移一行<br />
Enter ：光标下移一行<br />
w或W ：光标右移一个字至字首<br />
b或B ：光标左移一个字至字首<br />
e或E ：光标右移一个字至字尾<br />
) ：光标移至句尾<br />
( ：光标移至句首<br />
}：光标移至段落开头<br />
{：光标移至段落结尾<br />
nG：光标移至第n行首<br />
n+：光标下移n行<br />
n-：光标上移n行<br />
n$：光标移至第n行尾<br />
H ：光标移至屏幕顶行<br />
M ：光标移至屏幕中间行<br />
L ：光标移至屏幕最后行<br />
0：（注意是数字零）光标移至当前行首<br />
$：光标移至当前行尾</p>
<p>屏幕翻滚类命令<br />
Ctrl+u：向文件首翻半屏<br />
Ctrl+d：向文件尾翻半屏<br />
Ctrl+f：向文件尾翻一屏<br />
Ctrl＋b；向文件首翻一屏<br />
nz：将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。</p>
<p>插入文本类命令<br />
i ：在光标前<br />
I ：在当前行首<br />
a：光标后<br />
A：在当前行尾<br />
o：在当前行之下新开一行<br />
O：在当前行之上新开一行<br />
r：替换当前字符<br />
R：替换当前字符及其后的字符，直至按ESC键<br />
s：从当前光标位置处开始，以输入的文本替代指定数目的字符<br />
S：删除指定数目的行，并以所输入文本代替之<br />
ncw或nCW：修改指定数目的字<br />
nCC：修改指定数目的行</p>
<p>删除命令<br />
ndw或ndW：删除光标处开始及其后的n-1个字<br />
do：删至行首<br />
d$：删至行尾<br />
ndd：删除当前行及其后n-1行<br />
x或X：删除一个字符，x删除光标后的，而X删除光标前的<br />
Ctrl+u：删除输入方式下所输入的文本</p>
<p>搜索及替换命令<br />
/pattern：从光标开始处向文件尾搜索pattern<br />
?pattern：从光标开始处向文件首搜索pattern<br />
n：在同一方向重复上一次搜索命令<br />
N：在反方向上重复上一次搜索命令<br />
：s/p1/p2/g：将当前行中所有p1均用p2替代<br />
：n1,n2s/p1/p2/g：将第n1至n2行中所有p1均用p2替代<br />
：g/p1/s//p2/g：将文件中所有p1均用p2替换</p>
<p>选项设置<br />
all：列出所有选项设置情况<br />
term：设置终端类型<br />
ignorance：在搜索中忽略大小写<br />
list：显示制表位(Ctrl+I)和行尾标志（$)<br />
number：显示行号<br />
report：显示由面向行的命令修改过的数目<br />
terse：显示简短的警告信息<br />
warn：在转到别的文件时若没保存当前文件则显示NO write信息<br />
nomagic：允许在搜索模式中，使用前面不带“\”的特殊字符<br />
nowrapscan：禁止vi在搜索到达文件两端时，又从另一端开始<br />
mesg：允许vi显示其他用户用write写到自己终端上的信息</p>
<p>最后行方式命令<br />
：n1,n2 co n3：将n1行到n2行之间的内容拷贝到第n3行下<br />
：n1,n2 m n3：将n1行到n2行之间的内容移至到第n3行下<br />
：n1,n2 d ：将n1行到n2行之间的内容删除<br />
：w ：保存当前文件<br />
：e filename：打开文件filename进行编辑<br />
：x：保存当前文件并退出<br />
：q：退出vi<br />
：q!：不保存文件并退出vi<br />
：!command：执行shell命令command<br />
：n1,n2 w!command：将文件中n1行至n2行的内容作为command的输入并执行之，若不指定n1，n2，则表示将整个文件内容作为command的输入<br />
：r!command：将命令command的输出结果放到当前行</p>
<p>寄存器操作<br />
&#8220;?nyy：将当前行及其下n行的内容保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?nyw：将当前行及其下n个字保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?nyl：将当前行及其下n个字符保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?p：取出寄存器？中的内容并将其放到光标位置处。这里？可以是一个字母，也可以是一个数字<br />
ndd：将当前行及其下共n行文本删除，并将所删内容放到1号删除寄存器中。</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/431.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Linux里的Ftp工具vsftpd安装配置手册(转载)</title>
		<link>http://www.baizoo.cn/archives/298.html</link>
		<comments>http://www.baizoo.cn/archives/298.html#comments</comments>
		<pubDate>Mon, 28 Apr 2008 01:57:41 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[1、VSFTPD简述 　　如果试问哪种FTP服务器最安全？那么在UNIX和Linux中，首推的就是VSFTP（Very Secure FTP Daemon，非常安全的FTP服务器）。顾名思义，VSFTPD设计的出发点就是安全性。同时随着版本的不断升级，VSFTPD在性能和稳定性上也取得了极大的进展。象RedHat、SUSE、Debian、GNU、GNOME、KDE等一些大型站点都采用VSFTPD作为它们的FTP服务器。大家可以到http://vsftpd.beasts.org/了解它的最新情况。 2、VSFTPD的安装 2.1、RHL9+vsftpd-.1.1.3-8.i386.rpm包的安装 　　VSFTPD的安装很简单。在RHL9中，在图形界面下依次执行“Main Menu”－“System Settings”－“Add/Remove Applications”－选择FTP服务器－“更新”，或者在字符界面中执行以下命令，就可以完成安装。 　　rpm -ivh vsftpd-1.1.3-8.i386.rpm 2.2、vsftpd-1.2.0.tar.gz的安装 　　⑴准备条件 　　VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户，如果用户已经存在，useradd命令有相应提示。 　　[root@hpe45 root]# useradd nobody 　　useradd: user nobody exists 　　VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录，如果目录已经存在，mkdir命令有相应提示。 　　[root@hpe45 root]# mkdir /usr/share/empty/ 　　mkdir: cannot create directory &#8216;/usr/share/empty&#8217;: File exists 　　VSFTPD提供匿名FTP服务时，需要“ftp”用户和一个有效的匿名目录。 　　[root@hpe45 root]# mkdir /var/ftp/ 　　[root@hpe45 root]# useradd -d /var/ftp ftp 　　接下来的操作对于ftp用户是否已经存在都是有用的。 　　[root@hpe45 root]# chown root.root /var/ftp 　　[root@hpe45 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/attachments/month_0804/x200842815946.png" border="0" alt=""/><br/><br/><strong>1、VSFTPD简述</strong> <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" rel="external">http://vsftpd.beasts.org/</a>了解它的最新情况。 <br/><br/><strong>2、VSFTPD的安装 </strong><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 &#8216;/usr/share/empty&#8217;: 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/><strong>3、VSFTPD的文件结构 </strong><br/><br/>　　VSFTPD的文件结构是很简洁的，主要包括： <br/>　　/usr/sbin/vsftpd &#8212;- VSFTPD的主程序 <br/>　　/etc/rc.d/init.d/vsftpd &#8212;- 启动脚本 <br/>　　/etc/vsftpd/vsftpd.conf &#8212;- 主配置文件 <br/>　　/etc/pam.d/vsftpd &#8212;- PAM认证文件 <br/>　　/etc/vsftpd.ftpusers &#8212;- 禁止使用VSFTPD的用户列表文件 <br/>　　/etc/vsftpd.user_list &#8212;- 禁止或允许使用VSFTPD的用户列表文件 <br/>　　/var/ftp &#8212;- 匿名用户主目录 <br/>　　/var/ftp/pub　　　　　　&#8212;- 匿名用户的下载目录 <br/>　　此外，还有一些说明文档和手册文件。 <br/><br/>　　此外VSFTPD的日志文件位于/etc/logrotate.d/vsftpd.log。<br/> <br/><strong>4、VSFTPD的启动与停止 </strong><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 &#038; <br/><br/><strong>5、VSFTPD的设置选项 </strong><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 之间。当然，若是线路带宽不足时，速率自然会低于此限制。 <br/><br/>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，当用户使用&#8221;ls -al&#8221;之类的指令时，在目录列表中所有文件的拥有者和组信息都显示为ftp。默认值为NO。 <br/><br/>　　ls_recurse_enable=YES|NO <br/>　　YES，允许使用&#8221;ls -R&#8221; 指令。这个选项有一个小的安全风险，因为在一个大型FTP站点的根目录下使用&#8221;ls -R&#8221;会消耗大量系统资源。默认值为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/><strong>6、VSFTPD应用 </strong><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自带的简单配置文件已经自称是偏执狂了，这里看看能否更加偏执一些，:)。有些选项默认已经采用安全性的设置，这里就不再写出了。 <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 &#038; <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 (&#8216;xiaotong&#8217;,password(&#8216;qqmywife&#8217;)); <br/>　　mysql&gt;insert into users (name,passwd) values (&#8216;xiaowang&#8217;,password(&#8216;ttmywife&#8217;)); <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 &#8216;i52serial0&#8242;; <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验证的开源项目（<a href="http://sourceforge.net/projects/pam-mysql/" target="_blank" rel="external">http://sourceforge.net/projects/pam-mysql/</a>）。首先从网站下载它的程序包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()函数加密后保存<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/298.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux里Ftp服务的安装与配置</title>
		<link>http://www.baizoo.cn/archives/297.html</link>
		<comments>http://www.baizoo.cn/archives/297.html#comments</comments>
		<pubDate>Fri, 25 Apr 2008 13:27:05 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[1、wu-ftpd的安装与配置网上评价wu-ftpd 是最流行的一种免费FTP服务器软件，目前绝大多数的FTP站点都是由wu-ftpd来架设的安装与配置手册详见：http://www.phpchina.com/download/handbook/linux-html/1464.htmlwu-ftpd2.6.2的配置与安装：http://blog.csdn.net/mikespook/archive/2004/06/25/26312.aspx当我安装到 执行命令“bulid lnx” 出现了错误，然后又到网上找了下方法，发现许多人还是推荐使用vsftpd，所以跳过wu-ftpd，转向vsftpd的安装与配置。2、vsftpd的安装与配置源代码安装详细参阅：http://www.vsftpdrocks.org/source/下载源代码wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.1.tar.gz解压tar zxvf vsftpd-1.2.1.tar.gz进入源代码目录cd vsftpd-1.2.1编译make创建用户如果不存在 nobody用户，请创建useradd nobody创建目录vsftpd 需要 /usr/share/empty 目录，如果不存在，请创建：mkdir /usr/share/empty安装make install复制配置文件到/etc目录cp vsftpd.conf /etc以独立方式启动vsftpd服务/usr/local/sbin/vsftpd &#038;此处出现&#8221;500 OOPS: could not bind listening IPv4 socket&#8221;错误解决方法： 引用内容 执行/usr/local/sbin/vsftpd &#038;之后 vsftpd 的错误提示：500 OOPS: could not bind listening IPv4 socket 遇到这个问题我在通过编译源代码后安装vsftpd的时候遇到的，在这以前我已经通过rpm方式安装过了vsftp因此其配置文件/etc/xinet.d/vsftpd还在并且是自启动的,也就是说是XINET模式;但是/etc/rc.local中又写入了启动脚本，因此便发生了冲突，只需要关闭它们中的一个问题就解决了。有以下两种方式：1.使用XINET模式 去掉/etc/rc.local文件中的vsftpd的启动脚本/usr/local/sbin/vsftp &#038; 运行service vsftpd restart命令启动vsftpd2.使用STANDALONE独立模式 在服务器的负担比较重的情况下最好用这个模式 chkconfig vsftpd &#8211;level 3 off 或者直接修改/etc/xinetd.d/vsftpd文件，把disable=no改成disable=yes就行了！ 还有就是在/etc/vsftpd.conf文件添加listen=yes这样就改成了STANDALONE独立模式！ 记得要重启]]></description>
			<content:encoded><![CDATA[<p>1、wu-ftpd的安装与配置<br/>网上评价wu-ftpd 是最流行的一种免费FTP服务器软件，目前绝大多数的FTP站点都是由wu-ftpd来架设的<br/><br/>安装与配置手册详见：<a href="http://www.phpchina.com/download/handbook/linux-html/1464.html" target="_blank" rel="external">http://www.phpchina.com/download/handbook/linux-html/1464.html</a><br/>wu-ftpd2.6.2的配置与安装：<a href="http://blog.csdn.net/mikespook/archive/2004/06/25/26312.aspx" target="_blank" rel="external">http://blog.csdn.net/mikespook/archive/2004/06/25/26312.aspx</a><br/><br/>当我安装到 <strong>执行命令“bulid lnx”</strong> 出现了错误，然后又到网上找了下方法，发现许多人还是推荐使用vsftpd，所以跳过wu-ftpd，转向vsftpd的安装与配置。<br/><br/>2、vsftpd的安装与配置<br/><br/>源代码安装<br/><br/>详细参阅：<a href="http://www.vsftpdrocks.org/source/" target="_blank" rel="external">http://www.vsftpdrocks.org/source/</a><br/><br/>下载源代码<br/><br/>wget <a href="ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.1.tar.gz" target="_blank" rel="external">ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.1.tar.gz</a><br/><br/>解压<br/><br/>tar zxvf vsftpd-1.2.1.tar.gz<br/><br/><br/>进入源代码目录<br/><br/>cd vsftpd-1.2.1<br/><br/>编译<br/><br/>make<br/><br/>创建用户<br/>如果不存在 nobody用户，请创建<br/><br/>useradd nobody<br/><br/>创建目录<br/>vsftpd 需要 /usr/share/empty 目录，如果不存在，请创建：<br/><br/>mkdir /usr/share/empty<br/><br/><br/>安装<br/><br/>make install<br/><br/>复制配置文件到/etc目录<br/><br/>cp vsftpd.conf /etc<br/><br/>以独立方式启动vsftpd服务<br/><br/>/usr/local/sbin/vsftpd &#038;<br/><br/>此处出现&#8221;500 OOPS: could not bind listening IPv4 socket&#8221;错误<br/><br/>解决方法：<br/>
<div class="UBBPanel">
<div class="UBBTitle"><img src="/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div>
<div class="UBBContent"><br/>执行/usr/local/sbin/vsftpd &#038;之后 <br/>vsftpd 的错误提示：500 OOPS: could not bind listening IPv4 socket <br/><br/><br/>遇到这个问题我在通过编译源代码后安装vsftpd的时候遇到的，在这以前我已经通过rpm方式安装过了vsftp<br/>因此其配置文件/etc/xinet.d/vsftpd还在并且是自启动的,也就是说是XINET模式;但是/etc/rc.local中又写入<br/>了启动脚本，因此便发生了冲突，只需要关闭它们中的一个问题就解决了。<br/>有以下两种方式：<br/><br/>1.使用XINET模式<br/> 去掉/etc/rc.local文件中的vsftpd的启动脚本/usr/local/sbin/vsftp &#038;<br/> 运行service vsftpd restart命令启动vsftpd<br/>2.使用STANDALONE独立模式<br/> 在服务器的负担比较重的情况下最好用这个模式<br/> chkconfig vsftpd &#8211;level 3 off<br/> 或者直接修改/etc/xinetd.d/vsftpd文件，把disable=no改成disable=yes就行了！ <br/><br/>还有就是在/etc/vsftpd.conf文件添加listen=yes<br/>这样就改成了STANDALONE独立模式！<br/></div>
</div>
<p><br/><br/><strong>记得要重启</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/297.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux+Apache+Mysql+Php运行环境的配置</title>
		<link>http://www.baizoo.cn/archives/296.html</link>
		<comments>http://www.baizoo.cn/archives/296.html#comments</comments>
		<pubDate>Fri, 25 Apr 2008 01:11:55 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[SecureCRT ：远程控制工具SSH Secure File Transfer：文件上传工具首先，安装好上面提到的两个支持工具，它们都能很容易在网上找到下载1.安装Mysql 详见：Linux下的Mysql的安装与使用 http://www.baizoo.cn/article.asp?id=295简单介绍为：官网http://dev.mysql.com/downloads/ 下载安装文件分别上传client和server版本的rpm安装包定位到你上传的目录，如cd /home/rpm -ivh MySQL-server-standard-4.1.22-0.rhel3.i386.rpm #安装mysql server rpm -ivh MySQL-client-standard-4.1.22-0.rhel3.i386.rpm #安装mysql client #启动mysql server safe_mysqld &#038; 卸载如果系统中已经安装过mysql数据库，现在要重装的话，需要首先进行卸载，网上转来卸载方法如下：1）首先查找以前是否安装MySQL&#160;&#160;命令：rpm -qa &#124; grep mysql 可以看到两个MySQL包：mysql-server、mysql-devel-3.23.54a-11。注：这一步我并没看到效果，但我肯定自己曾经装过，所以我删除的时候直接是运行rpm -e &#8211;nodeps MySQL-client-standard-4.1.22-0.rhel3rpm -e &#8211;nodeps MySQL-server-standard-4.1.22-0.rhel32）删除命令： rpm -e &#8211;nodeps 包名 3）然后删除mysql老版本的开发头文件和库 rm -fr /usr/lib/mysql rm -fr /usr/include/mysql 之后可以正常安装了。2.安装Apache到官方网站http://www.apache.org/上下载你所需的Apache版本 我用的是2.0.63版 下载地址：http://apache.mirror.phpchina.com/httpd/httpd-2.0.63.tar.gz本地下载之后，通过使用SSH Secure File Transfer工具，将其上传到/home/目录执行安装命令：cd /home/tar –zxvf httpd-2.0.63.tar.gz./configure &#8211;prefix=/usr/local/apache [...]]]></description>
			<content:encoded><![CDATA[<p>SecureCRT ：远程控制工具<br/>SSH Secure File Transfer：文件上传工具<br/>首先，安装好上面提到的两个支持工具，它们都能很容易在网上找到下载<br/><br/><strong>1.安装Mysql </strong><br/>详见：Linux下的Mysql的安装与使用 <a href="http://www.baizoo.cn/article.asp?id=295" target="_blank" rel="external">http://www.baizoo.cn/article.asp?id=295</a><br/><br/>简单介绍为：<br/>官网<a href="http://dev.mysql.com/downloads/" target="_blank" rel="external">http://dev.mysql.com/downloads/</a> 下载安装文件<br/>分别上传client和server版本的rpm安装包<br/><br/>定位到你上传的目录，如<br/>cd /home/<br/><br/>rpm -ivh MySQL-server-standard-4.1.22-0.rhel3.i386.rpm #安装mysql server <br/>rpm -ivh MySQL-client-standard-4.1.22-0.rhel3.i386.rpm #安装mysql client <br/><br/>#启动mysql server <br/>safe_mysqld &#038; <br/><br/><strong>卸载</strong><br/>如果系统中已经安装过mysql数据库，现在要重装的话，需要首先进行卸载，<br/>网上转来卸载方法如下：<br/><br/>1）首先查找以前是否安装MySQL&nbsp;&nbsp;<br/><br/>命令：rpm -qa | grep mysql <br/><br/>可以看到两个MySQL包：mysql-server、mysql-devel-3.23.54a-11。<br/><br/><strong>注：</strong>这一步我并没看到效果，但我肯定自己曾经装过，所以我删除的时候直接是运行<br/>rpm -e &#8211;nodeps MySQL-client-standard-4.1.22-0.rhel3<br/>rpm -e &#8211;nodeps MySQL-server-standard-4.1.22-0.rhel3<br/><br/>2）删除命令： <br/><br/>rpm -e &#8211;nodeps 包名 <br/><br/>3）然后删除mysql老版本的开发头文件和库 <br/><br/>rm -fr /usr/lib/mysql <br/><br/>rm -fr /usr/include/mysql <br/>之后可以正常安装了。<br/><br/><strong>2.安装Apache</strong><br/><br/>到官方网站<a href="http://www.apache.org/" target="_blank" rel="external">http://www.apache.org/</a>上下载你所需的Apache版本 <br/><br/>我用的是2.0.63版 下载地址：<a href="http://apache.mirror.phpchina.com/httpd/httpd-2.0.63.tar.gz" target="_blank" rel="external">http://apache.mirror.phpchina.com/httpd/httpd-2.0.63.tar.gz</a><br/><br/>本地下载之后，通过使用SSH Secure File Transfer工具，将其上传到/home/目录<br/><br/>执行安装命令：<br/>cd /home/<br/>tar –zxvf httpd-2.0.63.tar.gz<br/>./configure &#8211;prefix=/usr/local/apache &#8211;enable-module=so &#8211;enable-module=rewrite &#8211;enable-shared=max &#8211;htdocsdir=/var/www &#038;&#038;<br/>make &#038;&#038;<br/>make install<br/><br/>#这里我们通过enable-module参数告诉设置脚本，我们需要启动so和rewrite模块，so模块是用来提DSO支持的apache核心模块，而rewrite模块则是用意实现地址重写的模块，由于rewrite模块需要DBM支持，如果在初次安装时没有编译进apache，以后需要用到时需要重新编译整个apache才可以实现。为此除非你可以确定以后不会用到rewrite模块，否则还是建议你在第一次编译的时候把rewrite模块编译好。<br/><br/>启动Apache<br/>/usr/local/apache/bin/apachectl start<br/><br/><strong>3.安装PHP</strong><br/><br/>软件获取：<a href="http://www.php.net/downloads.php" target="_blank" rel="external">http://www.php.net/downloads.php</a><br/>我下的为5.2.5版，地址：<a href="http://cn.php.net/distributions/php-5.2.5.tar.gz" target="_blank" rel="external">http://cn.php.net/distributions/php-5.2.5.tar.gz</a><br/><br/>同样上传到/home/目录下<br/><br/>tar zvxf php-5.2.5.tar.gz<br/>cd php-5.2.5<br/>./configure &#8211;prefix=/usr/local/php &#8211;with-apxs=/usr/local/apache/bin/apxs &#8211;with-config-file-path=/usr/local/lib &#8211;enable-track-vars &#8211;with-xml &#8211;with-mysql <br/>make <br/>make install <br/><br/>CPOPY PHP的配置文件<br/>cp php.ini-dist /usr/local/lib/php.ini<br/><br/>以dso方式安装php至/usr/local/php 设置配置文件目录为/usr/local/lib 开启mysql,xml支持<br/><br/><strong>4.配置Apache</strong><br/><br/>vi /usr/local/apache/conf/httpd.conf <br/>对apache做如下配置 <br/>#将ServerAdmin q3boy@younet.com一行改为您的邮箱地址 <br/><br/>#DocumentRoot &#8220;/home/httpd/html/&#8221; 此处为html文件主目录 <br/><br/># 同上 <br/><br/>#Options FollowSymLinks MultiViews 为安全起见，去掉&#8221;Indexes&#8221; <br/><br/># <br/># DirectoryIndex default.php default.phtml default.php3 default.html default.htm <br/># <br/>#设置apache的默认文件名次序 <br/><br/>#AddType application/x-httpd-php .php .phtml .php3 .inc <br/>#AddType application/x-httpd-php-source .phps <br/>#设置php文件后缀 <br/><br/><br/>　　存盘退出 （esc&nbsp;&nbsp;:wq）<br/><br/><br/>vi /usr/local/lib/php.ini <br/>#register-golbals = On <br/><br/>　　存盘退出 （esc&nbsp;&nbsp;:wq）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/296.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下的Mysql的安装与使用</title>
		<link>http://www.baizoo.cn/archives/295.html</link>
		<comments>http://www.baizoo.cn/archives/295.html#comments</comments>
		<pubDate>Thu, 24 Apr 2008 10:23:28 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[网站相关]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[第一次配置Lamp环境，整理了一些Linux下的Mysql的安装与使用方法，以备下次安装使用。转载请注明来着白舟空间1、下载安装官网下载你所需的版本：http://dev.mysql.com/downloads/Linux下安装，需要安装server版和client版两个版本的RPM包。如果不知道自己系统版本，可以用 cat /etc/issue 命令查看。Server下载:MySQL-server-standard-4.1.22-0.rhel3.i386.rpmClient下载：MySQL-client-standard-4.1.22-0.rhel3.i386.rpm上传到/home目录cd /home/rpm -ivh MySQL-server-standard-4.1.22-0.rhel3.i386.rpm #安装mysql server rpm -ivh MySQL-client-standard-4.1.22-0.rhel3.i386.rpm #安装mysql client #启动mysql server safe_mysqld &#038; 2、Mysql的使用登录MySQL的命令是mysql，也可以定位到/usr/local/mysql/bin/mysql登录mysql 的使用语法如下：mysql [-u username] [-h host] [-p[password]] [dbname]username 与 password 分别是 MySQL 的用户名与密码，mysql的初始管理帐号是root，没有密码。注意：这个root用户不是Linux的系统用户。MySQL默认用户是root，由于初始没有密码，第一次进时只需键入mysql即可。 [root@test1 local]# mysql　　 mysql&#62;　　 出现了“mysql&#62;”提示符，恭喜你，安装成功！　　 增加了密码后的登录格式如下：　　 mysql -u root -p　　 Enter password: (输入密码)　　 其中-u后跟的是用户名，-p要求输入密码，回车后在输入密码处输入密码。注意：这个mysql文件在/usr/bin目录下，与后面讲的启动文件/etc/init.d/mysql不是一个文件。&#160;&#160;&#160;&#160;&#160;&#160;MySQL的几个重要目录　　 MySQL安装完成后不象SQL Server默认安装在一个目录，它的数据库文件、配置文件和命令文件分别在不同的目录，了解这些目录非常重要，尤其对于Linux的初学者，因为 Linux本身的目录结构就比较复杂，如果搞不清楚MySQL的安装目录那就无从谈起深入学习。　　 下面就介绍一下这几个目录。　　 1、数据库目录　　 /var/lib/mysql/　　 2、配置文件　　 /usr/share/mysql（mysql.server命令及配置文件）　　 3、相关命令　　 /usr/bin(mysqladmin [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mysql.com/common/logos/logo_mysql_sun.gif" border="0" alt=""/><br/><br/>第一次配置Lamp环境，整理了一些Linux下的Mysql的安装与使用方法，以备下次安装使用。<br/><br/>转载请注明来着<a target="_blank" href="http://www.baizoo.cn/article.asp?id=295" rel="external">白舟空间</a><br/><br/><strong>1、下载安装</strong><br/>官网下载你所需的版本：<a href="http://dev.mysql.com/downloads/" target="_blank" rel="external">http://dev.mysql.com/downloads/</a><br/><br/>Linux下安装，需要安装server版和client版两个版本的RPM包。<br/><br/>如果不知道自己系统版本，可以用 cat /etc/issue 命令查看。<br/><br/>Server下载:<a target="_blank" href="http://mysql.cs.pu.edu.tw/Downloads/MySQL-4.1/MySQL-server-standard-4.1.22-0.rhel3.i386.rpm" rel="external">MySQL-server-standard-4.1.22-0.rhel3.i386.rpm</a><br/>Client下载：<a target="_blank" href="http://mysql.cs.pu.edu.tw/Downloads/MySQL-4.1/MySQL-client-standard-4.1.22-0.rhel3.i386.rpm" rel="external">MySQL-client-standard-4.1.22-0.rhel3.i386.rpm</a><br/><br/>上传到/home目录<br/><br/>cd /home/<br/><br/>rpm -ivh MySQL-server-standard-4.1.22-0.rhel3.i386.rpm #安装mysql server <br/>rpm -ivh MySQL-client-standard-4.1.22-0.rhel3.i386.rpm #安装mysql client <br/><br/>#启动mysql server <br/>safe_mysqld &#038; <br/><br/><strong>2、Mysql的使用</strong><br/><br/>登录MySQL的命令是mysql，也可以定位到/usr/local/mysql/bin/mysql登录<br/><br/>mysql 的使用语法如下：<br/>mysql [-u username] [-h host] [-p[password]] [dbname]<br/><br/>username 与 password 分别是 MySQL 的用户名与密码，mysql的初始管理帐号是root，没有密码。注意：这个root用户不是Linux的系统用户。MySQL默认用户是root，由于初始没有密码，第一次进时只需键入mysql即可。<br/><br/> [root@test1 local]# mysql<br/>　　 mysql&gt;<br/>　　 出现了“mysql&gt;”提示符，恭喜你，安装成功！<br/>　　 增加了密码后的登录格式如下：<br/>　　 mysql -u root -p<br/>　　 Enter password: (输入密码)<br/>　　 其中-u后跟的是用户名，-p要求输入密码，回车后在输入密码处输入密码。<br/>注意：这个mysql文件在/usr/bin目录下，与后面讲的启动文件/etc/init.d/mysql不是一个文件。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>MySQL的几个重要目录</strong><br/><br/>　　 MySQL安装完成后不象SQL Server默认安装在一个目录，它的数据库文件、配置文件和命令文件分别在不同的目录，了解这些目录非常重要，尤其对于Linux的初学者，因为 Linux本身的目录结构就比较复杂，如果搞不清楚MySQL的安装目录那就无从谈起深入学习。<br/><br/>　　 下面就介绍一下这几个目录。<br/><br/>　　 1、数据库目录<br/>　　 /var/lib/mysql/<br/><br/>　　 2、配置文件<br/>　　 /usr/share/mysql（mysql.server命令及配置文件）<br/><br/>　　 3、相关命令<br/>　　 /usr/bin(mysqladmin mysqldump等命令)<br/><br/>　　 4、启动脚本<br/>　　 /etc/rc.d/init.d/（启动脚本文件mysql的目录） <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>修改登录密码</strong><br/><br/>　　 MySQL默认没有密码，安装完毕增加密码的重要性是不言而喻的。<br/><br/>　　 1、命令<br/>　　 usr/bin/mysqladmin -u root password &#8216;new-password&#8217;<br/>　　 格式：mysqladmin -u用户名 -p旧密码 password 新密码<br/><br/>　　 2、例子<br/>　　 例1：给root加个密码123456。<br/>　　 键入以下命令 ：<br/>　　 [root@test1 local]# /usr/bin/mysqladmin -u root password 123456<br/>　　 注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。<br/><br/>　　 3、测试是否修改成功<br/>　　 1）不用密码登录<br/>　　 [root@test1 local]# mysql<br/>　　 ERROR 1045: Access denied for user: &#8216;root@localhost&#8217; (Using password: NO)<br/>　　 显示错误，说明密码已经修改。<br/><br/>　　 2）用修改后的密码登录<br/>　　 [root@test1 local]# mysql -u root -p<br/>　　 Enter password: (输入修改后的密码123456)<br/>　　 Welcome to the MySQL monitor.　Commands end with ; or g.<br/>　　 Your MySQL connection id is 4 to server version: 4.0.16-standard<br/>　　 Type &#8216;help;&#8217; or &#8216;h&#8217; for help. Type &#8216;c&#8217; to clear the buffer.<br/>　　 mysql&gt;<br/>　　 成功！<br/>　　 这是通过mysqladmin命令修改口令，也可通过修改库来更改口令。<br/><br/>&nbsp;&nbsp;<strong>启动与停止</strong><br/><br/>　　 1、启动<br/><br/>　　 MySQL安装完成后启动文件mysql在/etc/init.d目录下，在需要启动时运行下面命令即可。<br/>　　 [root@test1 init.d]# /etc/init.d/mysql start<br/>　　 方法二：service mysql start 方法三：safe_mysqld &#038;<br/><br/>　　 2、停止<br/>　　 /usr/bin/mysqladmin -u root -p shutdown<br/><br/>　　 3、自动启动<br/>　　 1）察看mysql是否在自动启动列表中<br/>　　 [root@test1 local]#　/sbin/chkconfig –list<br/>　　 2）把MySQL添加到你系统的启动服务组里面去<br/>　　 [root@test1 local]#　/sbin/chkconfig　– add　mysql<br/>　　 3）把MySQL从启动服务组里面删除。<br/>　　 [root@test1 local]#　/sbin/chkconfig　– del　mysql<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>更改MySQL目录</strong><br/><br/>　　 MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步：<br/><br/>　　 1、home目录下建立data目录<br/>　　 cd /home<br/>　　 mkdir data<br/><br/>　　 2、把MySQL服务进程停掉：<br/>　　 mysqladmin -u root -p shutdown<br/><br/>　　 3、把/var/lib/mysql整个目录移到/home/data<br/>　　 mv /var/lib/mysql　/home/data/<br/>　　 这样就把MySQL的数据文件移动到了/home/data/mysql下<br/><br/>　　 4、找到my.cnf配置文件<br/>　　 如果/etc/目录下没有my.cnf配置文件，请到/usr/share/mysql/下找到*.cnf文件，拷贝其中一个到/etc/并改名为my.cnf)中。命令如下：<br/>　　 [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf　/etc/my.cnf<br/><br/>　　 5、编辑MySQL的配置文件/etc/my.cnf<br/>　　 为保证MySQL能够正常工作，需要指明mysql.sock文件的产生位置。 <br/>修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为：/home/mysql/mysql.sock 。操作如下：<br/>　　 vi my.cnf　　　 (用vi工具编辑my.cnf文件，找到下列数据修改之)<br/>　　 # The MySQL server<br/>　　　 [mysqld]<br/>　　　 port　　　= 3306<br/>　　　 #socket　 = /var/lib/mysql/mysql.sock（原内容，为了更稳妥用“#”注释此行）<br/>　　　 socket　 = /home/data/mysql/mysql.sock　　　（加上此行）<br/><br/>　　 6、修改MySQL启动脚本/etc/rc.d/init.d/mysql<br/>　　 最后，需要修改MySQL启动脚本/etc/rc.d/init.d/mysql，把其中datadir=/var/lib/mysql一行中，等号右边的路径改成你现在的实际存放路径：home/data/mysql。<br/>　　 [root@test1 etc]# vi　/etc/rc.d/init.d/mysql<br/>　　 #datadir=/var/lib/mysql　　　　（注释此行）<br/>　　 datadir=/home/data/mysql　　 （加上此行）<br/><br/>　　 7、重新启动MySQL服务<br/>　　 /etc/rc.d/init.d/mysql　start<br/>　　 或用reboot命令重启Linux<br/>　　 如果工作正常移动就成功了，否则对照前面的7步再检查一下。 <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <strong>MySQL的常用操作</strong><br/><br/>　　 注意：MySQL中每个命令后都要以分号；结尾。<br/><br/>　　 1、显示数据库<br/>　　 mysql&gt; show databases;<br/>　　 +&#8212;&#8212;&#8212;-+<br/>　　 | Database |<br/>　　 +&#8212;&#8212;&#8212;-+<br/>　　 | mysql　　|<br/>　　 | test　　 |<br/>　　 +&#8212;&#8212;&#8212;-+<br/>　　 2 rows in set (0.04 sec)<br/>　　 Mysql刚安装完有两个数据库：mysql和test。mysql库非常重要，它里面有MySQL的系统信息，我们改密码和新增用户，实际上就是用这个库中的相关表进行操作。<br/><br/>　　 2、显示数据库中的表<br/>　　 mysql&gt; use mysql; （打开库，对每个库进行操作就要打开此库，类似于foxpro ）<br/>　　 Database changed<br/><br/>　　 mysql&gt; show tables;<br/>　　 +&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br/>　　 | Tables_in_mysql |<br/>　　 +&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br/>　　 | columns_priv　　|<br/>　　 | db　　　　　　　|<br/>　　 | func　　　　　　|<br/>　　 | host　　　　　　|<br/>　　 | tables_priv　　 |<br/>　　 | user　　　　　　|<br/>　　 +&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br/>　　 6 rows in set (0.01 sec)<br/><br/>　　 3、显示数据表的结构：<br/>　　 describe 表名;<br/><br/>　　 4、显示表中的记录：<br/>　　 select * from 表名;<br/>　　 例如：显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。<br/>　　 Select * from user;<br/><br/>　　 5、建库：<br/>　　 create database 库名;<br/>　　 例如：创建一个名字位aaa的库<br/>　　 mysql&gt; create databases aaa;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6、建表：<br/>　　 use 库名；<br/>　　 create table 表名 (字段设定列表)；<br/>　　 例如：在刚创建的aaa库中建立表name,表中有id(序号，自动增长)，xm（姓名）,xb（性别）,csny（出身年月）四个字段<br/>　　 use aaa;<br/>　　 mysql&gt; create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);<br/>　　 可以用describe命令察看刚建立的表结构。<br/>　　 mysql&gt; describe name;<br/><br/>　　 +&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+<br/>　　 | Field | Type　　| Null | Key | Default | Extra　　　　　|<br/>　　 +&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+<br/>　　 | id　　| int(3)　|　　　| PRI | NULL　　| auto_increment |<br/>　　 | xm　　| char(8) | YES　|　　 | NULL　　|　　　　　　　　|<br/>　　 | xb　　| char(2) | YES　|　　 | NULL　　|　　　　　　　　|<br/>　　 | csny　| date　　| YES　|　　 | NULL　　|　　　　　　　　|<br/>　　 +&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+<br/><br/>　　 7、增加记录<br/>　　 例如：增加几条相关纪录。<br/>　　 mysql&gt; insert into name values(&#8221;,&#8217;张三&#8217;,'男&#8217;,&#8217;1971-10-01&#8242;);<br/>　　 mysql&gt; insert into name values(&#8221;,&#8217;白云&#8217;,'女&#8217;,&#8217;1972-05-20&#8242;);<br/>　　 可用select命令来验证结果。<br/>　　 mysql&gt; select * from name;<br/>　　 +&#8212;-+&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+<br/>　　 | id | xm　 | xb　 | csny　　　 |<br/>　　 +&#8212;-+&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+<br/>　　 |　1 | 张三 | 男　 | 1971-10-01 |<br/>　　 |　2 | 白云 | 女　 | 1972-05-20 |<br/>　　 +&#8212;-+&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+<br/><br/>　　 8、修改纪录<br/>　　 例如：将张三的出生年月改为1971-01-10<br/>　　 mysql&gt; update name set csny=&#8217;1971-01-10&#8242; where xm=&#8217;张三&#8217;;<br/><br/>　　 9、删除纪录<br/>　　 例如：删除张三的纪录。<br/>　　 mysql&gt; delete from name where xm=&#8217;张三&#8217;;<br/><br/>　　 10、删库和删表<br/>　　 drop database 库名;<br/>　　 drop table 表名；<br/><br/>　　 <strong>增加MySQL用户</strong><br/><br/>　　 格式：grant select on 数据库.* to 用户名@登录主机 identified by &#8220;密码&#8221;<br/><br/>例1、增加一个用户user_1密码为123，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL，然后键入以下命令：<br/><br/>　　 mysql&gt; grant select,insert,update,delete on *.* to user_1@&#8221;%&#8221; Identified by &#8220;123&#8243;;<br/><br/>例1增加的用户是十分危险的，如果知道了user_1的密码，那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了，解决办法见例2。<br/><br/>　　例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录，并可以对数据库aaa进行查询、插入、修改、删除的操作（localhost指本地主机，即MySQL数据库所在的那台主机），这样用户即使用知道user_2的密码，他也无法从网上直接访问数据库，只能通过 MYSQL主机来操作aaa库。<br/><br/>　　 mysql&gt;grant select,insert,update,delete on aaa.* to user_2@localhost identified by &#8220;123&#8243;;<br/><br/>　　 用新增的用户如果登录不了MySQL，在登录时用如下命令：<br/><br/>　　 mysql -u user_1 -p　-h 192.168.113.50　（-h后跟的是要登录主机的ip地址）<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <strong>备份与恢复</strong><br/><br/>　　 1、备份<br/><br/>　　 例如：将上例创建的aaa库备份到文件back_aaa中<br/><br/>　　 [root@test1 root]# cd　/home/data/mysql　(进入到库目录，本例库已由val/lib/mysql转到/home/data/mysql，见上述第七部分内容)<br/>　　 [root@test1 mysql]# mysqldump -u root -p &#8211;opt aaa &gt; back_aaa<br/><br/>　　 2、恢复<br/><br/>　　 [root@test mysql]# mysql -u root -p ccc &lt; back_aaa<br/>　　 <br/>　　 3、补充（备份和恢复.gz格式的数据压缩包）<br/>　　 <br/>　　 备份<br/>　　 shell&gt; mysqldump &#8211;quick db_name | gzip &gt; db_name.contents.gz<br/>　　 恢复<br/>　　 shell&gt; gunzip &lt; db_name.contents.gz | mysql db_name</p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/295.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

