當 Shell Script 在執行時會運用到讀寫暫存檔案,使用固定的檔案名稱有可能會造成檔案複寫或是內容竊取攻擊,使用內建的指令來亂數產生暫存檔案,實踐更安全的執行環境。
指令介紹
mktemp [參數] [文件名稱]
參數介紹
- -q
- 執行時發生錯誤,不會顯示任何訊息。
- -d
- 建立目錄並非檔案。
- -p
- 指定臨時文所在目錄,未指定使用/tmp。
- -t
- 指定臨時文件名稱模板。
- [文件名稱]
- 文件名亂數部分必須是以XXX三個大寫的X為亂數填入的部分,最少為三個建議六個起跳。舉例來說: tmp.XXXX,X越多亂數長度越長。
使用方式
mktemp tmp.XXXX # 建立臨時文件
mktemp -d tmpXXXX #建立臨時資料夾
mktemp /var/tmp/tmp.XXXX # 在/var/tmp/ 建立臨時文件
mktemp CJK.XXXX #建立以 CJK 為開頭的臨時檔案
建議搭配Linux trap 一起使用,讓指令被退出時可以清除執行檔案。