2008年11月12日 星期三

如何從MSN得知對方的IP位址

理論上要雙方開始p2p傳輸才會看到對方IP位址
不過事實上沒有這回事。一圖解千文
姬姐,既然妳已婚了,我就沒幫妳打馬賽克囉~

2008年11月10日 星期一

Hackers & Painters 書摘(一)

作者:Paul Graham
中文編譯:莊友欣、莊惠淳

第二章 駭客與畫家

人們似乎認為駭客與畫家是兩種完全不同的工作。駭客應該是冷靜、精確、講求方法;繪畫則是原始慾望的表達。事實上,駭客與畫家最為相像,在於他們都是創作者。就像作曲家、建築師、作家一樣,他們不是在研究,但是在試著創作美好事物時,他們也可能會發現新的技術。
衡量駭客真正想做的事情(設計完美的軟體)會困難很多。你需要有很好的設計感,才能判斷好得設計。唯一的外部測試,是時間。不幸的是,它可能比人的壽命還長。作家的評價需要一百年的時間才會趨於一致。你必須等到作家的朋友和支持者都過世才行。不過這算幸運的,流行時尚對繪畫的影響更甚於對駭客的影響。
靜態型別應該會是一個優秀概念,不過,我所認識的每一位駭客,都不用這種方式來撰寫程式。我需要一個可以隨意擦寫塗抹的程式語言,而不是讓語言要求我正襟危坐地捧著型別,非常禮貌地與嚴謹過時的編譯器對話。
在科學界的人都偷偷地相信,數學家比他們聰明。結果科學家傾向把研究結果弄成看起來像是數學。在物理學也許不是問題,但是擷取的科學本質月多,它本身就越來越成為一個問題。它會引誘著你去處理公式,而不是面對重要的問題。
因此,創作者大致都有一份只是為了賺錢做的工作(Day Jobs),以及另一份為了興趣而做的工作。這名詞是由在晚間表演的音樂教所提出的。
畫家會在身後留下作品的軌跡,使的後人得以觀察他們經由實做來學習的過程。當某一幅畫裡某個部份表現的特別好,通常可以在之前的作品中找到縮小版的類似形式。
另一個方式,是範例。對於畫家來說,博物館就是技術的圖書館。對駭客,就是開放原始碼。
多位畫家共同創作一幅畫時,通常是由大師畫主要部份,助手畫其他地方與背景,絕不會畫到別人的範圍上。我認為這也是協同軟體開發的正確模式。把專案分成好幾個模組,每一個模組都有明確的擁有者,並在彼此之間建立細心設計的介面,最好是以程式語言的方式銜接。
有同理心,從別人的觀點看事情,才能創作偉大的作品。大部分的偉大的繪畫作品,都是以人為主體,因為人們總是對人有興趣。
因此,程式應該是為了讓人們閱讀而編寫,只是剛好能給機器執行而已。


2008年11月1日 星期六

低空pass的CCNA

怎麼跟想像的不一樣
進考場才看到『總分1000,Pass的標準是825分』
這也太....假設平均配分,48題能犯錯的空間只有4題。

結果一番波折後,成績單出來,848分。

這叫做低空Pass的CCNA。

2008年10月26日 星期日

MS線上文件共享服務 Offi ce Live Workspace

線上文件共享服務 Offi ce Live Workspace

《PChome十月號》文=陳雯伶

從 去年開始半公開測試的O f f i c eLive Workspace(簡稱OLW),於今年九月推出了中文版。OLW能上傳並分享Office文件、與他人共享工作平臺、拓展Office應用的三大訴 求。OLW可於線上檢視Word、Excel、PowerPoint檔案,並支援Outlook的行事曆同步化。不過,線上儲存空間為500MB, 每個檔案也有25MB的容量限制,且必須在電腦端的Offi ce中編輯

連結Offi ce的橋樑

微軟發表Office 2007時,並沒有提供網路存取文件的服務,然而,在Zoho網站推出了Office 2007網路文件存取外掛工具,加上Google的「Docs &Spreadsheets」服務工具也允許用戶在瀏覽器當中分享及編輯文件,身為Office龍頭老大的微軟,便也開始計畫提供線上分文件檔的 服務,於是OLW就此誕生。OLW是一項免費的服務,提供共享檔案的平臺,目前只要註冊後便能使用,也算是連接Office軟體的橋樑,相容2003及 2007版本的Wo r d 、E x c e l 、P o w e r P o i n t , 並可在Windows XP SP2、2003Server或Vista作業系統上執行,但前提是瀏覽器需IE 6Firefox 2以上版本。

登入Office Live Workspace的主畫面後,可見左側條例的文件清單,右側則是用來顯示所選取的工作區(Workspace)或文件。

11種文件模式範本

進入OLW的工作區裡,可見多達11種的文件範本,包括學習工作區、論文工作品、專案工作區等等,根據不同的模式,內建了多種制式的文件範 本,例如會議工作品就包含了會議筆記、會議籌備、出席者清單等等。且透過「共用」的功能,可設定族群共同瀏覽、編輯、註解這份工作文件,當然亦提供版本、 登入的管理機制,維護文件的安全及正確性。至於儲存容量上,預計可保存500個工作空間,每個空間下可以包括500個文件檔,而每個文件則有25MB的上 限。

OLW提供多達11種的文件範本,套裝的文件組合概念,方便又省時。

編輯線上文件

OLW本身沒有線上編輯功能, 需使用電腦上的Office來編輯文件。安裝「Office Live Update1.2」,可讓OLW與MSOffice程式相互連結,並有多份文件上傳功能、直接存取OLW上的檔案等功能。在登入OLW時,可見相關的安 裝提示。若以MSOffice 2007為例,在安裝完畢後,於選單可見「SaveOffice Live」、「Openfrom Offi ce Live」選項,這也表示能夠在Office 2007裡,直接把修改後的文件存到OLW上。雖然與Google Docs的完全免費相比,使用OLW的前提,是必需要先有MSOffice,但透過OLW可達到多人共享檔案的目的,也提供了相當的便利性。

2008年10月17日 星期五

油耗圖示表



Google試算表做的,是我的Cygnus的里程與加油紀錄計算的
出現的peek應該是因為加油沒加滿(沒有貫徹每次加滿)的結果
可以從藍色加油容積與紅色的peek看出關聯性
總平均值是45 KM/L

2008年10月4日 星期六

wink教學動畫製作

原文:wink,在linux上擷取動態畫面

用synaptic或aptitude apt-get都可以裝

需要sudo vim /usr/bin/wink

加入
export GTK_IM_MODULE=XIM
export LANG=en_GB.UTF-8
即可執行

2008年10月3日 星期五

2008年10月2日 星期四

GNU command無捷徑

就像嬰兒學說話,開始時只是單字(ls ps cd),久了就會用介係詞(pipe >)變成句子,等年紀稍長就會組成文章(shellscript)。
本來剛要把特定程式的連結程式庫移動到chroot環境裡。以前是笨笨的用ldd配合剪貼簿組成搬移的命令,但是年紀長大後,就會開始了解其他的說法
ldd $command | sed '替換命令組'| awk '{print $NF}' |sort 檔案列表 | uniq | 檔案列表

sed 修改出目的檔案列表

paste 檔案列表 目的列表 | sed 's/^/cp /g'> 執行檔
不過不小心按錯,把cp打成mv,頓時系統理很多基礎函式庫就亂了,ls cd 都當場陣亡。

這就是*nix的好處,他絕對不會阻止你作任何蠢事,但是最後你要把核爆的輻射塵統統舔乾淨。

因為只是函式庫移位,導致cp mv也不能呼叫libc6.so,解決辦法很多,一種是另一個系統開機,掛入檔案系統後搬回原位。不過這裡我沒有辦法碰到機器,近期不會,至少幾個月內。於是我想想ldconfig,使用ldconfig把剛剛搬走的重新動態連結回來快取。這時候系統就恢復成為可用的狀態。當然是趁這時把剛剛mv的執行檔對調跑一遍。差一點莫名其妙搞掉遠端機器....

還好還有ldconfig.....

2008年10月1日 星期三

Tunnel GRE Encapulate

Source : [O'relly] : Linux Server Hacks #51

一、需要安裝iproute2套件

二、載入gre核心模組

modprobe ip_gre

或將ip_gre加入/etc/modules使其開機自動載入

三、假設網路拓樸如下:

GRE

在RouterA

#ip tunnel add tunnel0 mode gre remote 26.13.15.239 local 203.14.26.9 ttl 255
#ip addr add 10.1.1.254 dev tunnel0
#ip link set tunnel0 up
#ip route add 10.1.1.0/24 dev tunnel0

RouterB

#ip tunnel add tunnel0 mode gre remote 203.14.26.9 local 26.13.15.239 ttl 255
#ip addr add 10.1.2.254 dev tunnel0
#ip link set tunnel0 up
#ip route add 10.1.2.0/24 dev tunnel0

最後一條指令ip route add 是linux對核心路由表加入靜態路由的指令
如果要linux主機成為router可以參考GNU Zebra 來跑routing protocol

四、撤銷通道

#ip link set tunnel0 down
#ip tunnel del tunnel0

TIPS 修改sh prompt

[tcsh] /etc/csh.cshrc
set prompt = "%U%n%u@%m:%/[%{\033[31m%}%T%{\033[0m%}]\n\!%#"

內嵌\n換行符號,可以讓一長串路徑也不會擋住視線
格式符合scp的需要,可以剪貼到scp命令
[bash] /etc/bash.bashrc
PS1="\u@\h:\w[\T]\n\\!\$"

2008年9月30日 星期二

Tips mount utf8 vfat

最近把blogger左邊文章列表改為每週列表,激勵自己灌水的天性。同時順便把之前小小linux box的故事重新從blacktea用windows live writer重新上載一次。
今天沒有太多新奇的好料,所以就勉強寫個湊數。
如果你用mount的指令在文字模式下掛載隨身碟的vfat來跟windows交流檔案,有時候遇到檔名亂掉的時候,亂碼最是討厭了。試著加入 -o utf8 來看看。

2008年9月29日 星期一

lzma壓縮也滿暴力的

沒看錯,本來快5G的資料夾壓縮起來備份,變成2G。
更扯的,已經用GHOST 8高度壓縮的8GGHO檔,再壓居然還跑出8%...
lzma,你好樣的

2008年9月28日 星期日

Photoshop-ish Keyboard Shortcuts for The Gimp 2.2

Photoshop-ish Keyboard Shortcuts for The Gimp 2.2

wget http://epierce.freeshell.org/gimp/ps-menurc > $HOME/.gimp-2.?/menurc

功能有限,不如試試GIMP

0929:不好!CMYK勒?~啥,那是外掛?!

2008年9月27日 星期六

2008年9月26日 星期五

PenmountLPC + udev + Xorg.conf

FlyBook惡搞日誌 009

PenmountLPC是德國工程師用反向工程寫出驅動程式的。現在還提供deb安裝套件包喔~

問題是,隨著你開機的配備不同,比如說多隻滑鼠之類,它的設備檔就會跑掉,這樣X啟動時就不會對應到正確的dev。因此就需要udev

遙想起咖啡店還在4GB硬碟快爆炸的年代,站長們對於安裝新硬碟要MAKEDEV都心存忌憚,深怕一個不小心就會因為弄丟資料而遭到眾人唾棄,這樣大學剩下的三年會很難過。

udev系統的誕生除了有裝置配合自動產生,其中一個功能就是可以依據關鍵字來自動為設備檔產生連結。

這個penmountlpc.ko可以放進/etc/modules下來自行載入

[   35.212000] input: PenmountLPC TouchScreen as /class/input/input4
[   35.212000] penmountlpc.c: init finished

但是每次產生的可能是input3,有外接滑鼠可能是input4,非開機載入還有可能是78,偏偏xorg.conf裡面一定要描寫到這段,不然就會沒作用。還好ubuntu用udev有個功能可以用hotplug製造symlink。

原理很複雜,方法卻很簡單,首先確認

udevinfo -a -p /sys/class/input/event4

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/class/input/input4/event4':
    KERNEL=="event4"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{dev}=="13:68"

  looking at parent device '/class/input/input4':
    KERNELS=="input4"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{modalias}=="input:b0010v0000p0000e0000-e0,1,3,k110,ra0,1,mlsfw"
    ATTRS{uniq}==""
    ATTRS{phys}==""
   ATTRS{name}=="PenmountLPC TouchScreen"

選定關鍵字後,我是直接修改/etc/udev/rules.d/65-persistent-input.rules

因為這檔裡面開頭說input?都要跳到最後一行,所以我直接多加一行

KERNEL=="event?", SUBSYSTEMS=="input", ATTR{dev}=="13:6?", ATTRS{name}=="PenmountLPC TouchScreen", SYMLINK+="input/penmountlpc"

然後對應的xorg.conf改為

Section "InputDevice"
    Identifier "touchscreen"
    Driver "evtouch"
    Option "Device" "/dev/input/penmountlpc"
    Option "DeviceName" "touchscreen"
        Option        "MinX"        "42"
        Option        "MinY"        "48"
        Option        "MaxX"        "988"
        Option        "MaxY"        "992"
        Option        "x0"        "-31"
        Option        "y0"        "-1"
        Option        "x1"        "-22"
        Option        "y1"        "-3"
        Option        "x2"        "-1"
        Option        "y2"        "-5"
        Option        "x3"        "-43"
        Option        "y3"        "0"
        Option        "x4"        "-15"
        Option        "y4"        "0"
        Option        "x5"        "1"
        Option        "y5"        "-1"
        Option        "x6"        "-3"
        Option        "y6"        "1"
        Option        "x7"        "-5"
        Option        "y7"        "2"
        Option        "x8"        "2"
        Option        "y8"        "2"
#       Option "Calibrate" "1"
    Option "ReportingMode" "Raw"
    option  "TapTimer" "500"
    option  "LongTouchTimer" "800"
    option  "MoveLimit" "30"
    Option  "maybetapped_action" "click"
    Option  "maybetapped_button" "1"
    option  "longtouch_action" "click"
    option  "longtouch_button" "3"
    option  "oneandhalftap_action" "click"
    option  "oneandhalftap_button" "2" 
       Option "Emulate3Buttons"
        Option "Emulate3Timeout" "50"
        Option "SendCoreEvents" "On"
EndSection

Section "InputDevice"
    Identifier "dummy"
    Driver "void"
    Option "Device" "/dev/input/mice"
EndSection

這樣每次x都會自動抓到正確的裝置,而不需要手動修改xorg.conf。

2008年9月25日 星期四

how into linux serial console

不如題

玩server到一定程度時,就會拔掉PC顯示卡,改用Serial Console做為主控台。再過不久,就會想要連windows 超級終端機也丟掉。

於是經過一番尋找howto 後,找到可以用的工具大概有三種:
screen || minicom || kermit

最後我想用C-kermit

安裝沒問題,不贅述

理論上要寫個rc檔控制資源,不過我是寫它的特殊kerbang執行

#!/usr/bin/kermit +
set modem type none
set line /dev/ttyUSB0
set speed \%1
set serial 8N1
set flow-control none
if fail end 1
set carrier-watch off
if success connect

然後又回到前面做的openbox sshto選單

這次傳入的參數是連線的bps,因為筆電上沒有第二種COM可以讓你胡亂連(雖然我的有內建,但是它是焊死與GSM MODEM一起的)。因此加入 if [ -r /dev/ttyUSB0]就可以在插上這個usb外接com port時出現選單可以開啟連線。讚吧~

只要把它組合成

xterm -e kerbang $speed

這樣當通訊結束,xterm也自動結束,比超級終端機方便。

不過這還不是kermit的僅有,它的kerbang最主要都是做檔案傳輸、同步用的,還可以撥數據機、抓https網頁。裡面還有expect的語法,獎白話一點,可以把帳號密碼也寫死進去,遇到什麼主機提示符號,就送出什麼「通關秘語」。這條線路基本上沒人竊聽,除非你被裝了監視器。

老歸老 換個心會更好

基本上這篇絕對不是討論啥變心的。接續前面wine的嘗試,裝上photoshop 4後,從點下安裝後,半分鐘完成安裝。三秒啟動載入完畢,連我自己都嚇一跳。Photoshop4已經是很老的朋友啦,自從Win2000後註定它的「必」升級路線為photoshop7。不過其實除了介面越吃越重的資源,工具越來越懶之外,核心功能沒有太多改變。因此這次在WINE上復活,跑起來比起CS差很多。

不過Illustrator就沒有這麼簡單了,CS就是沒辦法順利啟動,即使把設定檔從windows移過來,依然失敗。能運作的版本我試的另一版是Illustrator9,功能正常。一樣也變成飛快的出現,嗨!好久不見啊,感謝radio學長的惡魔訓練,把功能快速鍵烙在手指上真的是一門絕世奇學,讓你想到啥的時候手指就在按了。

現在windows系統裡唯一一個令我捨不得離開的原因,是Windows Live Writer。最主要的原因是,在Blogger上面原生的網頁介面如果要寫上幾段程式碼,很多都會被擋掉。但是這些跳脫或轉換的工作給Windows live Writer去做,倒是很順。或許要因此養一個Virtual BOX來使用portable WLW。

2008年9月24日 星期三

再次安裝IEs4Linux 2.99.1

怪哉?前幾天在gusty上面用自編的wine + ie4linux,一點抱怨都沒有就上了,這次hardy卻不行
參考星球論壇作個patch就好了
diff -r -bBiwu ies4linux-2.99.0/lib/functions.sh ies4linux/lib/functions.sh
--- ies4linux-2.99.0/lib/functions.sh 2007-11-26 14:28:16.000000000 +0800
+++ ies4linux/lib/functions.sh 2007-12-17 09:40:30.000000000 +0800
@@ -95,7 +95,7 @@

local useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
if [ "$HASWGET" = "1" ]; then
- pid=$(wget -q -b -t 1 -T 5 -U "$useragent" -o /dev/null $URL $WGETFLAGS -O "$file" | sed -e 's/[^0-9]//g')
+ pid=$(LANG=C wget -q -b -t 1 -T 5 -U "$useragent" -o /dev/null $URL $WGETFLAGS -O "$file" | sed -e 's/[^0-9]//g')
elif [ "$HASCURL" = "1" ]; then
( curl -s -A "$useragent" "$URL" -o "$file" & )
pid="$(pidof curl)"
diff -r -bBiwu ies4linux-2.99.0/lib/messages.txt ies4linux/lib/messages.txt
--- ies4linux-2.99.0/lib/messages.txt 2007-11-26 14:28:16.000000000 +0800
+++ ies4linux/lib/messages.txt 2007-12-17 09:12:15.000000000 +0800
@@ -16,7 +16,7 @@
de . deDE DE
bg bg bgBG EN-US
nl . nlNL NL
-tw . zhTW TW
+zh tw zhTW TW
tr . trTR TR
ja . jaJP JA
da . daDK DA

不過安裝到最後,桌面圖示也沒幫忙放上來....
只好自己手動加上來作個捷徑,圖片路徑在$HOME/.ie4linux/下面

還可以參考這裡修改讓IE使用微軟正黑體
不過其實將字型ln過去windows/Fonts/就有點效果了
再來記上一點,IE6第一次執行很正常,但我第二次叫他
卻姍姍來遲,害我殺死他好幾次(suspend狀態)
原來他上網去找更新元件....
從網際網路選項關掉自動尋找更新元件後,就又快又順了

2008年9月23日 星期二

Wine 1.0真是個硬漢必備的好物

聽說wine出了第一個stable很久了。這次在ubuntu 7.10上裝到的是wine 0.9.4,好嘔啊~

男子漢大丈夫頂天立地,於是我就手動下載wine來用用(看到這裡,會不會有讀者問說:酒用網路購物不是違法嗎?還可以下載啊?)。

WINE Is Not Emulator, WINE Is a Nice Engineer.

如果你把linux企鵝灌點酒,它就會硬上windows,只是有點微軟。據說有部份重量級程式還跑的不錯。

我選tarball安裝,因為版本比較新。第一次configure失敗了,因為它說「沒有X window」。

我你個ooxx,現在不就正在x嗎?打開文件,發現還有貼心的指令稿可以下載來「自動安裝必須的套件」,金剛溫啊~

果然再跑一次configure就過了,make depend && make && sudo make install後,拜google大神把中文字型先設定好,接下來就神奇了。

我裝了Office 2003。

又裝了Dreamwaever 2004 MX。跑了一下,覺得順便把Fireworks叫進來放炮一下好,這樣一家親比較熱鬧了。

之前裝過Papago 7,這次先不要裝好了,跟她不熟。

這些跑起來,還沒遇到問題。

我還在考慮要不要裝Photoshop 7,還是4最讚最順手?Illustrator 10據AppDB說也沒有問題,不過這台螢幕過小,cpu效能不好,這樣甘好?還是不要好了,這太瘋狂了。不如叫那個雙核心的去跑,反正它三心二意,然後用X forward來個遠端即時操作,豈不是更瘋狂~

接下來還要研究怎樣把這些鳥程式塞進openbox menu,好忙喔~

2008年9月21日 星期日

openbox右鍵選單 ssh to (2)

第二部份就真的很痛苦了,最主要的原因是shell script對於pipe後送進陣列裡的元素有時候不是全有就是全無,如果想要一個元素裡有空白又有斷行,基本上是被允許的,但是卻不一定是你想要的。

#!/bin/sh

gen_menu() {
    echo "<item label=\""$1"\">"
    echo -n '<action name="Execute"><execute>'
    echo -n " xterm -e ssh"
    echo -n    "`echo $2 | tr : " " `"
    echo "</execute></action>"
    echo "</item>"
}

##以上單純只是生出選單的副程式

echo "<openbox_pipe_menu>"

##將上個步驟產生的檔案用grep產生出選單上的名字,其實是可以自己手動修改設定檔變成 root@somewhere之類文字也不會影響下面命令參數。

host=( `grep "# ssh to " $HOME/.ssh/cast | sed -e 's/\#\ ssh\ to\ //g' | xargs` )

##取出命令參數,但是因為xargs遇到空白與斷行就會開始拆參數,所以先用sed把空白替換為:,這樣就沒問題了;而最後上面產出的命令參數時再用tr把:換回空白,解決了這個問題。其實第二行參數也可以任意的改,除了使用:做分隔的部份參數。有個解,就是用︿#,。等之類字元。不過等它發生了再來改寫就好了。

action=( `grep -v \# $HOME/.ssh/cast | sed 's/\ /:/g' | xargs -d \n` )
for (( i=0 ; i < ${#host[*]} ; i++ ))
do
    gen_menu ${host[$i]} ${action[$i]}
done

echo '</openbox_pipe_menu>'

我將它放在這裡

openbox右鍵選單 ssh to (1)

繼上次用schell script做出 XRandR旋轉螢幕的OPENBOX 選單後,這次想來個右鍵直接ssh個xterm直通認識的伺服器,首先檢查技術面,指令上xterm -e後面不可以用"" ''等字元把命令包起來,這是UNIX POWER TOOLs一書所提醒的"特殊注意事項"。

我想把程式拆成兩部份,一部分從/etc/hosts擷取出已經知道的hostname並且生成設定檔。第二部分就是址負責生出openbox pipe menu的script

第一部份任務很簡單

#!/bin/sh
debug=false
#debug=ture

# check the ssh_key2
if [ -z $HOME/.ssh/id_rsa ] ; then
    echo 'You should take RSA key for quicker login'
    echo 'Now I lead you to make one.'
    (/usr/bin/ssh-keygen -t rsa)
fi

# check ssh_agent
if [ `ps ax | grep ssh-agent | wc -l` -gt 0 ] ; then
    echo 'Found SSH-Agent is running.'
else
    echo 'Please man ssh-agent for more advantage.'
fi

# list the knownhost

##因為我只想通ipv4(去他的ipv6),所以我先將所有數字抽掉,那麼所有的ipv4位址就會變成...,然後把這些行最後一欄抽出來供作ssh的target(如果沒有短名,就會抽整條Domain name)。

##但是這樣會有個問題,這樣產出的送進pipe後傳入knownhosts矩陣裡,矩陣裡只會有一個元素。解決辦法就是多個xargs把參數"一次一個"傳進矩陣裡,就解決了。為了個xargs可是我想了好幾天才想出來的... = =b

knownhosts=( `sed 's/[:0-9:]//g' /etc/hosts | grep "\.\.\." |  awk '{ print $NF}' | xargs` )
if [ ! $debug ]; then
    echo ${knownhosts[@]}
fi

# creat ~/.ssh/cast
touch /tmp/cast$$
for host in ${knownhosts[*]}
do
    echo "# ssh to $host" >> /tmp/cast$$
    echo " -l $LOGNAME -p 22 -X $host " >> /tmp/cast$$
done

cat << TOPICCAST > $HOME/.ssh/cast
##    please keep this file format like this every 2 line    ##
##                                ##
##    "# ssh to" HOSTNAME                    ##
##    -l USERNAME -p PORT HOSTNAME                 ##
##                                ##
##    or any options comes after ssh command in 2nd line    ##
TOPICCAST

grep -v localhost /tmp/cast$$ >> $HOME/.ssh/cast

2008年9月20日 星期六

自製Grub Splash

GRUB儼然已經變成我喜愛的第二個開機管理程式,排名在第一句話就是中文的SPFDISK之後。GRUB還有個特異功能可以在開機畫面背景放入splash作為美化底圖。製造這底圖的方法其實滿簡單的。

通常你會想玩這一步,一定是玩linux到一定時間。所以假設你的系統有GIMP。在此就用GIMP處理完所有的圖形工作。

用GIMP打開圖檔後,scale image為640 x 480的解析度。然後將色彩模式改為index color索引色彩,並且限定使用14色。因此一開始找相片時就可以挑選單色mono tone或dualtone的,比較不會差太遠。然後save as xpm檔案格式。

接下來把它們放到/boot/grub/下,用gzip壓起來,如果有多個圖檔,可以在bash借用for迴圈簡單完成

for xpm in *.xpm

do gzip $xpm

done

然後在grub.conf裡面寫上

splashimage= (hd0,0)/boot/grub/yourfilename.xpm.gz

我個人是很懶,所以我偷吃步是

ls *.xpm.gz >> grub.conf && vi /boot/grub/grub.conf

這樣剛剛一次轉完的好幾張圖檔名都送進去了

FreeBSD無linux watch

原因很簡單,因為BSD命令watch是用來snoop tty 裝置的,換句話說,是可以用來監視其他登入終端機的工具。linux watch是用來把傳入的指令依照設定間隔時間反覆執行的,這個可以用個超簡單shell script立刻搞定

#!/bin/sh
while true
do
eval $@
sleep 2
clear
done

這樣的無窮迴圈就會一直跑指令到天荒地老

不過既然有雛型,何不乾脆一點直接把命令「客制化」盛好拿去吃

比如說

檢查下載檔案大小 'ls -lh $1'

觀察檔案系統會不會爆 'df -iH'

或是你想的到的組合

2008年9月13日 星期六

Openbox Daulhead XRandR pipemenus

自己試寫的,主要原因是小筆電用X window臨時要外接螢幕,真的很不方便。有xrandr指令後還是不甚方便,如果在windows要旋轉螢幕,通常都是從顯示器內容就可以改了。我也很想有這樣的功能,所以就練習寫一下。

可是經過測試,發現有時螢幕旋轉後,滑鼠指標就不見了~慘啊~
有時候滑過xterm就會再度出現蹤跡。我還試過將旋轉螢幕與正常螢幕左右放置,結果滑鼠位移與按鍵就對應不起來了。你可以移動到按鈕上,但是沒有辦法按。

基本上就是這樣囉。

2008年9月9日 星期二

[轉錄]在ubuntu 7.04 實現自動登入X(autologin)不使用gdm或kdm

原文出處: 在ubuntu 7.04 實現自動登入X(autologin)不使用gdm或kdm
動作指令如下:
echo "#"\!"/bin/sh" > /usr/bin/autologin
echo "/bin/login -f $USER" >
> /usr/bin/autologin
chmod
+x /usr/bin/autologin

sed -e 's/getty/getty -n -l \/usr\/bin\/autologin/g' /etc/event.d/tty1 > /var/tmp/tty1.$$; mv -f /var/tmp/tty1.$$ /etc/event.d/tty1

cat << STARTX >> ~/.bash_profile
if [ -z "\$DISPLAY" ] && [ \$(tty) == /dev/tty1 ]; then
startx
fi
STARTX

sed 's/\$HOME\/.serverauth.\$\$/\$XAUTHORITY/g' /usr/bin/startx > /var/tmp/startx.$$ ; mv -f /var/tmp/startx.$$ /usr/bin/startx

PS: Xsession檔案因為我使用的是openbox所以與論壇寫法不同。

2008年9月7日 星期日

在X window 用xrandr改變螢幕解析度或雙螢幕組合

筆電最大的優勢就是移動力,一般都可以有外接螢幕作簡報。習慣的人都知道可以從顯示器內容作雙螢幕輸出到投影機,或是擁有兩個桌面。但是到了X window,就會不知從何做起。
答案就是xrandr
以前要在X設定好雙螢幕,才可以使用兩個螢幕。寫法是在xorg.conf寫上兩個device(即使只有一張顯示卡、但是有兩個頭),組成兩個screen放在serverlayout。
現在走一遭xrandr,就可以省去修改多個xorg.conf的功夫。首先試試這
xrandr -q
就可以看到現在X螢幕的組態,以我的筆電而言
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2304 x 1624
VGA-0 connected 1280x1024+0+0 (normal left inverted right) 376mm x 301mm
1280x1024 60.0*+ 75.0 59.9
DVI-0 disconnected (normal left inverted right)
LVDS connected (normal left inverted right)
1024x600 60.0 +
S-video disconnected (normal left inverted right)

這時候如果我想要關掉筆電上的小螢幕,就只要
xrandr --output LVDS --off
如果我想要雙螢幕組合,首先要確認你有這樣大的虛擬桌面可能,就是-q時回報的最大值。修改最大值的方法就是修改xorg.conf裡面display增加Virtual選項。然後就可以雙螢幕排列
首先把兩個螢幕內容同步
xrandr --output LVDS --same-as --output VGA-0
然後假設把小螢幕擺在右方為第二個螢幕
xrandr --output LVDS --right-of --output VGA-0
然後就可以看到雙螢幕組態出現了

我自己進階實驗一個組態卻遭遇到挫敗,概念上是這樣的,左螢幕為1280x1024,右邊為旋轉後的。600x1024。組態過程是這樣的,首先要把1024x600旋轉後放左邊,1280x1024先作left在調到right。但是詭異的事情發生了。旋轉後的螢幕可以顯示,也可以roll over,但是不能click!!
問題應該是出現在X server的層級,沒有想過有人亂旋轉。事實上這問題在Windows也是一樣。螢幕反轉後,會發現觸控筆「所見非所點」。

開始考慮寫個openbox pipemenu來改變螢幕解析度或組態。

2008年8月31日 星期日

Dirty Hack - Firefox3

要在輕型系統上改用Firefox 3.0 ,但是ubuntu的aptitude抓下來的總是怪怪的。乾脆 remove掉舊的firefox 2.0.16,然後直接下載firefox 3.0.1.tbz。沒想到解開後一看,所有的.so都在firefox目錄下,直接執行firefox就跑起來了。於是我把firefox搬到PATH裡的/usr/local/bin下面firefox-3.0底下,然後
ln /usr/local/bin/firefox-3.0/firefox /usr/local/bin/firefox
沒想到這樣直接輸入firefox竟然不能執行
我想firefox應該是shell script,偷看一下
head -5 /usr/local/bin/firefox
果然看到#!/bin/sh
稍微看一下,發現有個moz_libdir的變數,於是我直接覆寫為
moz_libdir=/usr/local/bin/firefox-3.0
就可以了

firefox3與2的比較,雖然啟動花了長一點時間,不過後面瀏覽經驗比較順暢。

補記一點,因為我安裝scim-chewing比較dirty一點,加上是從startx啟動,所以在/etc/X11/xinit/xinitrc加上
export LANG='zh_TW.UTF-8'
export XMODIFIERS="@im=SCIM"
export LC_ALL=zh_TW.UTF-8
export GTK_IM_MODULE="scim"
scim -f x11 -d
這樣一般程式啟動後就會記得找scim當預設的輸入法,就可以打中文了。

2008年8月26日 星期二

gentoo 漫遊1

自從熟了FreeBSD Make後,真的不是很習慣rpm與apt。不過事實擺在眼前。所以只好挑個靠近的Gentoo Portage來試試。
因為筆電的CPU比較虛弱,所以就想利用distcc來搞「外包」。
本來是用ubuntu 8.04來玩玩distcc,裝跟設定是很快,但是gcc版本不同。Gentoo 2007.0是GCC 4.1,Ubuntu是4.2。那就沒搞頭了。
好吧,那把桌機也改裝Gentoo 2008.0。使用live cd的感覺是:有編個GTK的圖形介面不錯,但是因為一開始太相信自動安裝了,居然沒發現它沒有裝grub !!!
沒辦法了,只好在從光碟摸黑進去,自己攪個grub-install,無奈七月晚上多怪事,grub-install老是抓不到硬碟,重開個機就好了(一陣涼風~)
再來要裝個distcc,發現python要update,一跑python-updater就跑出一堆問題。扣掉lzma-utils rpm套件的鳥問題外,還有samba + cups也搞很久,起因只是avahi想要多個USE="dnsreponders-compat"。
等到distcc start後,問題依舊.....時間一秒一秒的過去,但是dustccd依舊不動如山。
靠!
看來桌面環境還是不要編譯的好。

2008年7月18日 星期五

Can't Get You Out Of My Head

<<Kylie Minogue>>英國流行樂壇史上可以說最受歡迎的女歌手,從八十年代末一直走紅至二十一世紀,當今在英國只有Madonna可與之相比。



從Light Years後都是走妖艷的風格。這裡面美女開著藍寶基尼的樣子還真是令人難以形容(內心OS:這一定是CG!!不要被她美貌迷惑)。

不過早期的凱莉卻是鄰家女孩(個子不高、捲髮、年紀還有點大是吧?)的模樣,其實我個人還比較欣賞(不小心說出自己的審美觀是吧?),不過不是說後面轉變不好啦。



成名曲I should be so lucky (in love),就可一窺端倪。年紀大一點的好處就是作品多(這樣說到底是加分還是扣分?),唱情歌還會順便教法文喔。再貼一個 What kind of fool (do you take me for)

整體說起來Kylie事業也是大起大落。前幾年Kylie事業正返回大紅時,卻發現乳癌。去年癒後復出,有wiki參考。最新作品X - wow



阿不是說有乳癌?怎麼好像沒啥改變?(你到底在期待啥啊?現代醫學很進步的,不要再迷戀小胸部唄)

2008年7月16日 星期三

從Ubuntu安裝Gentoo 筆記2

第一篇只是簡單的塞了些東西在make.conf,根據手冊,編譯環境的設定還有兩個東西:

ls -FGg /etc/make.profile

檢查所使用的profile連結到哪種類型的預設,可以自行重新連結到喜歡的定義。

less /usr/portage/profiles/use.desc

將喜歡的USE標籤加入make.conf。

現在進入編譯核心的階段,你可以自行下載和新的版本程式碼,如


wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.1.tar.bz2

然後解開到/usr/src,並完成/usr/src/linux的習慣連結後,用土法煉鋼編譯核心即可

make menuconfig && make && make modules_install

cp .config /boot/config-2.6.17.1
cp System.map /boot/System.map-2.6.17.1
cp arch/i386/boot/bzImage /boot/kernel-2.6.17.1

這樣就完成核心編譯,並且將核心檔案塞進/boot。然後要決定哪些modules要在開機時載入:

find /lib/modules// -type f -iname ‘*.o’ -or -iname ‘*.ko’
vi /etc/modules.autoload.d/kernel-2.6

設定開機後網路應由何種方式連線,通常是用dhcp取得

vi /etc/conf.d/net

config_eth0=( “dhcp” )
dhcp_eth0=”nodns nontp nonis”

emerge dhcpcd

接下來將這網路啟動加入內定啟動script

rc-update add net.eth0 default

修改系統的語系,要手動方式加入zh_TW:UTF-8

grep zh /usr/share/i18n/SUPPORTED >> /etc/locale.gen
vi /etc/locale.gen && locale-gen

接著修改建盤定義與時區

vi /etc/conf.d/keymaps
vi /etc/conf.d/clock

補完系統一些基礎服務(syslogd 與 cron)
emerge syslog-ng && rc-update add syslog-ng default
emerge vixie-cron && rc-update add vixie-cron default

接下來是決定能不能開機的重點

emerge grub && vi boot/grub/grub.conf

手冊中有使用genkernel的寫法(就是多了initramfs參數),如果是土法煉鋼,倒也就免了,因為是LPIC LEVEL1的內容,所以就不贅述,請man吧。

grep -v rootfs /proc/mounts | tee /etc/mtab
grub-install –no-floppy /dev/sdc1
vi /boot/grub/device.map

手冊上是這樣grub-install(當然詳細裝置不一定是/dev/sdc1,也有可能是sdb) ,只是最後我把/boot/device.map重新修改成目標機器上的預想狀況(當然不是用sd,而是hda),這樣才有信心開好機。

最後一個動作,設定密碼。不設定也可以啦,只是要進入單人模式重設就很蠢了(自己駭自己的機器,而且單純只是因為自己一時忘記)。

最後,離開,依序卸載所有檔案系統,就可以準備第一次開機了。

從Ubuntu作為操作環境chroot安裝Gentoo雖然不能使用mirrorselect工具,但是卻可以在熟悉的環境下完成工作,不失為Live CD外一種好方法。

從Ubuntu安裝Gentoo 筆記1

基本上這篇不算什麼新發明,因為hack手冊就有講解如何從Knoppix安裝Gentoo。所以這只是從knoppix換成Ubuntu。

首先可以做的第零步是關掉系統的swap。因為像我會要這樣做,是因為我想用較快的雙核心電腦安裝好gentoo後,移動到較慢的電腦上運作,當然 節省中間的編譯時間是主要目的,但卻不是唯一手段。因為也可以在Ubuntu安裝DISTCC來作遠端編譯,不過相信我,有時候匯流排的速度也是瓶頸。

首先我們確認安裝的硬碟的空間與位址大小,基本上既然都在ubuntu的GNOME圖形介面下,就乾脆使用gparted來切割。我個人是因為打算 先在硬碟上安裝到一定程度後,使用dd複製到CF卡上替代硬碟,所以切割時是以CF卡大小為依歸。切完畢後,swapon掛載新系統的swap。然後

mkdir /mnt/gentoo

將新gentoo系統先放在這個掛載點,後面後續的作業因為gentoo安裝的環境配的編輯器是nanom,基本上我比較習慣vi了,所以之前我會 開兩個終端機來作業,一個負責作chroot的環境,一個負責作vi編輯設定檔,不過現在可以在chroot後立刻emerge vim,這樣就有順手的vi可以用了。

安裝是從Stage3開始的,所以直接下載Stage3的tarball

wget ftp://ftp.twaren.net/Linux/Gentoo/releases/x86/2007.0/stages/stage3-x86-2007.0.tar.bz2
tar xjvf stage3-x86-2007.0.tar.bz2

然後大部分系統雛型就出現了,接著抓最新portage

wget ftp://ftp.twaren.net/Linux/Gentoo/snapshots/portage-2008`date %M%D`.tar.bz2
tar xjvf portage-2008xxxx.tar.bz2 -C /mnt/gentoo/usr

掛載gentoo系統的proc與dev

mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev

原則上本來還有設定時間,不過這樣是在已經運行的ubuntu上,故不用多做date的動作。不過可以將反解設定先搬過去

cat /etc/resolv.conf > /mnt/gentoo/etc/resolv.conf

然後我們就可以準備住進去新環境,順便粉刷新監獄的牆壁

chroot /mnt/gentoo /bin/bash
env-update && source /etc/profile
PS1=”(chroot)$PS1″
ln -s /usr/share/zoneinfo/ROC /etc/localtime
emerge –sync
emerge vim

接下來設定新系統的make.conf

vietc/make.conf

cat << MAKECONF
# Please consult /etc/make.conf.example for a more detailed example.
# http://gentoo-wiki.com/Safe_Cflags#Transmeta_Crusoe
HOST=”i686-pc-linux-gnu”
CFLAGS=”-march=i686 -Os -mmmx -pipe -fomit-frame-pointer”
# -O2 -mtune=i686 -pipe”
CXXFLAGS=”${CFLAGS}”
GENTOO_MIRRORS=”ftp://ftp.twaren.net/Linux/Gentoo/”
ACCEPT_KEYWORDS=”~x86″
#SYNC=”rsync://rsync.gentoo.org/gentoo-portage”
#MAKEOPTS=”-j2″
MAKEOPTS=”-j5″

MAKECONF

比較詭異的是明明目的機器是Crusoe的CPU,但是因為現在是用ubuntu的焢土豆,所以使用-j5的參數來壓榨雙核心的編譯能力。然而移動到新環境後沒有兩顆心怎麼辦?基本上這就要靠distccd了。在ubuntu安裝distcc方法很簡單

aptitude install distcc
vi /etc/default/distcc.conf
/etc/ini.d/distccd start

2008年4月10日 星期四

快樂牛第三次服役紀錄

Mon Apr  7 00:29:03 2008
─────────────────────────────────────

※ 引述《IceKimo (一片冰心)》之銘言:
> 又被我重新組裝啟動的快樂牛
> 這次選擇的是懶人維護的xubuntu
> CPU : AMD K6-3 400
> RAM : 256 MB ECC RAM

IEs4linux 在linux + wine下使用IE

喜歡用linux上網最大的問題 就是fu*Kin ActiveX
因為Firefox不支援ACTIVEX,因為不安全。
一個可以幫你清除硬碟裡病毒的技術也可以同時幫你安裝木馬。
偏偏世界上就是有很多人擁抱ActiveX不放,尤其是某些政府網站。
因此現實是:你仍然需要ie。所以就出現ie4Linux 這好物。

2008年4月1日 星期二

Autologin 自動登入 ( with C )

是有兩種作法,分別是:
HOWTO: Autologin and Autostart XFCE (just pushing power button)

[轉錄] 在ubuntu 7.04 實現自動登入X (autologin)不使用gdm或kdm

 

第一種方法是暴力的做了一個自動登入執行檔,第二個是利用原來的機制。

我是先到/usr/src底下製造出一個autologin.c

int main() {
execlp( "login", "login", "-f", "your_user_name", 0);
}

然後用gcc編一下

gcc -o autologin autologin.c

產生出來的autologin執行檔(喔,當然x權限是要開的啦)放到好地方,比如/usr/sbin。接著修改開機的/etc/inittab(或/etc/event.d/tty1)

1:2345:respawn:/sbin/getty -n -l /usr/local/sbin/autologin 38400 tty1

讓每次init在開啟tty1的終端機時,順便登入指定的帳號。接下來可以在個人的.bash_profile加入

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
startxfce4
fi

這樣一開機,init就會踩到香蕉皮,然後一路滑下樓梯到xfce環境(或是你單純只想要startx,然後配合~/.xinitrc選擇wm)

第二種方法則是以shell script方式寫autologin

#! /bin/sh
/bin/login -f your_user_name

剩下的改法只是大同小異(版本差異),改天有空來試試看其他版本的linux是不是也可以這樣搞。

2008年3月14日 星期五

完整備份Cafe BBS

以前都是在crontab裡面放個shell script執行每月備份,不過備份的時間都是挑每月四號凌晨四點人少的時候,直接對/home/bbs整個tar czf起來,不過這次想要把整個程式徹底關掉(使用者趕出門)然後再備份(謎之音:您多慮了,沒有人這時候亂搞)。所以就要殺掉bbsd這程式,最近越來越迷戀長指令了。是男人都知道,屌,就是越長越好啊~

ps -ax | grep bbsd | cut -c1-5 | xargs kill

 

因為bbsd會跑出很多分身,所以乾脆直接找出(grep)他們的pid,然後擷取出前面數字(因為排版會填空白對齊,所以cut -d" "無效),用xargs餵給kill,一行指令內殺光所有bbsd,然後咖啡店就倒了。

不過這樣還有幾個standalone的程式還在醉生夢死,所以要單獨一槍一個幹掉他們。主要就是gemd、bpop3、bguard、camera、account、xchat,還好啦,也可以研發一顆銀子彈一槍幹掉所有程式,核心就是

grep bbs

因為程式都是在/home/bbs下面。哈哈!

接下來備份用tar就可以了,此時系統其實就跟單人系統沒有二樣,你可以擁有幾乎全部效能來壓縮。做完備份的tar檔案當然不可以留在主機裡,要拷到遠端的另一台主機,或是用燒錄機備份出來,不然這是哪門子掩耳盜鈴的備份工作啊!要拷檔案有cp指令,不過我們這裡不用這個指令。我簡介一下ssh的子系統scp,secure copy。大家都很熟悉cp source target這個語法,scp其實也沒太大差別,只是有個語法user@hostname:directory,所以可以從本機下

scp ./source_file remote_user@hostname:home_directory

或是從遠端主機下達

scp bak_user@bak_host:path_to_backup_file .

如果ssh的 port不是內定的22,用前置-P port_num URL 來說明用哪個port進入該主機,額外有價值的參數是

-4 強制使用ipv4
-v 列印出很多觀賞性質的進度

然後當成功打開ssh的連線,就會問你密碼,只要你完成ssh連接,就會看到拷貝進度,完成後自動斷線。

至於恢復bbs運作其實沒啥了不起,找到/home/bbs/bin/bbsd激活一下,然後切換成bbs的身份,對camera電擊一下,bbs又恢復心跳了。不然還有終極絕招:其實crontab與script都寫好了,reboot就可以了(不過這樣就遜掉了)。

不過我說啊,沒事不要放一大堆情書在別人的硬碟裡面好嗎?你泡馬子我又沒有分,還要幫你備份保管情書,有沒有道義啊?是不是兄弟啊?不過這是玩笑話,純粹是因為這是DMA66的硬碟,所以tar起來超慢的牢騷。

2008年3月10日 星期一

BlackTea完成後誌

創建一個網誌不難,就像是天堂路一樣充滿血與淚。但是維護與管理技巧卻勝過創建。灌個軟體是很簡單,但是能夠妥善的組合運用上長長久久,那就真的不簡單了。所以當創建成功後,這個日誌才是重點。

首篇先發:如何用rssh創建一個chroot的sftp環境

sftp + chroot (by rssh)

對於apache的應用上,有個很大的幫手ftp。不管你想要編修網頁,或是上傳檔案,你一定需要ftp來幫上這個大忙。但是ftp實在是很不安全的通訊方式,最好是改成採用ssh的子系統:sftp。

sftp是包含在ssh通訊中的一個ftp類介面,不同於於傳統ftp的不只是不開啟port 21/20傳輸資料,更重要的是它過程都用ssh 包裝起來,具有防止竊聽的基本能力,而且對防火牆設定上,你不需要多開port 21/20,而只需要打開port 22。

不過sftp連線進入系統後,使用者就有如進入家一樣,依照本身的權限可以摸到檔案系統裡的任何東西,包含其他人沒設定好權限的電子郵件,如果他有意願而且知道在哪裡。所以這需要另一個技術,chroot。chroot基本上就是良深打造一個「貴賓室」,讓貴賓一進門的時候就待在接待中心,沒有後門通到後面的工地去。在這個chroot環境中,被限制住的使用者所用的/根目錄就不是主機本系統的/,而有可能是/home/foo之類的目錄。這樣使用者就無法超出這個chroot環境去看到他不該看到的東西。要完成這件事,你可以選擇rssh。

解釋完基本概念,首先我們就來安裝rssh

cd /usr/ports/shells/rssh ; make install

然後你就安裝完了rssh,不過接下來就需要靠自己。基本上要先修改/urs/local/etc/rssh.conf,你可以研讀裡面的設定。你可以把所有使用者統統引導到你想要的chroot path底下去,也可以讓不同使用者摸到不同的區段,有如瞎子摸象一般。以我來說,我希望有一個$user可以存取apache的網站,這樣讓我的Dreamweaver可以直接編輯網頁。但是我不希望$user離開/usr/local/www/apache22這個目錄去閒逛。很顯然我的$chroot_path就是/usr/local/www/apache22。

首先你要新增一使用者$user,家目錄設定隨意($chroot_path),shell一定要指定為rssh。

接下來確認$user在rssh.conf裡面是否有確定的設定,以及群組的設定(如加入www群組)。然後我們就要進入蓋碉堡的階段,要製造出一個貴賓室,裡面剛好夠執行sftp。

cd $chroot_path
mkdir -p usr/bin usr/libexec usr/local/libexec usr/lib lib libexec bin dev etc
cp /usr/bin/scp usr/bin/
cp /usr/libexec/sftp-server  usr/libexec/
cp /usr/local/libexec/rssh_chroot_helper  usr/local/libexec/

搬好了基本程式以後,千萬不要忘記程式的函式庫。為了確認這點,所以我們要用ldd來確認

ldd /usr/bin/scp
ldd /usr/bin/sftp

得到的結論就是

cp /usr/lib/libssh.so.3 /usr/lib/libgssapi.so.8 /usr/lib/libkrb5.so.8
/usr/lib/libasn1.so.8 /usr/lib/libcom_err.so.3 /usr/lib/libroken.so.8
usr/lib/
cp /lib/libcrypt.so.3 /lib/libcrypto.so.4 /lib/libz.so.3 /lib/libc.so.6
/lib/libmd.so.3 lib/

然後繼續複製重要的輔助

cp /libexec/ld-elf.so.1 libexec/
cp /bin/sh bin/

接著幫這個chroot環境製造出/dev這個檔案系統,不然在裡面執行的程式將會沒有stdin、stderr這種超基礎建設。

echo "none $chroot_path devfs   rw 0 0" >> /etc/fstab
echo "devfs_set_rulesets="$chroot_path/dev=devfsrules_jail"" >> /etc/rc.conf

不過在本機的例子,要注意的是因為blacktea本身就已經是個被chroot過的jail,在裡面又在疊一層chroot,所以在fstab裡面你所寫的參數傳遞給mount時,就會出現「認知落差」。這時候你要在fstab寫出完整的、真實的路徑才能成功掛載devfs。

然後我們要幫這個環境製造出一個保全的密碼檔。方法不難:

grep $user /etc/passwd etc/passwd
grep $user /etc/master.passwd etc/passwd

pwd_mkdb -d $chroot_path/etc
$chroot_path/etc/master.passwd

這樣製造出只有一個使用者的密碼檔(呵!裡面沒有牽拖到其他任何使用者,所以失竊的結果就是只有一個人倒楣)。測試的方法就是從別機器用sftp $user@$host ,就可以看看這個chroot有沒有囚著自己。

不過上述的方法有個缺點,就是如果你make world 升級後,有可能產生程式的連結不同步。所以要手動的再次複製函式庫。解決的辦法就是寫個script 吧!

附記述一點,如果你要讓Dreamweaver使用sftp連線方式,你還要修改/etc/ssh/ssd_config 這個設定檔,將PasswordAuthentication yes。這樣就可以用Dreamwaever來吸下整個網站回本機編輯啦!

還有一個用法,如果你覺得Gallery2的上傳方式有檔案大小的限制,也可以使用上述方法建立一個專門帳號及chroot到一個"dropzone",然後到Gallery2介面裡設定,就可以直接抓各種支援格式的檔案到Gallery裡面。

2008年3月5日 星期三

FlyBook惡搞日誌005

現在來到對硬體加強的時候了。基本上這台Flybook對於硬體的惡搞程度絕對不低於一般正常架構。因此對於各項硬體的驅動是一場混戰。它的強項觸控螢幕沒有驅動、第二強項滑鼠除了是XY相反(在2.6版的核心),所以有另類選擇:外接一隻usb滑鼠。

不過這場戰爭不是我的,因為已經有第一滴血了。更甚者還出現了wiki,未免.....
http://gentoo-wiki.com/HARDWARE_Dialogue_Flybook

2008年3月4日 星期二

FlyBook惡搞日誌004

能用firefox上網以後,最先要做的除了安裝Mouse Gestures滑鼠手勢、Right Encoding右鍵改變網頁編碼的add-ons以外,最重要的是要灌flash player。不然很多「現代化」網頁都很喜歡在門口擺個flash動畫,然後skip做在動畫裡...是打算讓沒有flash player的瀏覽器不要進網站就對了。

2008年3月2日 星期日

FlyBook惡搞日誌003

windows與linux雙系統的一個問題,就是linux等UNIX系統喜歡把硬體時鐘設定為UTC,但是Windows喜歡主機板上映體時間就是該時區的時間。這樣會造成當Windows校正時間後(以台灣為例,會認為慢了八小時),回到Linux就會變成再加快八小時。如果發生這種回到未來的問題,unix將會發生一些詭異的問題,比如軟體編譯失敗。不過這也不是不治之症,第一種解決方法是將校正時間、將ntpclock、ntpdate加入啟動群組、開機腳本。第二種是Windows新增個機碼,就可以解決這問題了。

2008年3月1日 星期六

FlyBook惡搞日誌002

安裝完Windows XP,接下來就是安裝Xubuntu的時刻了。我的選擇是用Xubuntu 7.10 alter CD作為安裝媒介,同時一開使只安裝Command Line System。

FlyBook惡搞日誌 001

身為一個現代化的電腦玩家,沒有laptop是很奇怪的一件事。不過當年買筆電時心智未開,不認為效能就是一切,所以做了有點錯誤的選擇:
Dialogue FlyBook A33iG-Tri-b

江川科技當年作A33i時,最令人折服的就是觸控螢幕的變身,整體唯一的缺點,就是選用Transmeta Crusoe TM5800的處理器。省電固然好,但是爆慢令人受不了。

2008年2月18日 星期一

檸檬紅茶開發三部曲

終於來到了檸檬紅茶的最後一部(謎之音:你可以寫外傳啊~),經過跌跌撞撞的過程,可以用四個字形容:「電光火石」。電腦裡面資料丟光光、使用者惱火、管理的麻瓜中了石化術。

人云三折肱成良醫,所以選在2007年底來個大破壞,並且啟用Cafe4 Lagacy Project 的料件作為硬體升級之用。是的,繼咖啡四首部曲的小惡搞後,這次要把她整到她媽媽都認不出來。