﻿<?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-hengheng123456789-文章分类-Linux</title><link>http://www.blogjava.net/hengheng123456789/category/14654.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 17:08:43 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 17:08:43 GMT</pubDate><ttl>60</ttl><item><title>Linux下安装配置MediaWiKi全过程</title><link>http://www.blogjava.net/hengheng123456789/articles/74059.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Mon, 09 Oct 2006 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/articles/74059.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/74059.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/articles/74059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/74059.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/74059.html</trackback:ping><description><![CDATA[
		<p>0、libxml2的安装<br />   *下载<a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2">http://rpmfind.net/linux/rpm2html/search.php?query=libxml2</a><br />   *执行以下Linux命令进行安装</p>
		<p>            a)gunzip libxml2-2.6.26.tar.gz<br />            b)tar -xvf  libxml2-2.6.26.tar<br />            c)cd libxml2-2.6.26<br />            d)./configure<br />            e)make<br />            f)make install<br /><br />1、Apache 2.0 的安装</p>
		<p>   *下载<a href="http://www.apache.org/" target="_top">Apache 2.0</a></p>
		<p>   *执行以下Linux命令进行安装</p>
		<p>            a)gzip -d httpd-2_0_NN.tar.gz<br />            b)tar xvf httpd-2_0_NN.tar<br />            c)cd httpd-2_0_NN<br />            d)./configure --enable-so<br />            e)make<br />            f)make install<br /><br />      现在您已经将 Apache 2.0.NN 安装在 /usr/local/apache。本安装支持可装载模块<br />      和标准的 MPM prefork。之后，可以使用如下命令启动 Apache 服务器：<br />      /usr/local/apache2/bin/apachectl start<br />      如果成功，您可以停止 Apache 服务器并继续安装其他：<br />    /usr/local/apache2/bin/apachectl stop<br /><br />2、MySQL的安装<br />   *下载<a href="http://www.mysql.com/downloads" target="_blank">http://www.mysql.com/downloads</a>，版本要高于4.0.14<br />      如：MySQL-server-4.0.23-0.i386.rpm<br />              MySQL-client-4.0.23-0.i386.rpm<br />              MySQL-devel-4.0.23-0.i386.rpm<br /><br />   *分别按顺序安装，安装命令如下：<br />            a) rpm -ivh MySQL-server-4.0.23-0.i386.rpm<br /><br />               测试是否成功可运行netstat看Mysql端口是否打开，如打开表示服务已经启动，安装成功。Mysql默认的端口是3306。 <br />　　       [root@test1 local]# netstat -nat <br />　　       Active Internet connections (servers and established) <br />　　       Proto Recv-Q Send-Q Local Address　　　　　 Foreign Address　　　　 State　　　 <br />　　       tcp　　0　　0 0.0.0.0:3306　　　　 0.0.0.0:*　　　　　 LISTEN　　　 <br />　　       上面显示可以看出MySQL服务已经启动。 <br /><br />            b)rpm -ivh MySQL-client-4.0.23-0.i386.rpm<br />               用下面的命令连接mysql,测试是否成功。<br />                [root@test1 local]# mysql <br />　　       Welcome to the MySQL monitor.　Commands end with ; or \g. <br />　　       Your MySQL connection id is 1 to server version: 4.0.16-standard <br />　　       Type 'help;' or '\h' for help. Type '\c' to clear the buffer. <br />　　       mysql&gt; <br />　　       出现了“mysql&gt;”提示符，恭喜你，安装成功！<br />            c)rpm -ivh MySQL-devel-4.0.23-0.i386.rpm<br />   *更改数据库用户root的密码为：123456<br />            a)/usr/bin/mysqladmin -u root password 123456 <br />   *新建wiki用数据库<br />            a)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 'help;' or '\h' for help. Type '\c' to clear the buffer. <br />　　       mysql&gt; create database wikidb;<br />               mysql&gt;  show databases;;<br />               +----------+<br />               | Database |<br />               +----------+<br />               | mysql    |<br />               | test     |<br />               | wikidb   |<br />               +----------+<br />               3 rows in set (0.00 sec)<br />3、PHP的安装<br />   *下载PHP 5.1.2：<a href="http://cn.php.net/downloads.php">http://cn.php.net/downloads.php</a><br />   *执行以下Linux命令进行安装<br />            a)gunzip php-NN.tar.gz<br />            b)tar -xvf php-NN.tar<br />            c)cd ../php-NN<br />            d)./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql<br />            e)make<br />            f)make install<br />            g)cp php.ini-dist /usr/local/lib/php.ini<br />            h)编辑 httpd.conf 文件以调用 PHP 模块。LoadMolude 表达式右边的路径必须指向您<br />    系统中的 PHP。以上的 make install 命令可能已经帮您完成了这些，但务必要检查。<br />                对于 PHP 5：<br />                LoadModule php5_module modules/libphp5.so<br />               注：httpd.conf 文件在目录/usr/local/apache2/conf中<br />            i)继续编辑 httpd.conf 文件，告知 Apache 将特定的扩展名解析成 PHP，例如，我们让 Apache 将扩展名 .php   解析成 PHP。您可以将任何扩展名指定为 PHP，只需添加它们，每一个用空格分隔。<br />                例如，我们要添加 .phtml：<br /><br />                AddType application/x-httpd-php .php .phtml<br /><br />                通常，我们还将 .phps 扩展名设置成显示高亮的 PHP 源文件，可以这样来完成：<br /><br />                AddType application/x-httpd-php-source .phps<br />            j)启动您的 Apache 服务器：        /usr/local/apache2/bin/apachectl start<br /><br />4、Mediawiki的安装<br /><br />   *Mediawiki下载：<a title="MediaWiki" href="http://www.allwiki.com/wiki/MediaWiki">MediaWiki</a><br />   *把下载文件解压并copy到目录：/usr/local/apache2/htdocs<br />   *通过浏览器访问index.php文件（例如 <a class="external free" title="http://www.allwiki.com/config/index.php" href="http://localhost/mediawiki-1.7.1/config/index.php" target="_blank" rel="nofollow">http://localhost/mediawiki-1.7.1/config/index.php</a> )，这时安装过程自动开始，软件会检查系统配置。<br /><br /><br />根据页面提示填写相应的内容：<b>（请对以下内容做好记录，以便升级时使用）</b></p>
		<ul>
				<li>Site name：你的wiki站点名称。<b>注意：</b>这与网站本身的名字空间有关，建议使用简短的英文（以后可修改） 
</li>
				<li>Contact e-mail：站长的联络邮件 
</li>
				<li>Language：语种选择。建议选择zh-cn简体中文或zh-tw繁体中文；没必要就不要选支持繁简体自动转换的zh中文，否则此后网站提示的本地化工作量将增加很多 
</li>
				<li>Copyright/license medadata：版权类型。其中GNU为公开的自由版权，允许他人复制、修改；不确定该用什么版权时选no license metadata 
</li>
				<li>Sysop account name：站长的名字。这是建立wiki后的第一个管理员用户，以后无法改名。可考虑使用英文名字 
</li>
				<li>password：站长的密码 
</li>
				<li>Shared memory caching：网站缓冲机制，建议选择Turck MMCache 
</li>
				<li>MySQL server：填写空间服务商提供的MySQL服务器名称，一般为localhost 
</li>
				<li>Database name：数据库名称，根据与空间服务商的约定填写 
</li>
				<li>DB username：数据库用户名，根据服务商约定填写 
</li>
				<li>DB password：数据库密码，根据服务商约定填写 
</li>
				<li>Database table prefix：数据表前缀。建议设置前缀，以便与本站的其他软件公用MySQL数据库，甚至同时架设多个wiki（需放在不同目录）。 
</li>
				<li>DB root password：数据库root密码。（可忽略） </li>
		</ul>
		<p>按Install按钮提交即可。<br /><br /><br /></p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/74059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2006-10-09 13:42 <a href="http://www.blogjava.net/hengheng123456789/articles/74059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于tar.gz文件的安装</title><link>http://www.blogjava.net/hengheng123456789/articles/66920.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Thu, 31 Aug 2006 10:17:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/articles/66920.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/66920.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/articles/66920.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/66920.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/66920.html</trackback:ping><description><![CDATA[
		<ol>
				<li>
						<font size="2">
				tar -xzf *.tar.gz</font>
				</li>
				<li>
						<font size="2">cd 进入解压后的目录<br /></font>
				</li>
				<li>
						<font size="2">./configure</font>
				</li>
				<li>
						<font size="2">make</font>
				</li>
				<li>
						<font size="2">make install(root用户)</font>
				</li>
		</ol>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/66920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2006-08-31 18:17 <a href="http://www.blogjava.net/hengheng123456789/articles/66920.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BASEDIR environment variable is not defined correctly</title><link>http://www.blogjava.net/hengheng123456789/articles/66630.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Wed, 30 Aug 2006 04:01:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/articles/66630.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/66630.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/articles/66630.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/66630.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/66630.html</trackback:ping><description><![CDATA[
		<div id="diary5467248" style="display: block;" class="diaryContent">
				<p>
						<font color="#000000">今天安装TOMCAT5，下载的是其ZIP安装包，在Linux下unzip后，无论如何，也无法正常启动TOMCAT，总是错误如下：</font>
				</p>
				<p>
						<font color="#000000">The <a name="0" _base_href="http://jian.blogchina.com/"></a><b style="color: black; background-color: rgb(255, 255, 102);">BASEDIR</b><a name="1" _base_href="http://jian.blogchina.com/"></a><b style="color: black; background-color: rgb(160, 255, 255);">environment</b><a name="2" _base_href="http://jian.blogchina.com/"></a><b style="color: black; background-color: rgb(153, 255, 153);">variable</b> is not defined correctly<br />This <b style="color: black; background-color: rgb(160, 255, 255);">environment</b><b style="color: black; background-color: rgb(153, 255, 153);">variable</b> is needed to run this program<br /></font>
				</p>
				<p>
						<font color="#000000">之前就是：</font>
				</p>
				<p>
						<font color="#000000">Cannot find ./catalina.sh<br />This file is needed to run this program<br /></font>
				</p>
				<p>
						<font color="#000000">经过无数次磨练后，才猛然发现那些.sh文件都不是可执行文件，于是chmod +x *.sh，一切就全都搞定！</font>
				</p>
		</div>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/66630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2006-08-30 12:01 <a href="http://www.blogjava.net/hengheng123456789/articles/66630.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>定制Linux系统环境变量</title><link>http://www.blogjava.net/hengheng123456789/articles/66628.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Wed, 30 Aug 2006 03:59:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/articles/66628.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/66628.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/articles/66628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/66628.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/66628.html</trackback:ping><description><![CDATA[
		<p>我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题。什么是环境变量？如何定制环境变量？我将在下面做一些介绍。</p>
		<p>一、什么是环境变量？<br />Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后，都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。</p>
		<p>二、定制环境变量 <br />环境变量是和Shell紧密相关的，它是通过Shell命令来设置的。环境变量又可以被所有当前用户所运行的程序所使用。对于bash来说，可以通过变量名来访问相应的环境变量。<br />下面通过几个实例来说明</p>
		<p>1.显示环境变量HOME <br />$ echo $HOME<br />/home/admin</p>
		<p>2.设置一个新的环境变量NAME<br />$ export NAME="RaidCheng"<br />$ echo $NAME<br />RaidCheng</p>
		<p>3.使用env命令显示所有的环境变量 <br />$ env<br />HOSTNAME=test<br />TERM=vt100<br />SHELL=/bin/bash<br />HISTSIZE=1000<br />SSH_CLIENT=202.xxx.xxx.xxx 53694 22<br />CATALINA_BASE=/usr/local/jakarta-tomcat<br />SSH_TTY=/dev/pts/0<br />ANT_HOME=/usr/local/ant<br />JAVA_OPTS=-server<br />USER=admin<br />...</p>
		<p>4.使用set命令显示所有本地定义的Shell变量 <br />$ set<br />BASH=/bin/bash<br />BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")<br />BASH_VERSION='2.05b.0(1)-release'<br />CATALINA_BASE=/usr/local/jakarta-tomcat<br />CATALINA_HOME=/usr/local/jakarta-tomcat<br />...</p>
		<p>5.使用unset命令来清除环境变量 <br />$ export NAME="RaidCheng"<br />$ echo $NAME<br />RaidCheng<br />$ unset NAME<br />$ echo $NAME</p>
		<p>6.使用readonly命令设置只读变量 <br />$ export NAME="RaidCheng"<br />$ readonly NAME<br />$ unset NAME<br />-bash: unset: NAME: cannot unset: readonly variable<br />$ NAME="New" #会发现此也变量不能被修改<br />-bash: TEST: readonly variable</p>
		<p>三、常见的环境变量 <br />PATH　　　　　　决定了shell将到哪些目录中寻找命令或程序<br />HOME　　　　　　当前用户主目录<br />HISTSIZE　　　　历史记录数<br />LOGNAME 　　　　当前用户的登录名 <br />HOSTNAME　　　　指主机的名称<br />SHELL 　　　　　前用户Shell类型 <br />LANGUGE 　　　　语言相关的环境变量，多语言可以修改此环境变量<br />MAIL　　　　　　当前用户的邮件存放目录 <br />PS1　　　　　　 基本提示符，对于root用户是#，对于普通用户是$<br />PS2　　　　　　 附属提示符，默认是“&gt;”</p>
		<p>四、通过C程序来访问和设置环境变量 <br />对于C程序的用户来说，可以使用下列三个函数来设置或访问一个环境变量。 </p>
		<p>getenv()访问一个环境变量。输入参数是需要访问的变量名字，返回值是一个字符串。如果所访问的环境变量不存在，则会返回NULL</p>
		<p>setenv()在程序里面设置某个环境变量的函数</p>
		<p>unsetenv()清除某个特定的环境变量的函数</p>
		<p>另外，还有一个指针变量environ，它指向的是包含所有的环境变量的一个列表。下面的程序可以打印出当前运行环境里面的所有环境变量：</p>
		<p>#include <stdio.h><br />extern char**environ;<br />int main ()<br />{<br />char**var;<br />for (var =environ;*var !=NULL;++var)<br />printf ("%s \n ",*var);<br />return 0;<br />}</stdio.h></p>
		<p>五、环境变量文件<br />通过修改一些相关的环境定义文件来修改环境变量，比如对于RedHat，与环境相关的文件有/etc/profile和~/.bash_profile等。修改完毕后重新登录一次或运行命令source xxx就生效了。</p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/66628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2006-08-30 11:59 <a href="http://www.blogjava.net/hengheng123456789/articles/66628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux文件权限全接触</title><link>http://www.blogjava.net/hengheng123456789/articles/66622.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Wed, 30 Aug 2006 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/articles/66622.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/66622.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/articles/66622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/66622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/66622.html</trackback:ping><description><![CDATA[　　文件类型 
<br /><br />　　Linux下的文件可以分为5种不同的类型：普通文件、目录文件、链接文件、设备文件和管道文件。 
<br /><br />　　1.普通文件 
<br /><br />　　这是一类常见的文件，也是常使用的一类文件，其特点是不包含有文件系统的结构信息。通常所接触到的文件，包括图形文件、数据文件、文档文件、声音文件等都属于这种文件。这种类型的文件按其内部结构又可细分为文本文件和二进制文件。 
<br /><br />　　2.目录文件 
<br /><br />　　目录文件是用于存放文件名及其相关信息的文件，是内核组织文件系统的基本节点。目录文件可以包含下一级目录文件或普通。对于习惯于使用
Windows的用户来说，这可能有些难于理解，目录怎么会是文件呢？的确，在Linux中，目录文件是一种文件。但Linux的目录文件和其它操作系统
中的“目录”的概念不同，它是Linux文件中的一种。当然，在实际使用中可以不仔细区分这两种说法。实际上，在很多Linux的书籍和资料中就是将目录
文件简称为目录的。不过，我们必需清楚此“目录”非彼“目录”。 <br /><br />　　3.链接文件 
<br /><br />　　链接文件是一种特殊的文件，实际上是指向一个真实存在的文件的链接。这有点类似于Windows下的快捷方式。根据链接文件的不同，它又可以细分为硬链接文件和符号链接文件。 
<br /><br />　　4.设备文件 
<br /><br />　　设备文件是Linux中最特殊的文件。正是由于它的存在，使得Linux系统可以十分方便地访问外部设备。Linux系统为外部设备提供一种
标准接口，将外部设备视为一种特殊的文件。用户可以像访问普通文件一样访问外部设备，使Linux系统可以很方便地适应不断发展的外部设备。通常
Linux系统将设备文件放在/dev目录下，设备文件使用设备的主设备号和次设备号来指定某外部设备。根据访问数据方式的不同，设备文件又可以细分为块
设备和字符设备文件。 <br /><br />　　5.管道文件 
<br /><br />　　管道文件是一种很特殊的文件，主要用于不同进程间的信息传递。当两个进程间需要进行数据或信息传递时，可以通过管道文件。一个进程将需传递的数据或信息写入管道的一端，另一进程则从管道的另一端取得所需的数据或信息。通常管道是建立在调整缓存中。 
<br /><br /><br />　　文件的权限 
<br /><br />　　Linux系统是一个典型的多用户系统，不同的用户处于不同的地位。为了保护系统的安全性，Linux系统对不同用户访问同一文件的权限做了不同的规定。 
<br /><br />　　对于一个Linux系统中的文件来说，它的权限可以分为三种：读的权限、写的权限和执行的权限，分别用r、w和x表示。不同的用户具有不同的读、写和执行的权限。 
<br /><br />　　对于一个文件来说，它都有一个特定的所有者，也就是对文件具有所有权的用户。同时，由于在Linux系统中，用户是按组分类的，一个用户属于
一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其它用户。因此，Linux系统按文件所有者、文件所有者同组用户和其它用户三类规
定不同的文件访问权限。 <br /><br /><br />　　权限的概念 
<br /><br />　　Linux文件系统安全模型是通过给系统中的文件赋予两个属性来起作用的，这两个赋予每个文件的属性称为所有者(ownership)和访问权限(access rights)。Linux下的每一个文件必须严格地属于一个用户和一个组。 
<br /><br />    每个文件的目录条目都是以下面类似的一些符号开始： 
<br /><br />    -rw-r--r--
<br /><br /><br />　　这些符号用来描述文件的访问权限类别，也就是常说的文件权限。这些访问权限指导Linux根据文件的用户和组所有权来处理所有访问文件的用户请求。总共有10种权限属性，因此一个权限列表总是10个字符的长度。它的格式遵循下列规则： 
<br /><br />　　◆
第1个字符表示一种特殊的文件类型。其中字符可为d(表示该文件是一个目录)、b(表示该文件是一个系统设备，使用块输入/输出与外界交互，通常为一个磁
盘)、c(表示该文件是一个系统设备，使用连续的字符输入/输出与外界交互，如串口和声音设备)，“.”表示该文件是一个普通文件，没有特殊属性。 <br /><br />　　◆
2～4个字符用来确定文件的用户(user)权限，5～7个字符用来确定文件的组(group)权限，8～10个字符用来确定文件的其它用户(other
user，既不是文件所有者，也不是组成员的用户)的权限。其中，2、5、8个字符是用来控制文件的读权限的，该位字符为r表示允许用户、组成员或其它人
可从该文件中读取数据。短线“-”则表示不允许该成员读取数据。与此类似，3、6、9位的字符控制文件的写权限，该位若为w表示允许写，若为“-”表示不
允许写。4、7、10位的字符用来控制文件的制造权限，该位若为x表示允许执行，若为“-”表示不允许执行。 <br /><br /><br />　　任何列在/etc/passwd文件中的用户都可以是一个文件的所有者，也称为该文件的用户。同样任何列在/etc/group文件中的组都可以是文件组的所有者，也简称为文件的组。 
<br /><br />　　下面来看两个例子，以便加深理解。首先来看一看： 
<br /><br />drwxrwxr-- 2 root root 4096 2月 11 10:36 guo
<br /><br /><br />　　因为guo的第1个位置的字符是d，所以由此知道guo是一个目录。第2至4位置上的属性是rwx，表示用户root拥有权限列表显示guo
中所有的文件、创建新文件或者删除guo中现有的文件，或者将guo作为当前工作目录。第5至7个位置上的权限是rwx，表示root组的成员拥有和
root一样的权限。第8至10位上的权限仅是r--，表示不是root的用户及不属于root组的成员只有对guo目录列表的权限。这些用户不能创建或
者删除guo中的文件、执行junk中的可执行文件，或者将junk作为他们的当前工作目录。 <br /><br />　　下面再来看一看： 
<br /><br />-rwxr-xr-- 1 user admin 20480 11月 11 09:23 Readme.txt
<br /><br /><br /><br />　　在该项中，第1个位置是短线“-”，表示该文件是一个普通文件，没有特殊属性。该文件对任何人都可读，只对user可写，user和admin的组成员可以执行该文件。 
<br /><br />　　另外需要注意的是，当用户访问一个文件时，权限检查是从左到右的。假设上述的readme.txt文件具有以下权限： 
<br /><br />-r--rw-r--
<br /><br /><br /><br />　　那么即使user是属于admin组的一个成员，也不能对该文件进行写操作，因为已经被左边的写权限设置拒绝了。 
<br /><br /><br />　　<b>修改文件或者目录权限 
</b><br /><br />　　文件或者目录的用户能够使用chmod命令修改文件的权限。Chmod命令有两种方式：一种是字符方式，使用字符来修改文件的权限；另外一种是数字方式，使用3个数字的组合来修改文件的权限。 
<br /><br />　　字符方式的基本语法是：chmod [ugoa] +或者-或者= [rwx] [文件...] 
<br /><br />　　在上述命令中，使用“+”或者“-”是在保存原来权限设置的基础上修改权限。当使用“=”时，权限被明确地赋予要修改的文件。其中字符u表示文件或者目录的所有者，g表示文件或者目录所属组，o除所有者和所属组以外的用户，a表示全部用户。 
<br /><br />　　数字方式的基本语法是：chmod nnn 文件 
<br /><br />其中第1、2、3个n分别表示用户、组成员和所有其它用户。各个位置上的n要么是一个0，或者是一个由赋予权限的相关值相加得到的单个阿拉伯数字之和。这些数字的意义如表1所示。 
<br /><br />　　　　表1 数字的含义 
<br /><br />值 　　 　　 表示的意义
<br />4 　　　　　表示文件或者目录的读权限
<br />2　　　　　　表示文件或者目录的写权限
<br />1　　 表示文件或者目录的执行权限
<br /><br /><br /><br />　　很显然，当使用数字方式时，这3个数字必须为0至7中的一个。 
<br /><br /><br />　　一般而言，作为系统管理员，更喜欢使用数字方式，因为这种方式的速度明显快得多。 
<br /><br />　　很显然，系统中各种文件的权限设置对特定用户的数据安全有很大影响。但是要求用户逐一明确设置系统中每个文件的权限也是不现实的，为此，需要
使用umask命令，该命令可以为用户账号中新文件的创建进行缺省设置。具体来说，umask是用来设置权限掩码的，权限掩码由3个数字组成，将现有的存
取权限减掉权限掩码后，即可产生建立文件时默认的权限。例如，root的权限为777，若权限掩码设为022，那么两都相减后可得755。下面是在我的系
统更改umask的一些情况： <br /><br />[root@linuxserver root]# umask
<br />022
<br /><br /><br /><br />　　上述命令显示表示我的系统的umask值为022。 
<br /><br />[root@linuxserver root]# umask -S
<br />u=rwx,g=rx,o=rx
<br /><br /><br /><br />　　当umask值为022时，默认情况下各用户的权限。注意这里的参数“S”是大写。 
<br /><br />[root@linuxserver root]# umask 177
<br />[root@linuxserver root]# umask -S
<br />u=rw,g=,o=
<br /><br /><br /><br />　　上述两行命令把umask值改为177，结果只有文件所有者具有读写文件的权限，其它用户不能访问该文件。这显然是一种非常安全的状态。 
<br /><br /><br />　　其它问题 
<br /><br />　　事实上，一个系统中的文件安全是一个综合问题，对于一些特殊的情况要做特殊的考虑。比如，对于设备文件的安全性、SUID/SGID的设置等。 
<br /><br />　　一般来说，各Linux发行版在安装时就已经把设备文件的设置做得非常不错。但是对于磁盘设备而言，我认为惟一安全的还是只允许root用户进行读写。否则，其它用户的账号一旦被攻破，黑客通过访问磁盘很快就可以让系统崩溃。要做到这一点，可以使用以下命令： 
<br /><br />#cd /dev
<br />#chmod 600 sd* hd *
<br /><br /><br /><br />　　Suid和Sgid是Linux系统中最复杂的属性，它跟一个系统的安全息息相关。我们可以利用chmod命令来清除或者设置一个文件的Suid/Sgid属性，具体方法如下所示。 
<br /><br />　　将/usr/sbin/pppd程序设置为Suid/Sgid状态，使用的命令是： 
<br /><br />#chmod ug+s /usr/sbin/pppd
<br /><br /><br /><br />　　要清除Sgid状态而保留Suid状态，可用以下命令： 
<br /><br />#chmod g-s /usr/sbin/pppd
<br /><br /><br /><br />　　此外，如何装载文件系统，特别是将root文件系统装载为只读，以防止非授权的修改也比较重要。 
<br /><br />　　总之，Linux下文件系统的安全问题是一个非常复杂的问题。通过本文的学习，读者对此应该有了一个较全面的了解，并且可以处理日常工作中常见的有关文件系统安全问题。
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/66622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2006-08-30 11:35 <a href="http://www.blogjava.net/hengheng123456789/articles/66622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>