檢查 Linux Kernel Module 驅動程式版本

要檢查 Linux 下 kernel module (驅動程式) 的版本, 可以用 modinfo 指令取得, modinfo 的指令語法, 只要在 modinfo 後面加上 module 名稱即可, 例如: # modinfo module-name 要知道 module 名稱, 需要用另一道指令 lsmod 即得, lsmod 會列出目前所有載入的 module, …


Shell Script 產生亂數

Shell Script 提供了 $RANDOM 變數,直接用 echo 印出或調用已經可以產生亂數。用 $RANDOM 產生的隨機數會在 0 – 32767 之間,而每次使用 $RANDOM 後,它便會被定義一個新的數值,以下是使用例子: $ echo $RANDOM 這樣便會印出一個隨機數。以上方法雖然簡單,但最大的問題是不能定義隨機數的長度,因為 $RANDOM 只會產生介乎 0 – 32767 之間的數值。要定義亂數的長度,可以用 awk 來做,例如:以上定義了產生 6 個位長度的亂數,介乎 100000 …

產生 /etc/shadow 格式的加密密碼

Linux 將系統帳號關於密碼的資訊儲存在檔案 /etc/shadow, 而密碼是經過加密。不論基於任何原因, 如果需要手動編輯 /etc/shadow 的密碼, 便需要產生一個與 /etc/shadow 使用相同加密方式的密碼。而且不用安裝其他工具, 用 Python 便可以產生這個加密密碼。在 shadow 內的加密密碼, 以下列格式儲存:$ID$SALT$ENCRYPTED上面的 $ID 是加密方式, $SALT 是一個最多 16 位的隨機字串, $ENCRYPTED 則是 password hash.其中 $ID 分別有以下幾種:$1 -> MD5 …


甚麼是 DNS Non-authoritative answer

用 nslookup 指令查詢域名的 ip 時,會有一行 “Non-authoritative answer”,例如這樣:這裡的 Non-authoritative answer 表示所查詢的 DNS (上面是 8.8.8.8),並不是原始的 DNS 紀錄來源,是由域名所設定的 DNS Server 取得資料。那麼甚麼時候不會出現 Non-authoritative answer 呢,就是直接向域名登記的 DNS 查詢,例如 google.com 使用的 DNS 是 ns1.google.com, 用以下指令查詢便不會出現 Non-authoritative …

擷取 Log 紀錄檔最後 60 分鐘紀錄

Linux 有很多不同種類的 Log 紀錄檔,很多時需要在 log 裡面找資料,但當 log 的體積越來越大時,要查看還真是很吃力。這時可以用不同的 Linux 指令配合使用,將 log 紀錄檔最後的資料抽出,抽出資料的時間可以按需要更改。例如 /var/log/message 預設紀錄檔的格式可以用以下指令:上面指令需要修改最後的檔案名稱,以及 “+%b %_d %H:%M” 這一組參數,需要配合 log 的日期時間格式。另一個例子是 log 裡面不是用一般的日期時間格式,像 QMail 是用 tai64n 格式儲存時間,需要用 tai64nlocal 轉換成普通時間格式,可以用以下指令擷取 /var/log/qmail/smtpd/current 最後 …

Wrapper Script – 替現有指令擴充功能

Wrapper Script 在 Unix Like 環境十分常見,它不會重新建立一個新的程式,而是會讀取 input 後加入所需的功能,再將 input 直接傳送給現有的指令。以下是 wrapper script 的簡單例子:以上 Wrapper Script 實際上沒有甚麼用途,它只是將輸入直接傳送給 /root/bin/my-script.sh,所以執行以上 Wrapper 跟執行 /root/bin/my-script.sh 是沒有分別,因為沒有加入任何新功能。如果有用過 QMail 的應該會編輯過 daemontools 的 run script, 這個 run script …

埠號 25, 465, 587 的分別

電郵伺服器會設定不同的埠號給 email client 作 relay 的用途,主要是埠號 25, 465 及 587, 以下是這些埠號的分別。Port 25Internet Assigned Numbers Authority (IANA) 把埠號 25 預留用作預設的 SMTP 埠號。但很多 ISP 避免客戶發送垃圾電郵,很多 ISP 將客戶的 port 25 封鎖,只允許客戶使用 ISP 提供的 …

檢查 SSL 憑證的網域

在建立 SSL 憑證時規劃好一點, 日後會省卻不少麻煩, 例如將不同憑證以域名命名, 或者像 Let’s Encrypt 一樣, 將憑證放到網址名稱的目錄.但如果建立憑證時沒有規劃好, 日後要檢視憑證的有效網址, 可以用 openssl 指令取得憑證的相關資訊, 以下指令可以取得憑證的資訊: # openssl x509 -in cert.pem -text -noout 只顯示 SSL 憑證的 CN, 可用以下指令: # openssl x509 …

grep 指令使用 or 及 and 查兩個條件以上

grep 指令是十分常用的字串搜索工具,可以對檔案或 pipe 輸入進行搜索,而 grep 指令也可以使用 or 或 and 對兩個以上條件搜索。OR以下幾種方法,也可以實現 or 搜索,會對兩種字串進行搜索,只要符合其中一個條件,即會印出那行的內容: $ grep ‘pattern1\|patten2’ file.txt $ grep -E ‘pattern1|pattern2’ file.txt $ egrep ‘pattern1|pattern2’ file.txt $ grep -e pattern1 -e …