<?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>Henry&#039;s Points &#187; Linux</title>
	<atom:link href="http://henrydu.com/blog/category/how-to/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://henrydu.com/blog</link>
	<description>Think analog, act digital</description>
	<lastBuildDate>Mon, 14 Nov 2011 18:32:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>iPod Touch Vulnerability after Jailbreak</title>
		<link>http://henrydu.com/blog/cool-stuff/ipod-touch-vulnerability-after-jailbreak-329.html</link>
		<comments>http://henrydu.com/blog/cool-stuff/ipod-touch-vulnerability-after-jailbreak-329.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 19:10:19 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=329</guid>
		<description><![CDATA[As you may know or may not know, there is a vulnerability for iPod Touch after jailbreak. The root password is hard-coded as &#8220;alpine&#8221;. If your iPod Touch connect to the hotspot network, people who is in the same subnet can do the following: Nmap the whole subnet. sudo nmap -A -O -T4 112.55.82.0/24 The [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know or may not know, there is a vulnerability for iPod Touch after jailbreak. The root password is hard-coded as &#8220;alpine&#8221;. If your iPod Touch connect to the hotspot network, people who is in the same subnet can do the following:</p>
<ol>
<li>Nmap the whole subnet.</li>
<blockquote><p>sudo nmap -A -O -T4 112.55.82.0/24</p></blockquote>
<li>The scan result will be shown as follows.</li>
<blockquote><p>Interesting ports on ******* (112.55.82.202):<br />
PORT      STATE SERVICE    VERSION<br />
22/tcp    open  ssh        OpenSSH 5.2 (protocol 2.0)<br />
62078/tcp open  tcpwrapped<br />
&#8230;.<br />
Running (JUST GUESSING) : Apple embedded (93%), Apple iPhone OS 1.X (89%)</p></blockquote>
<li>Then, the most likely what the people want to do is:</li>
<blockquote><p>ssh root@112.55.82.202<br />
Password: alpine</p></blockquote>
<li>Then, as you can guess, they want to do whatever they want.</li>
<blockquote><p>John-Smiths-iPod:/ root# ls<br />
Applications@  Library/  User@  boot/   dev/  lib/  private/  tmp@  var@<br />
Developer/     System/   bin/   cores/  etc@  mnt/  sbin/     usr/</p></blockquote>
</ol>
<p><strong>The solution is very simple:</strong> just to change root password after jailbreak. We can go to terminal application in the iPod.</p>
<ul>
<li>Type su &#8211; to enter super user mode</li>
<li>Type passwd to enter the new password</li>
<li>Type again the new password</li>
<li>Type exit. We are done.</li>
</ul>
<p>Good luck and Thanks,</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/cool-stuff/ipod-touch-vulnerability-after-jailbreak-329.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/cool-stuff/ipod-touch-vulnerability-after-jailbreak-329.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASA Simulation on Ubunut QEMU</title>
		<link>http://henrydu.com/blog/how-to/linux/asa-simulation-on-ubunut-qemu-321.html</link>
		<comments>http://henrydu.com/blog/how-to/linux/asa-simulation-on-ubunut-qemu-321.html#comments</comments>
		<pubDate>Sat, 30 Jan 2010 01:11:32 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=321</guid>
		<description><![CDATA[When I tried to find the Cisco ASA simulator by Linux keyword, there are few related results came out. Two popular ways are setting up on Windows QEMU and VMWare. People who are using Windows can refer to that. Windows QEMU Windows VMWare However, I found one site that is really useful to install ASA [...]]]></description>
			<content:encoded><![CDATA[<p>When I tried to find the Cisco ASA simulator by Linux keyword, there are few related results came out. Two popular ways are setting up on Windows QEMU and VMWare. People who are using Windows can refer to that.</p>
<ul>
<li><a href="http://7200emu.hacki.at/viewtopic.php?t=7680&amp;sid=681503989b2fd66a21950b813de09d2a" target="_blank">Windows QEMU</a></li>
<li><a href="http://asa_project.gromnet.net" target="_blank">Windows VMWare</a></li>
</ul>
<p>However, I found <a href="http://blog.gns3.net/2009/12/how-to-emulate-cisco-asa/" target="_blank">one site</a> that is really useful to install ASA image to QEMU on Linux. I followed the steps and make my own ASA environment. Please note that this solution is not user friendly like dynamips or dynagen. Select the two ways above maybe a good choice. So, let&#8217;s see how it works in my site.</p>
<p>We need QEMU first</p>
<blockquote><p>sudo apt-get install qemu</p></blockquote>
<p>We need asa802-k8.bin</p>
<blockquote><p>??? <img src='http://henrydu.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
<p>We assume that we are working on $ASA_WORKSPACE. Under the directory, create an hexadecimal dump of image:</p>
<blockquote><p>hexdump -C asa802-k8.bin &gt; asa802-k8.hex</p></blockquote>
<p>Search for the ZIP header. We can see that the ZIP file starts at offset 1228b0.</p>
<blockquote><p>grep &#8220;1f 8b 08 00 1d&#8221; asa802-k8.hex<br />
001228b0  1f 8b 08 00 1d 3d 73 46  00 03 ec 3a 6d 54 14 57  |&#8230;..=sF&#8230;:mT.W|</p></blockquote>
<p>Find the image size.</p>
<blockquote><p>ls -la asa802-k8.bin<br />
-rw-r&#8211;r&#8211; 1 hengdu hengdu 14524416 2010-01-28 21:27 asa802-k8.bin</p></blockquote>
<p>Now we need to find out where in the file we can start extracting the ZIP part.</p>
<blockquote><p>echo &#8220;14524416 ; ibase=16 ; last &#8211; 1228B0&#8243; | bc | tail -n 1<br />
13334352</p></blockquote>
<p>Extract the zipped part of the ASA image:</p>
<blockquote><p>tail -c 13334352 asa802-k8.bin &gt; asa802-k8.gz</p></blockquote>
<p>Decompress it with gzip:</p>
<blockquote><p>gzip -d asa802-k8<br />
gzip: asa802-k8.gz: decompression OK, trailing garbage ignored</p></blockquote>
<p>Make a tmp directory and extract the archive with cpio.</p>
<blockquote><p>mkdir tmp<br />
cd tmp<br />
sudo cpio -i &#8211;no-absolute-filenames &#8211;make-directories &lt; ../asa802-k8<br />
cpio: Removing leading `/&#8217; from member names<br />
61039 blocks</p></blockquote>
<p>Copy the Linux kernel to the upper directory:</p>
<blockquote><p>cp vmlinuz ../asa802-k8.kernel</p></blockquote>
<p>Make startup script file to ./asa/scripts/first_start.sh. I basically copy all script from the site. However, some part has to be modified in my environment.</p>
<blockquote><p>#!/bin/sh</p>
<p>FIRST_START=no<br />
if test ! -e /mnt/disk0/lina_monitor<br />
then<br />
fdisk /dev/hda &lt;&lt; EOF<br />
n<br />
p<br />
1<br />
5<br />
979<br />
t<br />
4<br />
w<br />
EOF<br />
mkdosfs -F 16 /dev/hda1<br />
mount -o umask=0000,noatime,check=s,shortname=mixed /dev/hda1 /mnt/disk0<br />
cp /asa/bin/lina /mnt/disk0/lina<br />
cp /asa/bin/lina_monitor /mnt/disk0/lina_monitor<br />
FIRST_START=yes<br />
fi<br />
modprobe e100<br />
modprobe e1000<br />
ifconfig eth0 up<br />
ifconfig eth1 up<br />
ifconfig eth2 up<br />
ifconfig eth3 up<br />
ifconfig eth4 up<br />
ifconfig eth5 up<br />
if test $FIRST_START = yes<br />
then<br />
echo &#8220;&#8221;<br />
echo &#8220;&#8221;<br />
echo &#8220;This is your first boot, please wait about 1 min and then type the following commands:&#8221;<br />
echo &#8220;cd /mnt/disk0&#8243;<br />
echo &#8220;/mnt/disk0/lina_monitor&#8221;<br />
echo &#8220;&#8221;<br />
echo &#8220;Please note to use the following command under ASA to save your configs:&#8221;<br />
echo &#8220;copy run disk0:/.private/startup-config&#8221;<br />
echo &#8220;&#8221;<br />
exit<br />
fi<br />
cd /mnt/disk0<br />
/mnt/disk0/lina_monitor</p></blockquote>
<p>Chmod for the script</p>
<blockquote><p>sudo chmod +x ./asa/scripts/first_start.sh</p></blockquote>
<p>Now you can compress all the file and have the initrd ready to use in Qemu:</p>
<blockquote><p>sudo find . | cpio -o -H newc | gzip -9 &gt; ../asa802-k8.initrd.gz</p></blockquote>
<p><strong>At this point, the Linux kernel files are ready for QEMU to use.</strong></p>
<p>Create a virtual hard disk</p>
<blockquote><p>qemu-img create FLASH 256M<br />
Formatting &#8216;FLASH&#8217;, fmt=raw size=268435456</p></blockquote>
<p>Then start QEMU</p>
<blockquote><p>qemu -hda FLASH -kernel asa802-k8.kernel -hdachs 980,16,32 \<br />
-initrd asa802-k8.initrd.gz -m 512 -nographic -append \<br />
&#8220;console=ttyS0,9600n8 hda=980,16,32 bigphysarea=16384 auto nousb ide1=noprobe&#8221;</p></blockquote>
<p>After many lines output, you will see # prompt. Then, we start ASA.</p>
<blockquote><p>/bin/lina</p></blockquote>
<p>Finally, I saw the familiar prompt.</p>
<blockquote><p>ciscoasa#</p></blockquote>
<p>So far, I still have some issues to figure it out, such as interface setup and working with my dynamips router. Hopefully I will figure out later time. Please feel free to join my discussion.</p>
<p>Thanks,</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/linux/asa-simulation-on-ubunut-qemu-321.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/linux/asa-simulation-on-ubunut-qemu-321.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>NetMos 6-Port Serial Console in Fedora 10</title>
		<link>http://henrydu.com/blog/how-to/netmos-6-port-serial-console-in-fedora-10-311.html</link>
		<comments>http://henrydu.com/blog/how-to/netmos-6-port-serial-console-in-fedora-10-311.html#comments</comments>
		<pubDate>Thu, 21 Jan 2010 21:41:46 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=311</guid>
		<description><![CDATA[I recently bought a NetMos 6 ports serial console card. It is installed in my Fedora 10 computer. As you might guess, the Linux only recognize the first four serial device, which is ttyS[0-3]. The problem in here is, the Fedora has already recognized the serial console card driver, but it only keep the first [...]]]></description>
			<content:encoded><![CDATA[<p>I recently bought a NetMos 6 ports serial console card. It is installed in my Fedora 10 computer. As you might guess, the Linux only recognize the first four serial device, which is ttyS[0-3]. The problem in here is, the Fedora has already recognized the serial console card driver, but it only keep the first four as default. How to expand those ports?</p>
<p>There are many solutions. After some study, I found the simple way to solve this problem. Edit <strong>/boot/grub/menu.lst</strong>, add one more option <strong>&#8220;8250.nr_uarts=8&#8243;</strong> after kernel command.</p>
<blockquote><p>kernel /vmlinuz-2.6.27.41-170.2.117.fc10.i686 ro root=/dev/VolGroup00/LogVol00 rhgb quiet 8250.nr_uarts=8</p></blockquote>
<p>After reboot the system, we can verify if all the ports are supported.</p>
<blockquote><p>[root@console ~]# ls -la /dev/ttyS[0-8]<br />
crw-rw&#8212;- 1 root uucp 4, 64 2010-01-21 11:29 /dev/ttyS0<br />
crw-rw&#8212;- 1 root uucp 4, 65 2010-01-21 11:29 /dev/ttyS1<br />
crw-rw&#8212;- 1 root uucp 4, 66 2010-01-21 11:29 /dev/ttyS2<br />
crw-rw&#8212;- 1 root uucp 4, 67 2010-01-21 11:29 /dev/ttyS3<br />
crw-rw&#8212;- 1 root uucp 4, 68 2010-01-21 11:29 /dev/ttyS4<br />
crw-rw&#8212;- 1 root uucp 4, 69 2010-01-21 11:29 /dev/ttyS5<br />
crw-rw&#8212;- 1 root uucp 4, 70 2010-01-21 12:15 /dev/ttyS6<br />
crw-rw&#8212;- 1 root uucp 4, 71 2010-01-21 11:29 /dev/ttyS7<br />
crw-rw&#8212;- 1 root uucp 4, 72 2010-01-21 11:29 /dev/ttyS8</p></blockquote>
<p>We can list PCI to see hardware information.</p>
<blockquote><p>00:08.0 Serial controller: NetMos Technology PCI 9845 Multi-I/O Controller (rev 01) (prog-if 02 [16550])<br />
Subsystem: LSI Logic / Symbios Logic 0P6S (6 port 16550a serial card)<br />
Flags: medium devsel, IRQ 16<br />
I/O ports at 8400 [size=8]<br />
I/O ports at 8000 [size=8]<br />
I/O ports at 7800 [size=8]<br />
I/O ports at 7400 [size=8]<br />
I/O ports at 7000 [size=8]<br />
I/O ports at 6800 [size=16]<br />
Kernel driver in use: serial<br />
Kernel modules: parport_serial</p></blockquote>
<p>We also can see serial port information. From that we can see that ttyS[1-3] is unknown port. The port ttyS[4-9] is actually my 6 serial ports.</p>
<blockquote><p>[root@console ~]# setserial -g -G /dev/ttyS[0-9]<br />
/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test<br />
/dev/ttyS1 uart unknown port 0x02f8 irq 3 baud_base 115200 spd_normal skip_test auto_irq<br />
/dev/ttyS2 uart unknown port 0x03e8 irq 4 baud_base 115200 spd_normal skip_test auto_irq<br />
/dev/ttyS3 uart unknown port 0x02e8 irq 3 baud_base 115200 spd_normal auto_irq<br />
/dev/ttyS4 uart 16550A port 0&#215;8400 irq 16 baud_base 115200 spd_normal skip_test<br />
/dev/ttyS5 uart 16550A port 0&#215;8000 irq 16 baud_base 115200 spd_normal skip_test<br />
/dev/ttyS6 uart 16550A port 0&#215;7800 irq 16 baud_base 115200 spd_normal skip_test<br />
/dev/ttyS7 uart 16550A port 0&#215;7400 irq 16 baud_base 115200 spd_normal skip_test<br />
/dev/ttyS8 uart 16550A port 0&#215;7000 irq 16 baud_base 115200 spd_normal skip_test<br />
/dev/ttyS9 uart 16550A port 0&#215;6800 irq 16 baud_base 115200 spd_normal skip_test</p></blockquote>
<p>Finally, I am able to use <strong>minicom</strong> to access my devices.</p>
<p>Thanks</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/netmos-6-port-serial-console-in-fedora-10-311.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/netmos-6-port-serial-console-in-fedora-10-311.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UFW Secures Ubuntu</title>
		<link>http://henrydu.com/blog/how-to/linux/ufw-secures-ubuntu-309.html</link>
		<comments>http://henrydu.com/blog/how-to/linux/ufw-secures-ubuntu-309.html#comments</comments>
		<pubDate>Wed, 20 Jan 2010 23:01:39 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=309</guid>
		<description><![CDATA[Due to my desktop will go to public, I mean public IP not NASDQ, I have to enable firewall. After googling, I find a default firewall for Ubuntu system &#8211; Uncomplicated Firewall (UFW). Enable/Disable Firewall sudo ufw enable sudo ufw disable Add rules to firewall sudo ufw allow 22 sudo ufw delete allow 22 sudo [...]]]></description>
			<content:encoded><![CDATA[<p>Due to my desktop will go to public, I mean public IP not NASDQ, I have to enable firewall. After googling, I find a default firewall for Ubuntu system &#8211; Uncomplicated Firewall (UFW).</p>
<p>Enable/Disable Firewall</p>
<blockquote><p>sudo ufw enable<br />
sudo ufw disable</p></blockquote>
<p>Add rules to firewall</p>
<blockquote><p>sudo ufw allow 22<br />
sudo ufw delete allow 22<br />
sudo ufw deny from 10.1.1.1/24 to any port 22<br />
sudo ufw allow from 10.2.2.2/24 to any port 22</p></blockquote>
<p>To see current rules</p>
<blockquote><p>sudo ufw status verbose</p></blockquote>
<p>For all port mapping, you can go to cat /etc/service.</p>
<p>Thanks</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/linux/ufw-secures-ubuntu-309.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/linux/ufw-secures-ubuntu-309.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Nessus on Ubuntu 9.04</title>
		<link>http://henrydu.com/blog/how-to/install-nessus-on-ubuntu-9-04-300.html</link>
		<comments>http://henrydu.com/blog/how-to/install-nessus-on-ubuntu-9-04-300.html#comments</comments>
		<pubDate>Mon, 26 Oct 2009 21:57:28 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=300</guid>
		<description><![CDATA[In the Vulnerability Scanner world, many commercial products, including Retina, Qualyst and FoundStone, still, there are some open source that widely adopted. Nessus is one of them. The following are the list of Vulnerablility Scanners. FoundStone (Macfee) HarrisSTATGuardian (Harris) ISS (IBM) Nessus (Open Source) OVAL Qualys Retina (eEye Digital Security) For Nessus, since it&#8217;s open [...]]]></description>
			<content:encoded><![CDATA[<p>In the Vulnerability Scanner world, many commercial products, including Retina, Qualyst and FoundStone, still, there are some open source that widely adopted. Nessus is one of them. The following are the list of Vulnerablility Scanners.</p>
<ul>
<li>FoundStone (Macfee)</li>
<li>HarrisSTATGuardian (Harris)</li>
<li>ISS (IBM)</li>
<li>Nessus (Open Source)</li>
<li>OVAL</li>
<li>Qualys</li>
<li>Retina (eEye Digital Security)</li>
</ul>
<p>For Nessus, since it&#8217;s open source, it&#8217;s easy to install on most of Linux distribution. In here, I use Ubuntu 9.04. You can check your distribution by</p>
<blockquote><p>cat /etc/lsb-release<br />
DISTRIB_ID=Ubuntu<br />
DISTRIB_RELEASE=9.04<br />
DISTRIB_CODENAME=jaunty<br />
DISTRIB_DESCRIPTION=&#8221;Ubuntu 9.04&#8243;</p></blockquote>
<p>Then, we can just follow the steps below:</p>
<ol>
<li>sudo apt-get install nessus (client)</li>
<li>sudo apt-get install nessusd (server)</li>
<li>sudo nessus-mkcert</li>
<li>sudo nessus-adduser</li>
<li>sudo /etc/init.d/nessusd restart</li>
<li>Go to menu Application-&gt;Internet-&gt;Nessus to open Nessus client.</li>
<li>After input the target(s), you can start scan.</li>
</ol>
<p><img class="aligncenter size-full wp-image-301" title="Screenshot-Scanning network from localhost" src="http://henrydu.com/blog/wp-content/uploads/2009/10/Screenshot-Scanning-network-from-localhost.png" alt="Screenshot-Scanning network from localhost" width="524" height="311" /></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/install-nessus-on-ubuntu-9-04-300.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/install-nessus-on-ubuntu-9-04-300.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trac on Ubuntu</title>
		<link>http://henrydu.com/blog/how-to/trac-on-ubuntu-293.html</link>
		<comments>http://henrydu.com/blog/how-to/trac-on-ubuntu-293.html#comments</comments>
		<pubDate>Wed, 21 Oct 2009 18:48:14 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Application]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=293</guid>
		<description><![CDATA[I am looking for some platform can manage some projects and share some ideas. I have used Twiki which implemented by Perl and I have also used Tikiwiki which implemented by PHP. However, people recommended that Trac is good for development project. The benefits are as follows: SVN to manage code check-in/check-out Wiki page to [...]]]></description>
			<content:encoded><![CDATA[<p>I am looking for some platform can manage some projects and share some ideas. I have used Twiki which implemented by Perl and I have also used Tikiwiki which implemented by PHP. However, people recommended that Trac is good for development project. The benefits are as follows:</p>
<ul>
<li> SVN to manage code check-in/check-out</li>
<li> Wiki page to have document for each changes and implementations.</li>
<li> Bug preview and bug tracking</li>
<li>More&#8230;</li>
</ul>
<p>So, I followed the <a title="TracOnUbuntu" href="http://trac.edgewall.org/wiki/0.11/TracOnUbuntu" target="_blank">TracOnUbuntu</a> to install. I still need time to figure out how to maintain the system.</p>
<p><img class="aligncenter size-full wp-image-294" title="trac_logo" src="http://henrydu.com/blog/wp-content/uploads/2009/10/trac_logo.png" alt="trac_logo" width="214" height="61" /></p>
<p>Besides the link above, there are two things need to be considered.</p>
<ol>
<li><strong>sudo chmod -R +w /var/lib/trac/</strong>, otherwise, the web page will throw exceptions.</li>
<li><strong>sudo htpasswd -c /etc/apache2/dav_svn.passwd username</strong>, otherwise, you can&#8217;t login to revise wiki page.</li>
</ol>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/trac-on-ubuntu-293.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/trac-on-ubuntu-293.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shell Programming: test operators</title>
		<link>http://henrydu.com/blog/how-to/linux/shell-programming-test-operators-288.html</link>
		<comments>http://henrydu.com/blog/how-to/linux/shell-programming-test-operators-288.html#comments</comments>
		<pubDate>Tue, 20 Oct 2009 22:14:13 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=288</guid>
		<description><![CDATA[Shell programming can execute test command for strings, integers and files. It&#8217;s commonly used when process conditional commands by using if-then-else appraoch. You can compare two strings to see whether they are equivalent or not. You also can test a single string to see whether it has a value or not. The test command can [...]]]></description>
			<content:encoded><![CDATA[<p>Shell programming can execute test command for strings, integers and files. It&#8217;s commonly used when process conditional commands by using if-then-else appraoch.</p>
<p>You can compare two strings to see whether they are equivalent or not. You also can test a single string to see whether it has a value or not.</p>
<p><img class="aligncenter size-full wp-image-289" title="String" src="http://henrydu.com/blog/wp-content/uploads/2009/10/bsh-str-com.jpg" alt="String" width="486" height="201" /></p>
<p>The test command can perform comparaion for integers.</p>
<p><img class="aligncenter size-full wp-image-290" title="Integers" src="http://henrydu.com/blog/wp-content/uploads/2009/10/bsh-inter-com.jpg" alt="Integers" width="488" height="196" /></p>
<p>All the file test options return true only if the file exists.</p>
<p><img class="aligncenter size-full wp-image-291" title="File" src="http://henrydu.com/blog/wp-content/uploads/2009/10/file-test-bsh.jpg" alt="File" width="486" height="291" /></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/linux/shell-programming-test-operators-288.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/linux/shell-programming-test-operators-288.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Korn Shell Pattern Expressions</title>
		<link>http://henrydu.com/blog/how-to/linux/korn-shell-pattern-expressions-285.html</link>
		<comments>http://henrydu.com/blog/how-to/linux/korn-shell-pattern-expressions-285.html#comments</comments>
		<pubDate>Fri, 02 Oct 2009 20:40:02 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=285</guid>
		<description><![CDATA[A pattern expression is any word consisting of ordinary characters and one or more shell pattern-matching characters. The pattern-matching characters are the familiar *, ?, and [...], as well as any of these pattern-matching expressions. Share on Facebook]]></description>
			<content:encoded><![CDATA[<p>A pattern expression is any word consisting of ordinary characters and one or more shell pattern-matching characters. The pattern-matching characters are the familiar <tt>*</tt>, <tt>?</tt>, and <tt>[...]</tt>, as well as any of these pattern-matching expressions.</p>
<p><img class="aligncenter size-full wp-image-284" title="pattern-expression" src="http://henrydu.com/blog/wp-content/uploads/2009/10/pattern-expression3.jpg" alt="pattern-expression" width="488" height="262" /></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/linux/korn-shell-pattern-expressions-285.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/linux/korn-shell-pattern-expressions-285.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Special Variables in the Bourne Shell</title>
		<link>http://henrydu.com/blog/how-to/linux/special-variables-in-the-bourne-shell-278.html</link>
		<comments>http://henrydu.com/blog/how-to/linux/special-variables-in-the-bourne-shell-278.html#comments</comments>
		<pubDate>Wed, 30 Sep 2009 16:51:12 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=278</guid>
		<description><![CDATA[The Bourne shell defines several special variables are useful in the scripts. Following are some of the predefined variables. Share on Facebook]]></description>
			<content:encoded><![CDATA[<p>The Bourne shell defines several special variables are useful in the scripts. Following are some of the predefined variables.</p>
<p><img class="aligncenter size-full wp-image-279" title="Predefined Variable" src="http://henrydu.com/blog/wp-content/uploads/2009/09/special_variable_b_shell.jpg" alt="Predefined Variable" width="488" height="235" /></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/linux/special-variables-in-the-bourne-shell-278.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/linux/special-variables-in-the-bourne-shell-278.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sequence for login</title>
		<link>http://henrydu.com/blog/how-to/linux/sequence-for-login-275.html</link>
		<comments>http://henrydu.com/blog/how-to/linux/sequence-for-login-275.html#comments</comments>
		<pubDate>Wed, 23 Sep 2009 18:31:33 +0000</pubDate>
		<dc:creator>hengdu</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://henrydu.com/blog/?p=275</guid>
		<description><![CDATA[Quick post for the sequence for login Unix (Linux) shell, since we may not know some procedures in details. The system is connected to a tty (user port) The kernel invokes the getty program A login prompt is displayed continuously monitoring the communication port for any type of input. Control is passed on by invoking [...]]]></description>
			<content:encoded><![CDATA[<p>Quick post for the sequence for login Unix (Linux) shell, since we may not know some procedures in details.</p>
<ol>
<li>The system is connected to a tty (user port)</li>
<li>The kernel invokes the getty program</li>
<li>A login prompt is displayed continuously monitoring the communication port for any type of input.</li>
<li>Control is passed on by invoking the program name found in the user&#8217;s entry in the password file.</li>
</ol>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://henrydu.com/blog/how-to/linux/sequence-for-login-275.html" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://henrydu.com/blog/how-to/linux/sequence-for-login-275.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

