<?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>Fwolf's Blog &#187; Linux - Fwolf's Blog</title>
	<atom:link href="http://www.fwolf.com/blog/post/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fwolf.com/blog</link>
	<description>随心·随意·随缘·努力～</description>
	<lastBuildDate>Sun, 29 Aug 2010 14:52:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>安装ibus输入法</title>
		<link>http://www.fwolf.com/blog/post/437</link>
		<comments>http://www.fwolf.com/blog/post/437#comments</comments>
		<pubDate>Sun, 05 Apr 2009 19:08:37 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[chinese]]></category>
		<category><![CDATA[fcitx]]></category>
		<category><![CDATA[ibus]]></category>
		<category><![CDATA[input]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/post/437</guid>
		<description><![CDATA[编译太麻烦，直接从ppa的源安装，把下面这句加入/etc/apt/sources.list： deb http://ppa.launchpad.net/ibus-dev/ppa/ubuntu intrepid main 然后安装就是了，不过ppa的源下载真的好慢啊： $ sudo aptitude install ibus ibus-pinyin 装好以后，修改/etc/X11/Xsession.d/95xinput，把原来fcitx的部分注释掉，换成ibus的： # ibus export GTK_IM_MODULE=&#34;ibus&#34; export XMODIFIERS=&#34;@im=ibus&#34; export QT_IM_MODULE=&#34;ibus&#34; 然后切换系统的默认输入法： $ sudo im-switch -c 最后重启系统，一切ok。 一点感受： 速度比fcitx要慢，但似乎用着反而更舒服了。 没有软键盘，无法输入特殊符号（前提：我用自然码双拼，得切换到全拼下用i开头输入特殊符号，如果有全拼/双拼切换快捷键就好了）。 haha xixi rq xq lb sj bsn 这些很贴心啊，呵呵。 选用目前并不一定比fcitx好用的ibus，主要是看中它更新比较频繁，相信问题会不断得到修复，功能也会不断完善的。使用python开发也能够让更多的热心人介入。 Update @ 2009-04-21 如果在firefox等程序里无法实现光标跟随，可以试试装上ibus-gtk, ibus-qt4包，然后重启X。 Tags: chinese, fcitx, ibus, input, Linux Related posts 发现fcitx也很不错嘛 (6) 配置ssh的自动登录 [...]]]></description>
			<content:encoded><![CDATA[<p>编译太麻烦，直接从<a href="https://launchpad.net/~ibus-dev/+archive/ppa">ppa的源</a>安装，把下面这句加入<code>/etc/apt/sources.list</code>：</p>


<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">	deb http://ppa.launchpad.net/ibus-dev/ppa/ubuntu intrepid main</pre></div></div>


<p>然后安装就是了，不过ppa的源下载真的好慢啊：</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">	$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ibus ibus-pinyin</pre></div></div>


<p>装好以后，修改<code>/etc/X11/Xsession.d/95xinput</code>，把原来fcitx的部分注释掉，换成ibus的：</p>


<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">	# ibus
	export GTK_IM_MODULE<span style="color: #000066; font-weight:bold;">=</span><span style="color: #933;">&quot;ibus&quot;</span>
	export XMODIFIERS<span style="color: #000066; font-weight:bold;">=</span><span style="color: #933;">&quot;@im=ibus&quot;</span>
	export QT_IM_MODULE<span style="color: #000066; font-weight:bold;">=</span><span style="color: #933;">&quot;ibus&quot;</span></pre></div></div>


<p>然后切换系统的默认输入法：</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">	$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> im-switch <span style="color: #660033;">-c</span></pre></div></div>


<p>最后重启系统，一切ok。</p>

<p>一点感受：</p>

<ul>
<li>速度比fcitx要慢，但似乎用着反而更舒服了。</li>
<li>没有软键盘，无法输入特殊符号（前提：我用自然码双拼，得切换到全拼下用i开头输入<a href="http://github.com/phuang/ibus-pinyin/blob/master/engine/special_table">特殊符号</a>，如果有全拼/双拼切换快捷键就好了）。</li>
<li>haha xixi rq xq lb sj bsn 这些很贴心啊，呵呵。</li>
</ul>

<p>选用目前并不一定比fcitx好用的ibus，主要是看中它更新比较频繁，相信问题会不断得到修复，功能也会不断完善的。使用python开发也能够让更多的热心人介入。</p>

<h4>Update @ 2009-04-21</h4>

<p>如果在firefox等程序里无法实现光标跟随，可以试试装上ibus-gtk, ibus-qt4包，然后重启X。</p>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/chinese" title="chinese" rel="tag">chinese</a>, <a href="http://www.fwolf.com/blog/post/tag/fcitx" title="fcitx" rel="tag">fcitx</a>, <a href="http://www.fwolf.com/blog/post/tag/ibus" title="ibus" rel="tag">ibus</a>, <a href="http://www.fwolf.com/blog/post/tag/input" title="input" rel="tag">input</a>, <a href="http://www.fwolf.com/blog/post/tag/linux" title="Linux" rel="tag">Linux</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/338" title="发现fcitx也很不错嘛 (2007-07-08)">发现fcitx也很不错嘛</a> (6)</li>
	<li><a href="http://www.fwolf.com/blog/post/279" title="配置ssh的自动登录 (2007-01-05)">配置ssh的自动登录</a> (13)</li>
	<li><a href="http://www.fwolf.com/blog/post/400" title="选择Eclipse PHP Development Tools(PDT)作为PHP开发工具 (2008-05-03)">选择Eclipse PHP Development Tools(PDT)作为PHP开发工具</a> (8)</li>
	<li><a href="http://www.fwolf.com/blog/post/176" title="让phpmailer支持中文名称的附件 (2006-05-23)">让phpmailer支持中文名称的附件</a> (5)</li>
	<li><a href="http://www.fwolf.com/blog/post/410" title="用ssh打通反向隧道，内网也可对外提供服务 (2008-07-10)">用ssh打通反向隧道，内网也可对外提供服务</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/437/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>VirtualBox的VRDP运行模式</title>
		<link>http://www.fwolf.com/blog/post/425</link>
		<comments>http://www.fwolf.com/blog/post/425#comments</comments>
		<pubDate>Tue, 24 Mar 2009 10:53:02 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[rc]]></category>
		<category><![CDATA[shutdown]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[VRDP]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/post/425</guid>
		<description><![CDATA[其实没什么深奥的，所谓VRDP运行模式，就是虚拟机运行的时候，没有图形窗口，但可以用VirtualBox的RDP模式远程管理，说是远程其实在本机上用很方便，用起来和windows下的远程桌面一样。如果虚拟机上安装了vncserver之类的远程控制软件，并且从主机上能够通过tcp访问，也一样可以管理的。 我使用的是非开源的VirtualBox，开源版本少一些功能。以下操作在windows下也是可以参照使用的。 启动VM的命令：/usr/bin/VBoxManage startvm WinXP -type vrdp，默认是-type gui即以图形界面启动虚拟机。 控制VM比如保存状态关闭的命令：/usr/bin/VBoxManage controlvm WinXP savestate。 以上命令中WinXP是虚拟机的名称，也可以用uuid替代。 开启VRDP后远程控制端口默认是3389，默认认证方式是null，即无认证，任何人都可以连接上随意控制，放在网络环境下是很不安全的。还有一种认证方式是external，可以使用主机上的用户机制来认证，不过使用之前要稍微作一下设置： cd /lib sudo ln -s libpam.so.0 libpam.so 不然认证无法进行，连接闪一下就关闭了。远程桌面的客户端在gnome中可以用Terminal Server Client(tsclient)或者rdesktop-vrdp -u fwolf -p - localhost。 要想随重启或者关机自动关闭虚拟机，要稍微麻烦一些了，首先在/etc/init.d/下创建一个文件fwolfrc： #! /bin/sh # Using LSB funtions: . /lib/lsb/init-functions set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Fwolf's Init" NAME=fwolfrc SCRIPTNAME=/etc/init.d/$NAME # Function that starts the daemon/service. d_start() { touch /var/lock/subsys/$NAME [...]]]></description>
			<content:encoded><![CDATA[<p>其实没什么深奥的，所谓VRDP运行模式，就是虚拟机运行的时候，没有图形窗口，但可以用VirtualBox的RDP模式远程管理，说是远程其实在本机上用很方便，用起来和windows下的远程桌面一样。如果虚拟机上安装了vncserver之类的远程控制软件，并且从主机上能够通过tcp访问，也一样可以管理的。</p>

<p>我使用的是非开源的VirtualBox，开源版本少一些功能。以下操作在windows下也是可以参照使用的。</p>

<p>启动VM的命令：<code>/usr/bin/VBoxManage startvm WinXP -type vrdp</code>，默认是<code>-type gui</code>即以图形界面启动虚拟机。</p>

<p>控制VM比如保存状态关闭的命令：<code>/usr/bin/VBoxManage controlvm WinXP savestate</code>。</p>

<p>以上命令中<code>WinXP</code>是虚拟机的名称，也可以用uuid替代。</p>

<p>开启VRDP后远程控制端口默认是3389，默认认证方式是<code>null</code>，即无认证，任何人都可以连接上随意控制，放在网络环境下是很不安全的。还有一种认证方式是<code>external</code>，可以使用主机上的用户机制来认证，不过使用之前要稍微作一下设置：</p>

<pre><code>cd /lib
sudo ln -s libpam.so.0 libpam.so
</code></pre>

<p>不然认证无法进行，连接闪一下就关闭了。远程桌面的客户端在gnome中可以用<code>Terminal Server Client(tsclient)</code>或者<code>rdesktop-vrdp -u fwolf -p - localhost</code>。</p>

<p>要想随重启或者关机自动关闭虚拟机，要稍微麻烦一些了，首先在<code>/etc/init.d/</code>下创建一个文件<code>fwolfrc</code>：</p>

<pre><code>#! /bin/sh 
# Using LSB funtions:
. /lib/lsb/init-functions
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Fwolf's Init"
NAME=fwolfrc
SCRIPTNAME=/etc/init.d/$NAME

# Function that starts the daemon/service.
d_start() {
    touch /var/lock/subsys/$NAME
    log_daemon_msg "Starting $DESC" "$NAME"
}

# Function that stops the daemon/service.
d_stop() {
    su -c "/usr/bin/VBoxManage controlvm WinXP savestate" fwolf
    rm /var/lock/subsys/$NAME
}

# Function that sends a SIGHUP to the daemon/service.
case "$1" in
  start)
        d_start
    ;;
  stop)
        d_stop
    ;;
  *)
    log_warning_msg "Usage: $SCRIPTNAME {start|stop}" &gt;&amp;2
    exit 3
    ;;
esac

exit 0
</code></pre>

<p>我也是直接从<code>/etc/init.d/</code>里套过来修改的，详细信息可以看参考文章或者其它关于关机自动执行脚本的资料。然后把这个文件ln为以下几个：</p>

<ul>
<li>/etc/rc0.d/K01fwolfrc</li>
<li>/etc/rc6.d/K01fwolfrc</li>
<li>/etc/rc3.d/S99fwolfrc</li>
<li>/etc/rc5.d/S99fwolfrc</li>
</ul>

<p>可以看到开机时是最后执行，而关机时是最先执行。注意我上面的脚本里，在开机是并没有自动启动虚拟机，习惯手工开。</p>

<h4>参考</h4>

<ul>
<li><a href="http://forums.virtualbox.org/viewtopic.php?t=5264">VRDP and PAM authentication</a></li>
<li><a href="http://www.linuxidc.com/Linux/2007-06/4892.htm">实现linux在关机或重启时自动执行某个任务</a></li>
</ul>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/linux" title="Linux" rel="tag">Linux</a>, <a href="http://www.fwolf.com/blog/post/tag/rc" title="rc" rel="tag">rc</a>, <a href="http://www.fwolf.com/blog/post/tag/shutdown" title="shutdown" rel="tag">shutdown</a>, <a href="http://www.fwolf.com/blog/post/tag/virtualbox" title="virtualbox" rel="tag">virtualbox</a>, <a href="http://www.fwolf.com/blog/post/tag/vrdp" title="VRDP" rel="tag">VRDP</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/392" title="virtualbox连接usb设备 (2008-03-27)">virtualbox连接usb设备</a> (0)</li>
	<li><a href="http://www.fwolf.com/blog/post/406" title="麻烦一连串儿 (2008-06-23)">麻烦一连串儿</a> (8)</li>
	<li><a href="http://www.fwolf.com/blog/post/279" title="配置ssh的自动登录 (2007-01-05)">配置ssh的自动登录</a> (13)</li>
	<li><a href="http://www.fwolf.com/blog/post/400" title="选择Eclipse PHP Development Tools(PDT)作为PHP开发工具 (2008-05-03)">选择Eclipse PHP Development Tools(PDT)作为PHP开发工具</a> (8)</li>
	<li><a href="http://www.fwolf.com/blog/post/410" title="用ssh打通反向隧道，内网也可对外提供服务 (2008-07-10)">用ssh打通反向隧道，内网也可对外提供服务</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/425/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/bin/sh: root: not found</title>
		<link>http://www.fwolf.com/blog/post/436</link>
		<comments>http://www.fwolf.com/blog/post/436#comments</comments>
		<pubDate>Mon, 16 Mar 2009 01:54:33 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[root]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/?p=436</guid>
		<description><![CDATA[root用户经常收到这样的错误邮件： From: Cron Daemon &#60;root&#62; To: root Subject: Cron &#60;root@fwolf&#62; root /home/fwolf/bin/cmd_run_in_crontab X-Cron-Env: &#60;SHELL=/bin/sh&#62; X-Cron-Env: &#60;PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&#62; X-Cron-Env: &#60;HOME=/root&#62; X-Cron-Env: &#60;LOGNAME=root&#62; /bin/sh: root: not found 这个问题很简单，但也容易让人糊涂，先说原因吧，/etc/crontab中格式是这样的： 17 * * * * root cd / &#38;&#38; run-parts --report /etc/cron.hourly 而root# crontab -e出来的应该是这样： 17 * * * * cd / &#38;&#38; run-parts --report /etc/cron.hourly 注意，/etc/crontab是针对整个系统的，所以第6列是用户名，root# crontab -e是root用户的，所以第6列就直接是命令了。 这有什么好糊涂的呢，因为这两个文件很可能会一模一样，我就是这样，后来才发现他们的不同，不信用root# [...]]]></description>
			<content:encoded><![CDATA[<p>root用户经常收到这样的错误邮件：</p>

<pre><code>From: Cron Daemon &lt;root&gt;
To: root
Subject: Cron &lt;root@fwolf&gt; root /home/fwolf/bin/cmd_run_in_crontab
X-Cron-Env: &lt;SHELL=/bin/sh&gt;
X-Cron-Env: &lt;PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&gt;
X-Cron-Env: &lt;HOME=/root&gt;
X-Cron-Env: &lt;LOGNAME=root&gt;

/bin/sh: root: not found
</code></pre>

<p>这个问题很简单，但也容易让人糊涂，先说原因吧，<code>/etc/crontab</code>中格式是这样的：</p>

<pre><code>17 *    * * *   root    cd / &amp;&amp; run-parts --report /etc/cron.hourly
</code></pre>

<p>而<code>root# crontab -e</code>出来的应该是这样：</p>

<pre><code>17 *    * * *   cd / &amp;&amp; run-parts --report /etc/cron.hourly
</code></pre>

<p>注意，<code>/etc/crontab</code>是针对整个系统的，所以第6列是用户名，<code>root# crontab -e</code>是root用户的，所以第6列就直接是命令了。</p>

<p>这有什么好糊涂的呢，因为这两个文件很可能会一模一样，我就是这样，后来才发现他们的不同，不信用<code>root# crontab -e</code>修改些内容再和<code>/etc/crontab</code>对比就知道了。</p>

<p>现在，<code>/bin/sh: root: not found</code>这个错误不用我再解释了吧？直接拷贝crontab到root的后遗症。</p>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/cron" title="cron" rel="tag">cron</a>, <a href="http://www.fwolf.com/blog/post/tag/error" title="error" rel="tag">error</a>, <a href="http://www.fwolf.com/blog/post/tag/linux" title="Linux" rel="tag">Linux</a>, <a href="http://www.fwolf.com/blog/post/tag/root" title="root" rel="tag">root</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/279" title="配置ssh的自动登录 (2007-01-05)">配置ssh的自动登录</a> (13)</li>
	<li><a href="http://www.fwolf.com/blog/post/400" title="选择Eclipse PHP Development Tools(PDT)作为PHP开发工具 (2008-05-03)">选择Eclipse PHP Development Tools(PDT)作为PHP开发工具</a> (8)</li>
	<li><a href="http://www.fwolf.com/blog/post/411" title="由一个错误学到的一些php安全配置问题 (2008-07-13)">由一个错误学到的一些php安全配置问题</a> (4)</li>
	<li><a href="http://www.fwolf.com/blog/post/410" title="用ssh打通反向隧道，内网也可对外提供服务 (2008-07-10)">用ssh打通反向隧道，内网也可对外提供服务</a> (2)</li>
	<li><a href="http://www.fwolf.com/blog/post/437" title="安装ibus输入法 (2009-04-06)">安装ibus输入法</a> (3)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/436/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>recently-used+libtrash狂吃硬盘空间</title>
		<link>http://www.fwolf.com/blog/post/421</link>
		<comments>http://www.fwolf.com/blog/post/421#comments</comments>
		<pubDate>Wed, 20 Aug 2008 08:46:35 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ignore]]></category>
		<category><![CDATA[libtrash]]></category>
		<category><![CDATA[recent]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/?p=421</guid>
		<description><![CDATA[哈，这个问题早就发现了，不过一直以为是openoffice.org的临时文件，今天忍不住搜了一下，终于找到原因和解决办法了。 问题是这样的，由于启用了libtrash，所以正常删除的文件都会在$HOME/.Trash下面存一份，我的$HOME空间本来就十分紧张，经常发现磁盘满的情况（磁盘满了以后会有很多有意思/古怪的现象，有点意思），一看是有大量的.recently-used.xbel[?]文件在$HOME/.Trash下趴着，删除他们可以节省几百M到1G多的空间，并且丝毫不影响使用。 没有仔细观察的时候，还以为是openoffice.org开着的时候产生的临时文件，今天终于知道，用户$HOME下有两个文件：.recently-used和.recently-used.xbel，这两个文件都是xml，格式不同，但都是保存了最近打开/访问的文件。可能是我没有直接使用Gnome桌面，从来没有清除过最近文件的缘故，这两个文件的尺寸已经分别达到了200k和2.5M，尤其是那个.xbel文件，2M多，每次更新都会由于libtrash的缘故在$HOME/.Trash下存一个备份，随着时间的推移，可不就很快把硬盘吃完了么。 参考的文章中，是通过修改文件权限的方式，让系统不再往这两个文件写入内容，应该也是可行的，但和libtrash结合恐怕还是会有空文件生成，好在libtrash有黑名单功能，在/etc/libtrash.conf或者$HOME/.libtrash中： IGNORE_RE = \.recently-used\.xbel 就行了。 关于这两个recently文件，还有两点，一是注意文件权限，可能存在泄漏用户隐私、操作习惯的问题；二是如果以前用过的文档找不到了，在这两个文件的内容中搜搜没准儿能找到。 参考 HOW-TO: Enable and Disable the Recent Documents Menu in Gnome Tags: ignore, libtrash, Linux, recent Related posts 配置ssh的自动登录 (13) 选择Eclipse PHP Development Tools(PDT)作为PHP开发工具 (8) 用ssh打通反向隧道，内网也可对外提供服务 (2) 安装ibus输入法 (3) 为了Linux，BT可别没喽 (7)]]></description>
			<content:encoded><![CDATA[<p>哈，这个问题早就发现了，不过一直以为是openoffice.org的临时文件，今天忍不住搜了一下，终于找到原因和解决办法了。</p>

<p>问题是这样的，由于启用了libtrash，所以正常删除的文件都会在<code>$HOME/.Trash</code>下面存一份，我的<code>$HOME</code>空间本来就十分紧张，经常发现磁盘满的情况（磁盘满了以后会有很多有意思/古怪的现象，有点意思），一看是有大量的<code>.recently-used.xbel[?]</code>文件在<code>$HOME/.Trash</code>下趴着，删除他们可以节省几百M到1G多的空间，并且丝毫不影响使用。</p>

<p>没有仔细观察的时候，还以为是openoffice.org开着的时候产生的临时文件，今天终于知道，用户<code>$HOME</code>下有两个文件：<code>.recently-used</code>和<code>.recently-used.xbel</code>，这两个文件都是xml，格式不同，但都是保存了最近打开/访问的文件。可能是我没有直接使用Gnome桌面，从来没有清除过最近文件的缘故，这两个文件的尺寸已经分别达到了200k和2.5M，尤其是那个.xbel文件，2M多，每次更新都会由于libtrash的缘故在<code>$HOME/.Trash</code>下存一个备份，随着时间的推移，可不就很快把硬盘吃完了么。</p>

<p>参考的文章中，是通过修改文件权限的方式，让系统不再往这两个文件写入内容，应该也是可行的，但和libtrash结合恐怕还是会有空文件生成，好在libtrash有黑名单功能，在<code>/etc/libtrash.conf</code>或者<code>$HOME/.libtrash</code>中：</p>

<pre><code>IGNORE_RE = \.recently-used\.xbel
</code></pre>

<p>就行了。</p>

<p>关于这两个recently文件，还有两点，一是注意文件权限，可能存在泄漏用户隐私、操作习惯的问题；二是如果以前用过的文档找不到了，在这两个文件的内容中搜搜没准儿能找到。</p>

<h4>参考</h4>

<ul>
<li><a href="http://ubuntuforums.org/showthread.php?t=91154">HOW-TO: Enable and Disable the Recent Documents Menu in Gnome</a></li>
</ul>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/ignore" title="ignore" rel="tag">ignore</a>, <a href="http://www.fwolf.com/blog/post/tag/libtrash" title="libtrash" rel="tag">libtrash</a>, <a href="http://www.fwolf.com/blog/post/tag/linux" title="Linux" rel="tag">Linux</a>, <a href="http://www.fwolf.com/blog/post/tag/recent" title="recent" rel="tag">recent</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/279" title="配置ssh的自动登录 (2007-01-05)">配置ssh的自动登录</a> (13)</li>
	<li><a href="http://www.fwolf.com/blog/post/400" title="选择Eclipse PHP Development Tools(PDT)作为PHP开发工具 (2008-05-03)">选择Eclipse PHP Development Tools(PDT)作为PHP开发工具</a> (8)</li>
	<li><a href="http://www.fwolf.com/blog/post/410" title="用ssh打通反向隧道，内网也可对外提供服务 (2008-07-10)">用ssh打通反向隧道，内网也可对外提供服务</a> (2)</li>
	<li><a href="http://www.fwolf.com/blog/post/437" title="安装ibus输入法 (2009-04-06)">安装ibus输入法</a> (3)</li>
	<li><a href="http://www.fwolf.com/blog/post/382" title="为了Linux，BT可别没喽 (2008-02-13)">为了Linux，BT可别没喽</a> (7)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/421/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用ssh打通反向隧道，内网也可对外提供服务</title>
		<link>http://www.fwolf.com/blog/post/410</link>
		<comments>http://www.fwolf.com/blog/post/410#comments</comments>
		<pubDate>Thu, 10 Jul 2008 11:38:30 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[allow]]></category>
		<category><![CDATA[denyhosts]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[reverse]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tunnel]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/?p=410</guid>
		<description><![CDATA[一般正规一点的网络环境，大多是这样的：防火墙后分为内网和中立区（DMZ），并且内网和DMZ虽然都能访问外网，互相却是无法直接访问的。内网和DMZ的区别就是，来自外网的访问，都通过防火墙上的规则映射到DMZ里的服务器上，而内网一般是不允许这样的。 现在需要解决的问题就是，在防火墙只能给DMZ开端口，内网和外网不可直接互访的情况下，如果让内网的机器对外提供服务。 ssh是很神奇的，使用它创建的隧道，可以起到代理的作用，数据流的方向是： 本机 -&#62; 隧道 -&#62; 外网 应用到我们的问题中，如果把隧道反过来，就是： 外网 -&#62; DMZ -&#62; 隧道 -&#62; 内网 这就需要用到ssh的反向隧道，它在服务器上打开一个监听端口，这个端口的访问会被隧道传输到本地，结果再通过隧道传到服务器上，从监听端口返回给客户。这样，在我们的应用中，内网机器通过外网访问DMZ服务器，创建ssh反向隧道，就能够对外提供服务了。当然，防火墙上要将相应端口映射到DMZ的服务器上。 比如，在内网登录DMZ服务器： ssh -R 8082:localhost:82 fwolf@svr5.tld -o ControlPath=/tmp/ssh_svr5_reverse_tunnel 这样，访问DMZ服务器svr5的8082端口，就是在访问本机的82端口。之所以带上-o ControlPath，是为了和其它访问svr5的进程使用不同的master模式（如果不是第一次创建这个master，而是使用了原来的连接的sockts，肯定就不会创建隧道了）。 有几个问题还需要注意一下： 如果DMZ上监听端口小于1000的话，就必须用root用户登录DMZ服务器，比如root@svr5.tld。 DMZ服务器上的sshd必须开启GatewayPorts选项，在文件/etc/ssh/sshd_config中加入GatewayPorts yes。 记得不要idle，参考中有在服务端设置的方法。 如果放在其它脚本，比如/etc/rc.local中执行的话，除了配置自动登录，还可以带上-fN参数，放到后台去。 参考 TIP SSH Reverse Tunnel ssh reverse tunneling PuTTY 中文教程 作者：柴锋 2006年11月 Update @ 2008-07-25 注意，由于使用了反向隧道，所以ssh隧道实际作用相当于一个代理，访问的来源也自然就都成了127.0.0.1，如果同时还启用了denyhosts，千万记得要把本机地址127.0.0.1放入白名单/etc/hosts.allow，不然就会成为其他登录失败的牺牲品（失败的登录，其来源也成了loopback的地址）： ssh_exchange_identification: Connection closed by remote host Fatal [...]]]></description>
			<content:encoded><![CDATA[<p>一般正规一点的网络环境，大多是这样的：防火墙后分为内网和中立区（DMZ），并且内网和DMZ虽然都能访问外网，互相却是无法直接访问的。内网和DMZ的区别就是，来自外网的访问，都通过防火墙上的规则映射到DMZ里的服务器上，而内网一般是不允许这样的。</p>

<p>现在需要解决的问题就是，在防火墙只能给DMZ开端口，内网和外网不可直接互访的情况下，如果让内网的机器对外提供服务。</p>

<p>ssh是很神奇的，使用它创建的隧道，可以起到代理的作用，数据流的方向是：</p>

<pre><code>本机 -&gt; 隧道 -&gt; 外网
</code></pre>

<p>应用到我们的问题中，如果把隧道反过来，就是：</p>

<pre><code>外网 -&gt; DMZ -&gt; 隧道 -&gt; 内网
</code></pre>

<p>这就需要用到ssh的反向隧道，它在服务器上打开一个监听端口，这个端口的访问会被隧道传输到本地，结果再通过隧道传到服务器上，从监听端口返回给客户。这样，在我们的应用中，内网机器通过外网访问DMZ服务器，创建ssh反向隧道，就能够对外提供服务了。当然，防火墙上要将相应端口映射到DMZ的服务器上。</p>

<p>比如，在内网登录DMZ服务器：</p>

<pre><code>ssh -R 8082:localhost:82 fwolf@svr5.tld -o ControlPath=/tmp/ssh_svr5_reverse_tunnel
</code></pre>

<p>这样，访问DMZ服务器svr5的8082端口，就是在访问本机的82端口。之所以带上<code>-o ControlPath</code>，是为了和其它访问svr5的进程使用不同的<a href="385">master模式</a>（如果不是第一次创建这个master，而是使用了原来的连接的sockts，肯定就不会创建隧道了）。</p>

<p>有几个问题还需要注意一下：</p>

<ul>
<li>如果DMZ上监听端口小于1000的话，就必须用root用户登录DMZ服务器，比如<code>root@svr5.tld</code>。</li>
<li>DMZ服务器上的sshd必须开启GatewayPorts选项，在文件<code>/etc/ssh/sshd_config</code>中加入<code>GatewayPorts yes</code>。</li>
<li>记得不要idle，参考中有在服务端设置的方法。</li>
<li>如果放在其它脚本，比如<code>/etc/rc.local</code>中执行的话，除了配置<a href="279">自动登录</a>，还可以带上<code>-fN</code>参数，放到后台去。</li>
</ul>

<h4>参考</h4>

<ul>
<li><a href="http://gentoo-wiki.com/TIP_SSH_Reverse_Tunnel">TIP SSH Reverse Tunnel</a></li>
<li><a href="http://linux.byexamples.com/archives/238/ssh-reverse-tunneling/">ssh reverse tunneling</a></li>
<li><a href="http://chaifeng.com/blog/2007/06/putty_200611.html">PuTTY 中文教程 作者：柴锋 2006年11月</a></li>
</ul>

<h4>Update @ 2008-07-25</h4>

<p>注意，由于使用了反向隧道，所以ssh隧道实际作用相当于一个代理，访问的来源也自然就都成了<code>127.0.0.1</code>，如果同时还启用了<a href="http://denyhosts.sourceforge.net/">denyhosts</a>，千万记得要把本机地址<code>127.0.0.1</code>放入白名单<code>/etc/hosts.allow</code>，不然就会成为其他登录失败的牺牲品（失败的登录，其来源也成了loopback的地址）：</p>

<pre><code>ssh_exchange_identification: Connection closed by remote host
Fatal error: Lost connection with the server
</code></pre>

<p>没办法，为了网络通道的畅通，只能牺牲一部分安全性了。</p>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/allow" title="allow" rel="tag">allow</a>, <a href="http://www.fwolf.com/blog/post/tag/denyhosts" title="denyhosts" rel="tag">denyhosts</a>, <a href="http://www.fwolf.com/blog/post/tag/internet" title="Internet" rel="tag">Internet</a>, <a href="http://www.fwolf.com/blog/post/tag/linux" title="Linux" rel="tag">Linux</a>, <a href="http://www.fwolf.com/blog/post/tag/network" title="network" rel="tag">network</a>, <a href="http://www.fwolf.com/blog/post/tag/reverse" title="reverse" rel="tag">reverse</a>, <a href="http://www.fwolf.com/blog/post/tag/ssh" title="ssh" rel="tag">ssh</a>, <a href="http://www.fwolf.com/blog/post/tag/tips" title="tips" rel="tag">tips</a>, <a href="http://www.fwolf.com/blog/post/tag/tunnel" title="tunnel" rel="tag">tunnel</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/279" title="配置ssh的自动登录 (2007-01-05)">配置ssh的自动登录</a> (13)</li>
	<li><a href="http://www.fwolf.com/blog/post/385" title="ssh的连接重用 (2008-03-04)">ssh的连接重用</a> (2)</li>
	<li><a href="http://www.fwolf.com/blog/post/300" title="针对$_SERVER['PHP_SELF']的跨站脚本攻击（XSS） (2007-03-18)">针对$_SERVER['PHP_SELF']的跨站脚本攻击（XSS）</a> (3)</li>
	<li><a href="http://www.fwolf.com/blog/post/443" title="配置安全的共享web服务器（抛砖引玉） (2009-06-09)">配置安全的共享web服务器（抛砖引玉）</a> (4)</li>
	<li><a href="http://www.fwolf.com/blog/post/400" title="选择Eclipse PHP Development Tools(PDT)作为PHP开发工具 (2008-05-03)">选择Eclipse PHP Development Tools(PDT)作为PHP开发工具</a> (8)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/410/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
