2014年1月11日 星期六

遠通駭客事件之我感

看到遠通最近被駭的事件,姑且不論是真有其事或是誤會一場,但讓我想到開發一個系統或是將系統外包,驗收時業主應該都是針對功能去驗收,不曉得是否會針對系統安全性去做驗收呢?承包商開發時是否也會自發地在程式或系統中多注意系統的漏洞、程式的漏洞?

之前修一門系統安全的課程,老師提及了很多關於系統安全、病毒、惡意程式等等的介紹,並且也講了一些案例讓我們了解這重要性,甚至當場示範連到某政府官網,在頁面上輸入一些特別的字串 (使用 SQL injection 的做法),結果網頁可以查到民眾的部份個資,當下那一刻真是讓我們大開眼界,而且也讓我意識到,寫程式不只是把功能做好就好了,一些疏忽的漏洞反而帶來更大的危害。

但是一般的程式撰寫的書,或是老師上課,都是教我們如何寫程式、如何把需要的功能寫出來,但是卻很少在教我們寫較安全的程式。

說到系統安全,我想起曾經念某所大學 (打馬賽克,請勿人肉),而校方有開給每位學生 Unix 帳號,可能一般大家也不大會去使用,頂多進去看看信,不過有次我就連進那台 Unix 主機,在一些路徑切換著,意外地在某路徑發現很神奇的 meta file ,我 vi 一看檔案內容,疑似存著改過密碼的 user 列表及密碼,然後我就偷偷地存起來。

當時那年代還在用電話撥接才能連上 Internet,而且是透過學校提供的帳號密碼才行,我無聊試試這些存下來的帳密,結果還真可以使用,我畢業後,學生帳號被刪除了,但是我還有這多組可以讓我繼續撥接。

說這次的經驗不是要說我多厲害,而且我也只是到一些路徑逛逛而已,並不高招,但是這樣容易洩漏重要資訊的做法,是否你我之間都會犯錯呢?

2014年1月10日 星期五

shell script 裡取絕對值

Last updated on Jan 10th, 2014 by Sam Lin <samlin35@gmail.com>


我臨時需要在 shell script 裡計算絕對值,經我參考一些網路上的文章與討論後,最後找到這樣的方法是可行的,寫成筆記並且跟大家分享。下面範例重點就在於 $price_down 這個變數後面使用 #- ,就可以將參數變成絕對值了。


My environment: Freebsd 9.2


$ cat abs_ex.sh
#!/bin/sh
htc2012=1300
htc2013=123
price_down=`expr $htc2013 - $htc2012`
echo price_down=$price_down
echo abs=${price_down#-}


$ ./abs_ex.sh
price_down=-1177
abs=1177

2014年1月6日 星期一

Clear dmesg in Freebsd

My environment: Freebsd 9.2


root@freebsd91:/root # sysctl kern.msgbuf_clear=1
kern.msgbuf_clear: 0 -> 0
root@freebsd91:/root # dmesg


root@freebsd91:/root #


Last updated on Jan 6th, 2014 by Sam Lin <samlin35@gmail.com>

2013年12月24日 星期二

configure 時缺少 ncurses

OS:ubuntu 13.10


有時在對套件做 configure 時會遇到如下訊息,即在系統裡少了 ncurses library。


configure: error: ncurses or ncursesw selected, but library not found (--without-ncurses to disable)


這時只要使用如下指令安裝 ncurses-dev 套件即可。


#apt-get install libncurses-dev


Dec 24th, 2013 by samlin35
Last Modified on Dec 24th, 2013

2013年10月1日 星期二

sh infinite loop

sh infinite loop

Oct 1th, 2013 by Chuan-Hsien Lin
Last Modified on Oct 1th, 2013

有時候我們在 unix-like 的環境底下,需要簡單重複某些動作,例如用在測試程式、或是檢查狀態等等,簡單的方法是使用 shell script 就可以做到這樣的無窮迴圈 (infinite loop),下面範例以 sh 為例,檔名取為 run.sh。

#!/bin/sh

while :
do
   echo "test"
   sleep 1
done

以上程式存檔之後,記得要改為可執行權限,使用 chmod +x run.sh 指令修改其權限。

然後在 command line 環境下執行 ./run.sh 即可。

執行結果如下,就會不停地重複 while 裡面的動作。

ingrasys:~# ./run.sh
test
test
test
test
test
test

...

2013年5月31日 星期五

顯示檔案中第幾行的內容

顯示檔案中第幾行的內容

May 31th, 2013 by Chuan-Hsien Lin
Last Modified on May 31th, 2013

有同事問我怎麼在 Linux 中顯示出檔案中的某一行,像這樣的功能使用 sed 來做是非常簡單地就可以辦到了,由以下的簡單的範例來說明用法。

[sam@sever ~]$ cat testfile
12345
abcdefghijkl
678901234
mnopqrstuvwxyz
[sam@sever ~]$ sed -n '2p' testfile
abcdefghijkl

在 testfile 這個檔案裡有四行文字,接著使用 sed -n '2p' testfile 可以將第二行的內容顯示出來。如果要顯示別行,就將 2 改成該行號即可。

2013年1月11日 星期五

Fedora 17 更改 host name

Fedora 17 更改 host name

Jan 11th, 2013 by samlin35

Environment:
    OS: Fedora 17 64bit
    ip address:  192.168.205.116 (by DHCP)
    netmask: 255.255.0.0
    hostname: testpc1
   
假設我們要將原 host name 是 testpc1 設定成 testpc2,步驟如下:

1. 使用 root 帳號。
$ su

2. 編輯 /etc/hosts,將 host name 是 testpc1 的字眼都改成 testpc2。我的 /etc/hosts 如下:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 testpc2
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 testpc2

3. 編輯 /etc/sysconfig/network,將裡頭的 HOSTNAME 指定成你要的 hostname。我的 /etc/sysconfig/network 如下:

NETWORKING=yes
HOSTNAME=testpc2

4. 使用 hostname 指令設定一次。

# hostname testpc2

5. 重新登入後,就會看到提示符號有正常顯示,使用 hostname 指令查看,也可看到已使用新的 hostname 了。

[sam@testpc2 ~]$
# hostname
testpc2

Fedora 17 切換 runlevel

Fedora 17 切換  runlevel

Jan 11th, 2013 by samlin35

如果要讓 Fedora 17 開機後就跑在文字模式 (Text Mode) 下的話,執行:
# ln -sf  /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

如果要跑在圖形模式 (Graphical Mode) 的話,執行:
# ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

以上動作記得使用 root 帳號來執行,不然會出現 Permission denied 的錯誤訊息。

另外,從 Fedora Documentation 可以知道 Fedora 現在定義的 Runlevel 如下,並且 level 2, level 4 已不再使用。

0 — Halt
1 — Single-user text mode
2 — Not used (user-definable)
3 — Full multi-user text mode
4 — Not used (user-definable)
5 — Full multi-user graphical mode (with an X-based login screen)
6 — Reboot

參考資料:

2009年11月19日 星期四

好閃的便當

將近中午,11 點左右,我跟另外兩個同事一起拿便當要去蒸,這已經是我們幾年來的例行公事,就在我們剛踏進茶水間要蒸便當時,突然間竄出了一個同事也來蒸便當,他平常都是訂便當的,怎突然間帶起便當來了,原來是最近剛同居的女友幫他準備的,嗚,好閃阿,他拿著便當盒穿越我們,經過我們身邊時,好像有股風吹了起來,看在我們這些阿宅眼裡,那便當好像有種高高至上的感覺,閃閃發亮,眼睛都快睜不開了。

2009年11月17日 星期二

白目買家

我最近新買了台傻瓜相機 Canon S90,所以想把手上的 Canon SX200 賣掉。

話說昨晚接到一通電話讓我喜出望外,是打來要跟我買相機的,於是昨晚就認真的找配件出來整理了一翻,一一的盤點無誤,內心有點忐忑不安,又幾分期待。

然後今天相約在某加樂福,等我們會面後,我拿出包裝來給買家看,結果他臉色一沉,原來他想買的是 Canon SX20,不是我這台 SX200,然後他一直說是我在二手買賣區貼文寫錯,我當然也不相信,因為我都用複製貼上的,已經貼過好多次了,怎可能手殘貼錯呢!明明就是他白目看錯吧!後來買家勉強把玩了一下我的相機,不過我知道他是不會買的,於是我跟他說,『如果不是你要的, 也沒關係啦。』想說也差不多該閃人了,買賣不成仁義在,也不用口出惡言罵他幾句白目!

結果我想說收拾一下要閃了,時間還早,還可以回公司加班趕東西,結果他好意的說要請我喝飲料,想說不喝白不喝,於是我們就在美食街坐下來聊天,聊了很多攝影方面的東西,其實我是還蠻想離開的,不過喝人家請的飲料,就陪他聊幾句也罷!大概聊了約半小時飲料都喝完後,我們就各自解散了,結束了這場鬧劇。

今天真的是遇到白目的買家了。