Home » Posts tagged "bash"

Bash 裡處理 PID file 的方式...

看到「Age comparison in Bash for files and processes」後查了一些資料,如果在不使用外部程式處理的話,的確是多做了不少事情。

這是 Bash-ot 的說明:

file1 -ot file2
       True if file1 is older than file2, or if file2 exists and file1 does not.

而這是 test (也就是 [ 這隻程式) 對 -ot 的說明:

FILE1 -ot FILE2
       FILE1 is older than FILE2

多了檔案是否存在的檢查...

另外可以參考「What's the difference between [ and [[ in Bash?」這邊的說明,Bash 的 [[ 是 Bash 特有的加強版,而 [ 則是用系統的 test 運算。

用 Shell Script 寫的 Let's Encrypt Client

在找 Let's Encrypt 安裝方法時找到的專案:「letsencrypt/acme client implemented as a shell-script」。

整個專案用 bash 寫,用到的 dependency 都非常基本,「比較特別的」只有 curlopenssl,這兩個套件應該不是什麼問題... XD

沒有安裝問題 (因為只有一個 shell script 檔案),用起來也很簡單,執行速度也比官方快多了 (畢竟官方的考慮比較多),之後應該就會用這個吧... 另外自動化的部份也應該會用這個解決 :o

Bocker:用 bash 與 btrfs 疊出來的 Docker

Bocker 這個專案的標語是「Docker implemented in 100 lines of bash」。

有研究過 Docker 實作的人會了解到,最基本版的 Docker 其實最難的是那層可疊的 Filesystem,其他的主要是拿現成的東西出來包裝。

而 Bocker 就是把 btrfs 拿出來用,解決 Layered Filesystem 的問題。而週邊目前有些東西要自己設定而已,其實完成度不低?

相當打臉 XDDD

關於 Shellshock (Bash) 問題

因為 Bash 太多人用,找到安全漏洞的成本效益太高,看起來最近會有大量的人力跳進去 code review,接下來應該是 CVE 滿天飛,跟當初 OpenSSL 的情況類似。

目前建議是直接看維基百科的說明:「Shellshock (software bug)」,裡面直接列出了目前發現的 CVE 以及 attack vector。

會讓管理者想要抱頭痛哭,無止盡的 patch...

Bash 遠端執行安全漏洞

這讓人無言了,Bash 的遠端執行安全漏洞,CVE-2014-6271

GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which allows remote attackers to execute arbitrary code via a crafted environment, as demonstrated by vectors involving the ForceCommand feature in OpenSSH sshd, the mod_cgi and mod_cgid modules in the Apache HTTP Server, scripts executed by unspecified DHCP clients, and other situations in which setting the environment occurs across a privilege boundary from Bash execution.

可以在 oss-sec 上面看到說明「Re: CVE-2014-6271: remote code execution through bash」:

Debian and other GNU/Linux vendors plan to disclose a critical, remotely exploitable security vulnerability in bash this week, related to the processing of environment variables. Stephane Chazelas discovered it, and CVE-2014-6271 has been assigned to it.

透過環境變數打進去... Redhat 的「Bash specially-crafted environment variables code injection attack」這篇也給了不少例子。

Linux 下通常最常用的 shell 應該還是 Bash 吧?(雖然也看到不少人用 Zsh...)

然後 Twitter 上看到非常邪惡的 Google Hack:

大家可以自己加上 site: 去掃...

Defensive BASH Programming

2012 年的老文章了,不確定是 Zite 上看到,還是 Hacker News Daily 上看到的:「Defensive BASH Programming」。

不是給初學者看的文件,而是寫給對 shell script 有一定基礎的人。針對要怎麼樣才能寫出容易維護,而且問題又少的 code 所提出來的準則,但也未必適用於每一個人 (或是團體)。

這篇文章的好處是有說明為什麼這樣規範,重點在吸收這些想法。

更新 bash-completion 的位置...

前陣子升了 FreeBSD 上的 bash-completion 之後發現就失效了,翻了紀錄才發現是檔案從 /usr/local/etc/bash_completion 換到 /usr/local/share/bash-completion/bash-completion,所以引用的路徑要改...

過了一個月沒有 hostname auto completion 的日子...

Archives