<?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/GNU</title>
	<atom:link href="http://blog.shidelai.cn/tag/linuxgnu/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.shidelai.cn</link>
	<description>WordPress, Blog, linux, 杂文</description>
	<lastBuildDate>Thu, 29 Jul 2010 13:00:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Linux可以完美运行影音风暴、PPlive、搜狗输入法哦</title>
		<link>http://blog.shidelai.cn/2009/04/crazy-linux.html</link>
		<comments>http://blog.shidelai.cn/2009/04/crazy-linux.html#comments</comments>
		<pubDate>Tue, 28 Apr 2009 14:20:03 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>

		<guid isPermaLink="false">http://blog.shidelai.cn/?p=880</guid>
		<description><![CDATA[Linux可以完美运行影音风暴、PPlive、搜狗输入法哦~ 神奇吧~~？ 有图有真相 影音风暴 PPlive、搜狗输入法 骗你的， 其实是&#8230;. [相关文章] 设置SCIM输入法默认输入状态为英文 (0) 最基础的Ubuntu文... ]]></description>
			<content:encoded><![CDATA[<p>Linux可以完美运行影音风暴、PPlive、搜狗输入法哦~</p>
<p>神奇吧~~？</p>
<p>有图有真相</p>
<p>影音风暴</p>

<a href="http://blog.shidelai.cn/wp-content/gallery/upload/screanshot.jpg" title="" class="shutterset_singlepic140" >
	<img class="ngg-singlepic ngg-center" src="http://blog.shidelai.cn/wp-content/gallery/cache/140__480x360_screanshot.jpg" alt="screanshot.jpg" title="screanshot.jpg" />
</a>

<p>PPlive、搜狗输入法</p>

<a href="http://blog.shidelai.cn/wp-content/gallery/upload/creanshot3.jpg" title="" class="shutterset_singlepic141" >
	<img class="ngg-singlepic ngg-center" src="http://blog.shidelai.cn/wp-content/gallery/cache/141__480x360_creanshot3.jpg" alt="creanshot3.jpg" title="creanshot3.jpg" />
</a>

<p><!--inline-more--></p>
<p>骗你的， 其实是&#8230;.</p>
<p><img onclick="grin(':cool:');" src="../wp-includes/images/smilies/icon_cool.gif" alt=":cool:" /></p>

<a href="http://blog.shidelai.cn/wp-content/gallery/upload/screansho4.jpg" title="" class="shutterset_singlepic142" >
	<img class="ngg-singlepic ngg-center" src="http://blog.shidelai.cn/wp-content/gallery/cache/142__640x320_screansho4.jpg" alt="screansho4.jpg" title="screansho4.jpg" />
</a>

<p><img onclick="grin(':cool:');" src="../wp-includes/images/smilies/icon_cool.gif" alt=":cool:" /></p>

<a href="http://blog.shidelai.cn/wp-content/gallery/upload/snv32286.jpg" title="" class="shutterset_singlepic143" >
	<img class="ngg-singlepic ngg-center" src="http://blog.shidelai.cn/wp-content/gallery/cache/143__640x320_snv32286.jpg" alt="snv32286.jpg" title="snv32286.jpg" />
</a>


	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/two-linux-documentary.html" title="两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》 (2008-02-11)">两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》</a> (3)</li>
	<li><a href="http://blog.shidelai.cn/2008/10/export-sh-source.html" title="Shell中的export &#038; sh &#038; source (2008-10-27)">Shell中的export &#038; sh &#038; source</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html" title="linux界面优化，实现3D桌面，苹果主题。 (2008-02-22)">linux界面优化，实现3D桌面，苹果主题。</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2009/04/crazy-linux.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>linux使普通用户获得root权限的vmsplice系统调用漏洞分析</title>
		<link>http://blog.shidelai.cn/2008/12/linux-vmsplice.html</link>
		<comments>http://blog.shidelai.cn/2008/12/linux-vmsplice.html#comments</comments>
		<pubDate>Mon, 29 Dec 2008 15:54:43 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[vmsplice]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=688</guid>
		<description><![CDATA[vmsplice系统调用是linux内核2.6.17第一次引入的，随后被发现存在能让普通用户提升到root权限的漏洞。该漏洞影响的版本网络上笼统的说法是：2.6.17-2.6.24.1，实际上更确切的说是：2.6.17- 2.6.22.17，2... ]]></description>
			<content:encoded><![CDATA[<a href='http://blog.shidelai.cn/2008/12/linux-vmsplice.html' target="_blank" rel="nofollow"><img src="http://blog.shidelai.cn/wp-content/gallery/icons/linux-logo.jpg" style="border:0; float:left; margin: 0 1em .5em 0;" alt="linux使普通用户获得root权限的vmsplice系统调用漏洞分析" title="linux使普通用户获得root权限的vmsplice系统调用漏洞分析"/></a>
<h3><span style="color: #008000;"><strong>2008期末课程小论文</strong> 之一 </span></h3>
<h3><span style="color: #008000;">《linux使普通用户获得root权限的vmsplice系统调用漏洞分析》</span></h3>
<p><span style="color: #000000;">vmsplice系统调用是linux内核2.6.17第一次引入的，随后被发现存在能让普通用户提升到root权限的漏洞。</span><span style="color: #000000;">该漏洞影响的版本网络上笼统的说法是：2.6.17-2.6.24.1，实际上更确切的说是：2.6.17-</span> 2.6.22.17，2.6.23-2.6.23.15 和 2.6.24-2.6.24.1.</p>
<p><span style="color: #000000;">关于这个漏洞，国内很少有人写过什么原创性的文章进行介绍，因为上研究生操作系统课的课程报告就是做这个，所以把它放上来。漏洞虽然已经补上，但学习其机理，还是比较有好处，有意思的。<br />
</span></p>
<h2>一、预备知识</h2>
<h3>1. 本文的一些约定</h3>
<p style="padding-left: 30px;"><span style="color: #0000ff;">这个颜色的代码来自攻击程序</span><br />
<span style="color: #808000;">这个颜色的代码来自内核</span><br />
<span style="color: #ff0000;">这个颜色表示重要的地方，或者安装程序逻辑，下一步要进入的函数</span><br />
所提到的攻击代码是本文附带的exp.c</p>
<h3>2. vmsplice()介绍</h3>
<p>原型：long vmsplice(int fd, const struct iovec *iov, unsigned long nr_segs, unsigned int flags);<br />
其中：</p>
<blockquote><p><span style="color: #808000;">struct iovec<br />
{<br />
void __user *iov_base;<br />
__kernel_size_t iov_len;<br />
};</span></p></blockquote>
<p>这个系统调用将用户空间的内存映射到内核空间，从而避免了实际的内存写操作，提高了系统效率。这个功能的是主要是通过fs/splice.c的do_vmsplice()来实现。</p>
<h3>3. 有关Page的常量</h3>
<blockquote><p><span style="color: #808000;">#define PAGE_SHIFT	12<br />
#define PAGE_SIZE	(1UL &lt;&lt; PAGE_SHIFT)<br />
/*1UL：32位的unsigned int 1，左移12位，PAGE_SIZE=0&#215;1000*/<br />
#define PAGE_MASK	(~(PAGE_SIZE-1))<br />
/*PAGE_MASK=0&#215;000*/</span></p></blockquote>
<h2>二、Splice系统调用漏洞考古</h2>
<p><strong>2006 Jun 18</strong><br />
在发布的Linux kernel 2.6.17中引入vmsplice()，用于提高性能。<br />
没有人知道，对应的fs/splice.c中的get_iovec_page_array()函数存在漏洞。<br />
<!--inline-more--><br />
<strong>2007 Oct 09</strong><br />
在发布的Linux kernel 2.6.23 中<br />
加入了vmsplice_to_user()函数和copy_from_user_mmap_sem()函数,也存在同样的漏洞。</p>
<p><strong>2007 Dec 03</strong><br />
ID为CVE-2008-0009和CVE-2008-0010的漏洞报告被提交到CVE。<br />
分别指出vmsplice_to_user()和copy_from_user_mmap_sem()存在这个漏洞。<br />
但这两份报告有个错误：这两个漏洞存在于2.6.23-2.6.24而不是报告里说的2.6.22-2.6.24,因为这两个函数是在2.6.23里正式被加进来的。</p>
<p><strong>2008 Feb 05</strong><br />
ID为CVE-2008-0600的漏洞报告被提交到CVE<br />
指出:</p>
<p style="padding-left: 30px;">The vmsplice_to_pipe function in Linux kernel 2.6.17 through 2.6.24.1 does not validate a certain userspace pointer before dereference, which allows local users to gain root privileges via crafted arguments in a vmsplice system call, a different vulnerability than CVE-2008-0009 and CVE-2008-0010.</p>
<p>事实上，问题出在get_iovec_page_array()函数。但因为get_iovec_page_array()函数只被vmsplice_to_pipe()调用，数据参数都来自vmsplice_to_pipe()，所以，get_iovec_page_array()没有验证用户数据的合法性也可以被认为vmsplice_to_pipe()没有验证用户数据的合法性。</p>
<p><strong>2008 Feb 08</strong><br />
在发布的Linux kernel 2.6.24.1和2.6.23.15补丁中补上了CVE-2008-0009和CVE-2008-0010提到这个这两个漏洞。</p>
<p><strong>2008 Feb 09</strong><br />
ID为qaaz的Geek在milw0rm上公布了两个对应的POC代码，第一个是针对vmsplice_to_user()函数和copy_from_user_mmap_sem()函数的，另外一个是针对get_iovec_page_array()函数，</p>
<p><img class="aligncenter" title="linux" src="http://lh5.ggpht.com/_8kd-QOlHLBY/SVJc4Uc57JI/AAAAAAAAC-I/r4v1p0DpzZU/s800/qaaz.jpg" alt="" width="689" height="54" /></p>
<p><strong>2008 Feb 11</strong><br />
在发布的Linux kernel 2.6.24.2 、2.6.23.16和 2.6.22.18补丁中补上了get_iovec_page_array()函数的漏洞。</p>
<h2>三、漏洞攻击效果</h2>
<p style="text-align: center;"><img class="aligncenter" title="linux" src="http://lh4.ggpht.com/_8kd-QOlHLBY/SVJdjnqnWmI/AAAAAAAAC-U/rSw40MqDeoE/s800/2.6.19.1.jpg" alt="" width="654" height="359" />攻击成功</p>
<p style="text-align: center;"><img class="aligncenter" title="linux" src="http://lh6.ggpht.com/_8kd-QOlHLBY/SVJdmAVTIdI/AAAAAAAAC-c/qj5og1SNZds/s800/2.6.24.2.jpg" alt="" width="590" height="375" />打了补丁的2.6.24.2就攻击不成功了</p>
<h2>四、漏洞攻击真实案例</h2>
<p>This bug is being actively exploited in the wild &#8212; our server was just broken in to by an attacker using it. (They got a user&#8217;s password by previously compromising a machine somewhere else where that user had an account, and installed a modified ssh binary on it to record user names and passwords. Then they logged in to our site as that user, exploited CVE-2008-0010, and became root).</p>
<h2>五、the vmsplice() exploit story</h2>
<h3>1. 整个过程可以概括为下图：</h3>
<p>Online view: http://share.xmind.net/shidelai/vmsplice-loopholes-in-the-success-of-the-attack-1/</p>
<h3>2. 攻击程序做了如下六件事情</h3>
<p><strong>1)</strong>定义 kernel_code()<br />
这个函数会修改当前用户的udi和gid，所有者一切的目的就是让内核执行这个函数。</p>
<p><strong>2)</strong>定义了pages[5]，其中：</p>
<blockquote><p><span style="color: #0000ff;">proc_pages[0]-&gt;flags    = 1 &lt;&lt; PG_compound;<br />
proc_pages[0]-&gt;private  = (unsigned long) proc_pages[0];<br />
proc_pages[0]-&gt;count    = 1;</span></p></blockquote>
<p>这是为了把这个proc_page伪装成compound page，保证内核执行到/mm/Swap.c的</p>
<blockquote><p><span style="color: #808000;">void put_page(struct page *page)<br />
{<br />
if (unlikely(PageCompound(page)))<br />
put_compound_page(page);<br />
else if (put_page_testzero(page))<br />
__page_cache_release(page);<br />
}</span></p></blockquote>
<p>时候，内核进入put_compound_page(page);</p>
<blockquote><p><span style="color: #0000ff;">proc_pages[1]-&gt;lru.next = (long) kernel_code;</span></p></blockquote>
<p>内核执行到/mm/Swap.c的</p>
<blockquote><p><span style="color: #808000;">static void put_compound_page(struct page *page)<br />
{<br />
&#8230;.<br />
dtor = get_compound_page_dtor(page);<br />
(*dtor)(page);<br />
}</span></p></blockquote>
<p>的时候，get_compound_page_dtor会返回proc_pages[1]-&gt;lru.next。这样，kernel_code()就被内核执行了。</p>
<p><strong>3)</strong>将proc_pages[0] mmap到0&#215;0 address<br />
到时候内核被骗执行0地址第二个page的lru.next指向的函数时候，实际上执行的就是这里定义的proc_pages[1]-&gt;lru.next所指向的kernel_code()。</p>
<p><strong>4)</strong>close(pi[0]); close pipe_read，当内核执行到/fs/Splice.c的splice_to_pipe()</p>
<blockquote><p><span style="color: #808000;">for (;;) {<br />
if (!pipe-&gt;readers) {<br />
send_sig(SIGPIPE, current, 0);<br />
if (!ret)<br />
ret = -EPIPE;<br />
break;<br />
}<br />
&#8230;<br />
}<br />
&#8230;<br />
while (page_nr &lt; spd_pages)<br />
page_cache_release(spd-&gt;pages[page_nr++]);</span></p></blockquote>
<p>时候，if判断会返回真，于是跳出for循环，于是导致page_cache_release(spd-&gt;pages[page_nr++]);被执行。</p>
<p><strong>5)</strong>iov.iov_len  = ULONG_MAX;<br />
iov.iov_len等于32个1。这个是关键，它保证了内核中数值溢出，结果将内核骗到攻击程序设定的page上来。</p>
<p><strong>6)</strong>_vmsplice(pi[1], &amp;iov, 1, 0);<br />
执行vmsplice系统调用。</p>
<h3>3. 内核代码执行细节</h3>
<p><strong>1)</strong>执行_vmsplice(pi[1], &amp;iov, 1, 0);后，/fs/Splice.c中的</p>
<blockquote><p><span style="color: #808000;">long <strong><span style="color: #ff0000;">sys_vmsplice</span></strong>(int fd, const struct iovec __user *<span style="color: #00ff00;">iov</span>, unsigned long nr_segs, unsigned int flags)<br />
{<br />
&#8230;<br />
if (file-&gt;f_mode &amp; FMODE_WRITE)//往管道写<br />
error = <strong><span style="color: #ff0000;">vmsplice_to_pipe</span></strong>(file,<span style="color: #00ff00;"> iov</span>, nr_segs, flags);<br />
&#8230;<br />
}</span></p></blockquote>
<p>被调用。<br />
2)接着内核进入/fs/Splice.c中的</p>
<blockquote><p><span style="color: #808000;">static long <span style="color: #ff0000;"><strong>vmsplice_to_pipe</strong></span>(struct file *file, const struct iovec __user *<span style="color: #00ff00;">iov</span>,<br />
unsigned long nr_segs, unsigned int flags)<br />
{<br />
struct pipe_inode_info *pipe;<br />
<span style="color: #ff0000;">struct page *pages[PIPE_BUFFERS];   //请注意这里<br />
struct partial_page partial[PIPE_BUFFERS]; //#define PIPE_BUFFERS (16) //请注意这里<br />
struct splice_pipe_desc spd = {//请注意这里</span><br />
.pages = pages,<br />
.partial = partial,<br />
.flags = flags,<br />
.ops = &amp;user_page_pipe_buf_ops,<br />
};<br />
&#8230;<br />
spd.nr_pages = <span style="color: #ff0000;"><strong>get_iovec_page_array</strong></span><span style="color: #00ff00;">(iov</span>, nr_segs, pages, partial,<br />
flags &amp; SPLICE_F_GIFT);<br />
&#8230;<br />
return splice_to_pipe(pipe, &amp;spd);<br />
}</span></p></blockquote>
<p>3)接着内核进入/fs/Splice.c中的</p>
<blockquote><p><span style="color: #808000;">static int <span style="color: #ff0000;"><strong>get_iovec_page_array</strong></span>(const struct iovec __user *<span style="color: #00ff00;">iov</span>,<br />
unsigned int nr_vecs, struct page **pages,<br />
struct partial_page *partial, int aligned)<br />
{<br />
&#8230;&#8230;</span></p>
<p><span style="color: #808000;">if (copy_from_user_mmap_sem(&amp;entry, <span style="color: #00ff00;">iov</span>, sizeof(entry))) //entry = iov<br />
break;<br />
base = entry.iov_base;//内核缓冲区基地址<br />
len = entry.iov_len;//长度<br />
&#8230;&#8230;<br />
npages = (off + len + PAGE_SIZE &#8211; 1) &gt;&gt; PAGE_SHIFT;<br />
// npages = （0+ 32个1 + 1后面12个0 &#8211; 1 ）&gt;&gt; PAGE_SHIFT = （32个1 + 1 -1 + 1后面12个0 &#8211; 1）&gt;&gt; PAGE_SHIFT =0<br />
if (npages &gt; PIPE_BUFFERS &#8211; buffers)<br />
npages = PIPE_BUFFERS &#8211; buffers;<br />
error = <strong><span style="color: #ff0000;">get_user_pages</span></strong>(current, current-&gt;mm,<br />
(unsigned long) base, npages, 0, 0,<br />
&amp;pages[buffers], NULL);<br />
&#8230;&#8230;<br />
}</span></p></blockquote>
<p>4) 于是内核进入/mm/Memory.c中的</p>
<blockquote><p><span style="color: #808000;">int <span style="color: #ff0000;"><strong>get_user_pages</strong></span>(struct task_struct *tsk, struct mm_struct *mm,<br />
unsigned long start, int len, int write, int force,<br />
struct page **pages, struct vm_area_struct **vmas)<br />
{<br />
&#8230;&#8230;<br />
do {<br />
&#8230;&#8230;<br />
i++;<br />
start += PAGE_SIZE;<br />
len&#8211;;<br />
continue;<br />
}<br />
do {<br />
&#8230;&#8230;<br />
i++;<br />
start += PAGE_SIZE;<br />
len&#8211;;<br />
} while (len &amp;&amp; start &lt; vma-&gt;vm_end);<br />
} while (len);<br />
return i;<br />
}</span></p></blockquote>
<p><span style="color: #000000;">len这里已经是int型了，而不是ulong int，len从0被减到-32768(0xf0000000)再减1变成+32767(0x7fffffff)，最终返回i=46。</span></p>
<p>5) 然后i返回给/fs/Splice.c中的</p>
<blockquote><p><span style="color: #808000;">static int <span style="color: #ff0000;"><strong>get_iovec_page_array</strong></span>(const struct iovec __user *iov,<br />
unsigned int nr_vecs, struct page **pages,<br />
struct partial_page *partial, int aligned)<br />
{<br />
&#8230;&#8230;<br />
error = get_user_pages(current, current-&gt;mm,<br />
(unsigned long) base, npages, 0, 0,<br />
&amp;pages[buffers], NULL);<br />
//error = 46<br />
&#8230;&#8230;<br />
for (i = 0; i &lt; error; i++) {<br />
const int plen = min_t(size_t, len, PAGE_SIZE &#8211; off);<br />
partial[buffers].offset = off;<br />
partial[buffers].len = plen;<br />
off = 0;<br />
len -= plen;<br />
buffers++;<br />
}<br />
&#8230;&#8230;<br />
}</span></p></blockquote>
<p>在这个for循环中，partial[]数组大小是16，而循环确循环了46次，所以，溢出了。比partial先定义的pages[]指针数组被0覆盖。</p>
<p>6) 接着，函数返回到/fs/Splice.c的</p>
<blockquote><p><span style="color: #808000;">static long <span style="color: #ff0000;"><strong>vmsplice_to_pipe</strong></span>(struct file *file, const struct iovec __user *iov,<br />
unsigned long nr_segs, unsigned int flags)<br />
{<br />
&#8230;&#8230;<br />
spd.nr_pages = get_iovec_page_array(iov, nr_segs, pages, partial,<br />
flags &amp; SPLICE_F_GIFT);<br />
&#8230;&#8230;<br />
return <span style="color: #ff0000;"><strong>splice_to_pipe</strong></span>(pipe, &amp;spd);<br />
}</span></p></blockquote>
<p>7) 进入/fs/Splice.c的</p>
<blockquote><p><span style="color: #808000;">ssize_t <span style="color: #ff0000;"><strong>splice_to_pipe</strong></span>(struct pipe_inode_info *pipe,<br />
struct splice_pipe_desc *spd)<br />
{<br />
&#8230;&#8230;<br />
for (;;) {<br />
if (!pipe-&gt;readers) {<br />
send_sig(SIGPIPE, current, 0);<br />
if (!ret)<br />
ret = -EPIPE;<br />
break;<br />
}<br />
&#8230;&#8230;.<br />
}<br />
&#8230;&#8230;<br />
while (page_nr &lt; spd_pages)<br />
<span style="color: #ff0000;"><strong>page_cache_release</strong></span>(spd-&gt;pages[page_nr++]);<br />
return ret;<br />
}</span></p></blockquote>
<p>因为之前提到的pipe的读已经被关掉了，所以从for循环跳出。内核执行进入page_cache_release(spd-&gt;pages[page_nr++]);<br />
请注意：这里的spd-&gt;pages就是之前被溢出被0覆盖的pages[]指针数组。</p>
<p>8)由于</p>
<blockquote><p><span style="color: #808000;">#define page_cache_release(page)<strong><span style="color: #ff0000;"> put_page(page)</span></strong></span></p></blockquote>
<p>9) 于是进入了/mm/Swap.c中的</p>
<blockquote><p><span style="color: #808000;">void <span style="color: #ff0000;"><strong>put_page</strong></span>(struct page *page)<br />
{<br />
if (unlikely(PageCompound(page)))<br />
<span style="color: #ff0000;"><strong>put_compound_page</strong></span>(page);<br />
else if (put_page_testzero(page))<br />
__page_cache_release(page);<br />
}<br />
</span></p></blockquote>
<p>由于之前提到的，攻击程序已经将其已经被mmap到0地址空间的proc_pages[]伪装成compound page，所以，这里if判断后</p>
<p>10)内核进入同在/mm/Swap.c 的</p>
<blockquote><p><span style="color: #808000;">static void <span style="color: #ff0000;"><strong>put_compound_page</strong></span>(struct page *page)<br />
{<br />
page = compound_head(page);<br />
if (put_page_testzero(page)) {<br />
compound_page_dtor *dtor;<br />
dtor = <span style="color: #ff0000;"><strong>get_compound_page_dtor</strong></span>(page);<br />
(*dtor)(page);<br />
}<br />
}</span></p></blockquote>
<p>11)再进入/include/linux/Mm.h中的</p>
<blockquote><p><span style="color: #808000;">static inline compound_page_dtor *get_compound_page_dtor(struct page *page)<br />
{<br />
<strong>return (compound_page_dtor *)page[1].lru.next;</strong><br />
}</span></p></blockquote>
<p>OK，到此，proc_pages[1].lru.next所指向的函数指针也即kernel_code()函数指针返回给dtor，随后(*dtor)(page);执行了这个函数，于是，攻击成功。</p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/two-linux-documentary.html" title="两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》 (2008-02-11)">两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》</a> (3)</li>
	<li><a href="http://blog.shidelai.cn/2008/10/export-sh-source.html" title="Shell中的export &#038; sh &#038; source (2008-10-27)">Shell中的export &#038; sh &#038; source</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html" title="linux界面优化，实现3D桌面，苹果主题。 (2008-02-22)">linux界面优化，实现3D桌面，苹果主题。</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/12/linux-vmsplice.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shell中的export &amp; sh &amp; source</title>
		<link>http://blog.shidelai.cn/2008/10/export-sh-source.html</link>
		<comments>http://blog.shidelai.cn/2008/10/export-sh-source.html#comments</comments>
		<pubDate>Mon, 27 Oct 2008 15:31:45 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[sh]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[总结]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=509</guid>
		<description><![CDATA[今天做了几个实验总算把export+变量的用法给弄清楚了，过程不说，留下结果以备忘：

1. 在一个shell中（脚本）执行export+变量 的作用就是把该变量变成其父shell的变量，当执行该语句的shell或... ]]></description>
			<content:encoded><![CDATA[<p>今天做了几个实验总算把export+变量的用法给弄清楚了，过程不说，留下结果以备忘：</p>
<p>1. 当进程创建一个字进程时候，父进程并不会将普通变量的值传递给它的子进程。</p>
<p>而export就是解决这个问题用的。在父进程中export A 后，在子进程中就可以使用变量A了。</p>
<p>2. sh+脚本：重新建立一个子<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>执行脚本里面的语句，该子<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>继承父<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>的变量，但子<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>新建的、改变的变量不会被带回父<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>，除非使用export。</p>
<p>可以这么理解：打开一个终端程序 = sh = 执行bash命令</p>
<p>3. source+脚本：这个命令其实只是简单地读取脚本里面的语句依次在当前<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>里面执行，没有建立新的子<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>。那么脚本里面所有新建、改变变量的语句都会保存在当前<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>里面。</p>
<p>所以，假设one.sh里面的内容是：export test=123 ；two.sh里面的内容是：test=123 。</p>
<p>那么，sh ./one.sh 在效果上等同于 source two.sh</p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/04/example-asterisk-wildcard.html" title="7个例子快速入门shell通配符 (2008-04-8)">7个例子快速入门shell通配符</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/example-shell-chmod.html" title="通过例子学shell文件访问权限管理 (2008-02-10)">通过例子学shell文件访问权限管理</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/04/chinese-english-man.html" title="同时使用中文和英文man(shell帮助) (2008-04-11)">同时使用中文和英文man(shell帮助)</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/10/export-sh-source.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7个例子快速入门shell通配符</title>
		<link>http://blog.shidelai.cn/2008/04/example-asterisk-wildcard.html</link>
		<comments>http://blog.shidelai.cn/2008/04/example-asterisk-wildcard.html#comments</comments>
		<pubDate>Mon, 07 Apr 2008 20:00:00 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[例子]]></category>
		<category><![CDATA[计算机]]></category>
		<category><![CDATA[通配符]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=114</guid>
		<description><![CDATA[＊ 代表0个或多个字符 ？ 代表一个字符 例子1： ls 11＊2？3      显示11开头的接着是若干个字符，最后是2加一个字符和3结束的文件 [] 可以理解为一个字符，与？的区别是[]里面的内容限定了... ]]></description>
			<content:encoded><![CDATA[<p><span style="color: #3366ff;">＊</span><br />
代表0个或多个字符<br />
？<br />
代表一个字符<br />
例子1：<br />
ls 11＊2？3      显示11开头的接着是若干个字符，最后是2加一个字符和3结束的文件</p>
<p><span style="color: #0000ff;">[]</span><br />
可以理解为一个字符，与？的区别是[]里面的内容限定了这个字符的范围<br />
例子2：<br />
[Cc]hange[Ll]og<br />
将与 Changelog、ChangeLog、changeLog 以及 changelog 匹配。在需要大小写匹配的时候，使用括弧通配符很有用。<br />
例子3：<br />
ls /etc/[0-9]* 将列出 /etc 中以数字开头的所有文件。<br />
ls /tmp/[A-Za-z]* 将列出 /tmp 中以大写字母或小写字母开头的所有文件。<br />
<!--inline-more--><br />
<span style="color: #0000ff;">[!]</span><br />
例子4：<br />
rm myfile[!9] 将删除除myfile9 之外的名为 myfile 加一个字符的所有文件。</p>
<p><span style="color: #0000ff;">‘’</span>单引号<br />
例子5：<br />
echo &#8216;[fo]*&#8217; &gt; newfile.txt  创建了包含字符串[fo]*的文件。<br />
如果echo [fo]* &gt; newfile.txt 则 newfile.txt 里面不会有任何东西<br />
例子6：<br />
如果用户目录下有12* 12333这么两个文件，那么<br />
rm 12* 会删除12＊ 和 12333<br />
rm ‘12＊’ 则只会删除12＊<br />
总结：用引号引起来则说明引号里面的是纯字符串无须进行通配符的相关处理</p>
<p><span style="color: #0000ff;">\</span><br />
功能与单引号类似，<br />
例子7：<br />
rm 12\＊ 则只会删除12＊，这里\代表起后面的字符是纯字符没有其他意思，这与C 语言里面的转义字符类似的。很自然的，如果要表示字符\，你必须使用\\。</p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/02/example-shell-chmod.html" title="通过例子学shell文件访问权限管理 (2008-02-10)">通过例子学shell文件访问权限管理</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/10/export-sh-source.html" title="Shell中的export &#038; sh &#038; source (2008-10-27)">Shell中的export &#038; sh &#038; source</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/03/zju-retrial-over.html" title="复试结束 (2008-03-28)">复试结束</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/04/example-asterisk-wildcard.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>设置SCIM输入法默认输入状态为英文</title>
		<link>http://blog.shidelai.cn/2008/03/scim-default-english.html</link>
		<comments>http://blog.shidelai.cn/2008/03/scim-default-english.html#comments</comments>
		<pubDate>Mon, 03 Mar 2008 12:04:00 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[scim]]></category>
		<category><![CDATA[中文]]></category>
		<category><![CDATA[输入法]]></category>
		<category><![CDATA[默认]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=130</guid>
		<description><![CDATA[默认是一打开就是中文的,大多时候是需要输入英文的,需要按shift很麻烦.可以修改. sudo ~/.scim/config 找到/FrontEnd/IMOpenedByDefault = true 改成false 重新加载设置一下就OK了. [相关文章] 最基础的Ubuntu文... ]]></description>
			<content:encoded><![CDATA[<p>默认是一打开就是中文的,大多时候是需要输入英文的,需要按shift很麻烦.可以修改.<br />
sudo ~/.scim/config<br />
找到/FrontEnd/IMOpenedByDefault = true 改成false<br />
重新加载设置一下就OK了.</p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/04/chinese-english-man.html" title="同时使用中文和英文man(shell帮助) (2008-04-11)">同时使用中文和英文man(shell帮助)</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/two-linux-documentary.html" title="两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》 (2008-02-11)">两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》</a> (3)</li>
	<li><a href="http://blog.shidelai.cn/2008/10/export-sh-source.html" title="Shell中的export &#038; sh &#038; source (2008-10-27)">Shell中的export &#038; sh &#038; source</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html" title="linux界面优化，实现3D桌面，苹果主题。 (2008-02-22)">linux界面优化，实现3D桌面，苹果主题。</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/03/scim-default-english.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux界面优化，实现3D桌面，苹果主题。</title>
		<link>http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html</link>
		<comments>http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html#comments</comments>
		<pubDate>Thu, 21 Feb 2008 21:04:00 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[未分类日志]]></category>
		<category><![CDATA[3D桌面]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[界面优化]]></category>
		<category><![CDATA[苹果]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=134</guid>
		<description><![CDATA[http://www.mobile01.com/newsdetail.php?id=4006 台湾某人已经写得非常好了。 另，推荐使用这个主题：http://compiz-themes.org/CONTENT/content-files/26050-Blendedx4.tar.bz2 下载后，右击桌面选最后一项[chang&#8230;..］在App... ]]></description>
			<content:encoded><![CDATA[<p>http://www.mobile01.com/newsdetail.php?id=4006</p>
<p>台湾某人已经写得非常好了。</p>
<p>另，推荐使用这个主题：http://compiz-themes.org/CONTENT/content-files/26050-Blendedx4.tar.bz2<br />
下载后，右击桌面选最后一项[chang&#8230;..］在Appearance Preferences里面点install安装，选择刚才下载的这个东西就OK 了，无须解压。</p>
<p>最终效果：<br />
<!--inline-more--><br />
<img src="http://lh6.ggpht.com/wispernano/SCFMFzKNxvI/AAAAAAAAA2U/iZOk-1kkwIw/s800/img.blog.163.com_photo_DHitG4Rlq1wUWfju3MV2qw%3D%3D_5372512880476896918.jpg" alt="" /></p>
<p><img src="http://lh5.ggpht.com/wispernano/SCFMGjKNxwI/AAAAAAAAA2c/NJd_9X7u-WM/s800/img.blog.163.com_photo_eb4duvs-MWOCLJUuBvbKIg%3D%3D_5372512880476896916.jpg" alt="" /></p>
<p><img src="http://lh4.ggpht.com/wispernano/SCFMHTKNxxI/AAAAAAAAA2k/Wd7RRWHHR7Y/s800/img.blog.163.com_photo_fhFuKicgqc0_FI6tRblaqg%3D%3D_5372512880476896917.jpg" alt="" /></p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2007/12/five-hit-movie.html" title="我眼中的年底五部大片 (2007-12-28)">我眼中的年底五部大片</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/04/ubuntu-version-wildlife.html" title="从ubuntu发行版代号到野生动物保护 (2008-04-3)">从ubuntu发行版代号到野生动物保护</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/two-linux-documentary.html" title="两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》 (2008-02-11)">两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》</a> (3)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux常见配置文件&amp;常见服务对照表</title>
		<link>http://blog.shidelai.cn/2008/02/linux-configuration-service-files.html</link>
		<comments>http://blog.shidelai.cn/2008/02/linux-configuration-service-files.html#comments</comments>
		<pubDate>Sat, 16 Feb 2008 23:01:00 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[配置文件]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=138</guid>
		<description><![CDATA[全局配置文件 &#8212;&#8212;&#8212;&#8212; 系统初始化 /etc/inittab 运行级别、控制台数量 /etc/timezone 时区 /etc/inetd.conf 超级进程 文件系统 /etc/fstab 开机时挂载的文件系统 /etc/mtab 当前挂载的文件系统 用... ]]></description>
			<content:encoded><![CDATA[<p>全局配置文件<br />
&#8212;&#8212;&#8212;&#8212;<br />
系统初始化<br />
/etc/inittab      运行级别、控制台数量<br />
/etc/timezone      时区<br />
/etc/inetd.conf    超级进程<br />
文件系统<br />
/etc/fstab        开机时挂载的文件系统<br />
/etc/mtab         当前挂载的文件系统<br />
用户系统<br />
/etc/passwd       用户信息<br />
/etc/shadow       用户密码<br />
/etc/group        群组信息<br />
/etc/gshadow      群组密码<br />
/etc/sudoers      Sudoer列表<br />
<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">Shell</a><br />
/etc/<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">shell</a>        可用<a href="http://blog.shidelai.cn/tag/shell" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with shell">Shell</a>列表<!--inline-more--><br />
/etc/inputrc      ReadLine控件设定<br />
/etc/profile      用户首选项<br />
/etc/bash.bashrc     bash配置文件<br />
系统环境<br />
/etc/environment     环境变量<br />
/etc/updatedb.conf  文件检索数据库配置信息<br />
/etc/issue        发行信息<br />
/etc/issue.net<br />
/etc/screenrc      屏幕设定<br />
网络<br />
/etc/iftab        网卡MAC地址绑定<br />
/etc/hosts        主机列表<br />
/etc/hostname      主机名<br />
/etc/resolv.conf    域名解析服务器地址<br />
/etc/network/interfaces  网卡配置文件</p>
<p>用户配置文件<br />
&#8212;&#8212;&#8212;&#8212;<br />
“/etc/”目录下的所有文件，只有root用户才有修改权限。应用软件的全局配置文件，普通用户也不能够修改，如果您想配置软件，以适应您的需求，您可以修改它的用户配置文件。</p>
<p>用户配置文件通常为全局配置文件的同名隐藏文件，放在您的$HOME目录下，例如：<br />
/etc/inputrc    /home/user/.inputrc<br />
/etc/vim/vimrc    /home/user/.vim/vimrc<br />
也有少数例外，通常是系统程序<br />
/etc/bash.bashrc  /home/user/.bashrc</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;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>acpi-support  高级电源管理支持<br />
acpid      acpi守护程序.这两个用于电源管理，非常重要<br />
alsa     声音子系统<br />
alsa-utils<br />
anacron     cron的子系统，将系统关闭期间的计划任务，在下一次系统运行时执行。<br />
apmd     acpi的扩展<br />
atd     类似于cron的任务调度系统。建议关闭<br />
binfmt-support  核心支持其他二进制的文件格式。建议开启<br />
bluez-utiles   蓝牙设备支持<br />
bootlogd   启动日志。开启它<br />
cron     任务调度系统，建议开启<br />
cupsys     打印机子系统。<br />
dbus     消息总线系统(message bus system)。非常重要<br />
dns-clean  使用拨号连接时，清除dns信息。<br />
evms     企业卷管理系统（Enterprise Volumn Management system）<br />
fetchmail  邮件用户代理，用于收取邮件<br />
gdm     gnome登录和桌面管理器。<br />
gdomap<br />
gpm     终端中的鼠标支持。<br />
halt     别动它。<br />
hdparm     调整硬盘的脚本，配置文件为“/etc/hdparm.conf”。<br />
hibernate   系统休眠<br />
hotkey-setup  笔记本功能键支持。支持类型包括： HP, Acer, ASUS, Sony, Dell,和IBM。<br />
hotplug andhotplug-net  即插即用支持，比较复杂，建议不要动它。<br />
hplip         HP打印机和图形子系统<br />
ifrename  网络接口重命名脚本。如果您有十块网卡，您应该开启它<br />
inetd     在文件“/etc/inetd.conf”中，注释掉所有你不需要的服务。如果该文件不包含任何服务，那关闭它是很安全的。<br />
klogd     重要。<br />
linux-restricted-modules-common  受限模块支持。“/lib/linux-restricted-modules/”文件夹中的模块为受限模块。<br />
例如某些驱动程序，如果您没有使用受限模块，就不需要开启它。<br />
lvm     逻辑卷管理系统支持。<br />
makedev     创建设备文件，非常重要。<br />
mdamd     磁盘阵列<br />
module-init-tools  从/etc/modules加载扩展模块，建议开启。<br />
networking  网络支持。按“/etc/network/interfaces”文件预设激活网络，非常重要。<br />
ntpdate     时间同步服务，建议关闭。<br />
pcmcia     pcmcia设备支持。<br />
powernowd   移动CPU节能支持<br />
ppp andppp-dns   拨号连接<br />
readahead   预加载库文件。<br />
reboot     别动它。<br />
resolvconf   自动配置DNS<br />
rmnologin   清除nologin<br />
rsync     rsync守护程序<br />
sendsigs  在重启和关机期间发送信号<br />
single     激活单用户模式<br />
ssh     ssh守护程序。建议开启<br />
stop-bootlogd  在2，3，4，5运行级别中停止bootlogd服务<br />
sudo     检查sudo状态。重要<br />
sysklogd   系统日志<br />
udev &amp; udev-mab用户空间dev文件系统（userspace dev filesystem）。重要<br />
umountfs   卸载文件系统<br />
urandom     随机数生成器<br />
usplash     开机画面支持<br />
vbesave     显卡BIOS配置工具。保存显卡的状态<br />
xorg-common   设置X服务ICEsocket。<br />
adjtimex  调整核心时钟的工具<br />
dirmngr     证书列表管理工具,和gnupg一起工作。<br />
hwtools     irqs优化工具<br />
libpam-devperm  系统崩溃之后，用于修理设备文件许可的守护程序。<br />
lm-sensors   板载传感器支持<br />
mdadm-raid   磁盘陈列管理器<br />
screen-cleanup  清除开机屏幕的脚本<br />
xinetd     管理其他守护进程的一个inetd超级守护程序</p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/two-linux-documentary.html" title="两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》 (2008-02-11)">两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》</a> (3)</li>
	<li><a href="http://blog.shidelai.cn/2008/10/export-sh-source.html" title="Shell中的export &#038; sh &#038; source (2008-10-27)">Shell中的export &#038; sh &#038; source</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html" title="linux界面优化，实现3D桌面，苹果主题。 (2008-02-22)">linux界面优化，实现3D桌面，苹果主题。</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/02/linux-configuration-service-files.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》</title>
		<link>http://blog.shidelai.cn/2008/02/two-linux-documentary.html</link>
		<comments>http://blog.shidelai.cn/2008/02/two-linux-documentary.html#comments</comments>
		<pubDate>Sun, 10 Feb 2008 23:05:00 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[Revolution.OS]]></category>
		<category><![CDATA[The Code Linux]]></category>
		<category><![CDATA[纪录片]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=143</guid>
		<description><![CDATA[这里可以下载。 http://www.tooooold.com/ftp_sou_suo/Revolution.OS.html http://www.tooooold.com/ftpsearch.cgi?cmd=ftpsearch&#38;q=The+Code+Linux 速度很快! 这里也可以下载。 http://lib.verycd.com/2005/08/16/0000061272.html [相关文章] ... ]]></description>
			<content:encoded><![CDATA[<p>这里可以下载。<br />
<a href="http://www.tooooold.com/ftp_sou_suo/Revolution.OS.html" target="_blank">http://www.tooooold.com/ftp_sou_suo/Revolution.OS.html</a><br />
<a href="http://www.tooooold.com/ftpsearch.cgi?cmd=ftpsearch&amp;q=The+Code+Linux" target="_blank">http://www.tooooold.com/ftpsearch.cgi?cmd=ftpsearch&amp;q=The+Code+Linux</a></p>
<p>速度很快!<br />
这里也可以下载。<br />
<a href="http://lib.verycd.com/2005/08/16/0000061272.html" target="_blank">http://lib.verycd.com/2005/08/16/0000061272.html</a></p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/linux-basic.html" title="最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结 (2008-02-3)">最基础的Ubuntu文件移动|复制|打包|解包|挂载iso总结</a> (1)</li>
	<li><a href="http://blog.shidelai.cn/2008/10/export-sh-source.html" title="Shell中的export &#038; sh &#038; source (2008-10-27)">Shell中的export &#038; sh &#038; source</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html" title="linux界面优化，实现3D桌面，苹果主题。 (2008-02-22)">linux界面优化，实现3D桌面，苹果主题。</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/linux-configuration-service-files.html" title="linux常见配置文件&#038;常见服务对照表 (2008-02-17)">linux常见配置文件&#038;常见服务对照表</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/02/two-linux-documentary.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>最基础的Ubuntu文件移动&#124;复制&#124;打包&#124;解包&#124;挂载iso总结</title>
		<link>http://blog.shidelai.cn/2008/02/linux-basic.html</link>
		<comments>http://blog.shidelai.cn/2008/02/linux-basic.html#comments</comments>
		<pubDate>Sun, 03 Feb 2008 00:35:00 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[Linux/GNU]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[复制]]></category>
		<category><![CDATA[打包]]></category>
		<category><![CDATA[挂载iso]]></category>
		<category><![CDATA[移动]]></category>
		<category><![CDATA[解包]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=147</guid>
		<description><![CDATA[文件的移动和复制 由于linux对文件的管理有非常严格的机制,使得不能对当前用户没有权限的文件夹文件进行操作.所以想通过windows那样左键拖到目的文件夹上放开进行复制是不可以的(除非是Home... ]]></description>
			<content:encoded><![CDATA[<p>文件的移动和复制</p>
<p>由于linux对文件的管理有非常严格的机制,使得不能对当前用户没有权限的文件夹文件进行操作.所以想通过windows那样左键拖到目的文件夹上放开进行复制是不可以的(除非是HomeFolder这个相当于windows里面我的文档这个文件夹下面).</p>
<p>我目前所知:复制移动操作3个方法.</p>
<p>1.sudo nautilus 以root身份打开文件管理器</p>
<p>2.sudo cp源文件位置目标文件位置 (移动cp改成mv)</p>
<p>3. 试试鼠标中键拉一个文件去另外一个地方。<br />
<!--inline-more--><br />
有个技巧:敲好sudocp后把要复制的文件或文件夹用左键拉到控制台窗口既可,会自动填写.</p>
<p>文件的打包和解包</p>
<p>解tar包</p>
<p>例：tar -xvzf gaim-0.77.tar.gz</p>
<p>tar-jxvf XXX.tar.bz2</p>
<p>生成tar包</p>
<p>例：tar cvf &#8211; /etc | gzip-9c &gt; backup.tar.gz</p>
<p>生成rar包3</p>
<p>rara test.rar file1.txt</p>
<p>rara test.rar dir1</p>
<p>解rar包</p>
<p>rarx test.rar</p>
<p>解zip 包</p>
<p>unzip lumaqq_p3.zip</p>
<p>挂装一个iso 文件</p>
<p>mout -t iso9660 -o loop,iocharset=cp936 /data/myarc.iso/mnt/iso</p>
<p>除iso文件外，其他各类型压缩包均可以在图形界面下使用“压缩工具”进行管理。卸装iso文件</p>
<p>umout /mnt/iso</p>
<p>生成一个iso 文件</p>
<p>cp/dev/cdrom /home/gsh/TomJerry1.iso</p>

	<b>[相关文章]</b>
	<ul class="st-related-posts">
	<li><a href="http://blog.shidelai.cn/2008/02/3d-desktop-apple-theme.html" title="linux界面优化，实现3D桌面，苹果主题。 (2008-02-22)">linux界面优化，实现3D桌面，苹果主题。</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/03/scim-default-english.html" title="设置SCIM输入法默认输入状态为英文 (2008-03-3)">设置SCIM输入法默认输入状态为英文</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/04/ubuntu-version-wildlife.html" title="从ubuntu发行版代号到野生动物保护 (2008-04-3)">从ubuntu发行版代号到野生动物保护</a> (0)</li>
	<li><a href="http://blog.shidelai.cn/2008/02/two-linux-documentary.html" title="两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》 (2008-02-11)">两部与linux有关的纪录片:《Revolution.OS》 《The Code Linux》</a> (3)</li>
	<li><a href="http://blog.shidelai.cn/2008/10/export-sh-source.html" title="Shell中的export &#038; sh &#038; source (2008-10-27)">Shell中的export &#038; sh &#038; source</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.shidelai.cn/2008/02/linux-basic.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
