使用luks加密碟掛載時要重覆打一堆指令,很花時間,因此我就寫了個腳本,省去了打這些指令的時間…
若你還不知怎樣創建一個加密碟的話,請參照我這篇文章,先使用指令建立好加密碟之後再回頭來看我這篇文章。
底下這個腳本能協助你快速的掛載、卸載加密碟,相信能省去你不少時間
系統與桌面環境建議:Linux mint、mate
使用前請先調整裡面的變數設定
檢視程式碼 BASH
#!/bin/bash #作者:夢見草 製作日期:2014/07/04 更新日期:2015/09/21 #系統需求:zenity、cryptsetup。該帳號必須要能使用sudo,並事先設好不問密碼。mkdir /mnt/luks #簡要說明:此為gui介面幫你掛載、卸載luks加密碟,需自行準備好加密碟和掛載路徑,掛載時會跳出視窗來詢問密碼,輸錯密碼會跳出提示視窗,靜待3秒後就可再次輸入密碼,若在這3秒內按下enter則會離開程式. ################################變數定義################### #請輸入你的加密碟所在位置 LUKS="/home/user/file.luks" #自動尋找一個未使用的loop #LOOP_DEV=$(sudo losetup -f) #若只掛一個加密碟用上面的指令容易出錯,因此改用下面的指令比較不容易出錯。 LOOP_DEV=/dev/loop0 #使用者帳號與群組 USER=user GROUP=user #設定加密碟要掛載的路徑 MOUNTPATH=/mnt/luks ################################變數定義################### CHOOSE=$(zenity --list --height=250 --text "請選擇你需要的功能:" --radiolist --column "功能" --column "說明" TRUE 1:掛載加密碟 FALSE 2:卸載加密碟|cut -d ':' -f 1) #底下是比較精簡的寫法 #CHOOSE=$(zenity --list --column "LUKS加密碟" "load:掛載加密碟" "unload:卸載加密碟"|cut -d ':' -f 1) case $CHOOSE in 1) sudo losetup $LOOP_DEV $LUKS PSWD=$(zenity --entry --title=LUKS --text=請輸入掛載密碼 --hide-text) echo -e "$PSWD\n" |sudo cryptsetup luksOpen $LOOP_DEV luks #底下的 until 是檢查密碼是否有輸錯誤, 輸錯密碼則 $? =\= 0 #因為必須要先執行過一次問密碼的動作,後面才能判斷回傳值是否輸入正確 until [ $? = 0 ]; do #若密碼輸錯,則重覆執行這個迴圈 PSWD=$(zenity --entry --title=LUKS --text=密碼輸錯了,請再次輸入掛載密碼 --hide-text) echo -e "$PSWD\n" |sudo cryptsetup luksOpen $LOOP_DEV luks #密碼輸錯則重覆跳出輸入視窗 if [ $? != 0 ] ; then zenity --error --title=密碼錯誤 '--text=3秒後重新輸入密碼!\n或按enter離開!' --timeout=3 fi done #底下是密碼輸對之後接著掛載的動作 sudo mount /dev/mapper/luks $MOUNTPATH sudo chown $USER.$GROUP $MOUNTPATH zenity --info --title=LUKS --text=加密碟掛載成功! --timeout=3 sleep 3 caja $MOUNTPATH ;; 2) #卸載加密碟 sudo umount $MOUNTPATH sudo cryptsetup luksClose /dev/mapper/luks sudo losetup -d /dev/loop0 zenity --info --text=已卸載加密碟 --timeout=3 ;; esac |
使用以上腳本之後,你可在桌面建立一個啟動圖示,方便你快速的執行此腳本
滑右鍵點桌面→新增啟動圖示→指令的部份請填 bash /home/user/luks.sh
意即你這個腳本的檔案名稱,前面再加一個bash
再搭配以下圖示,就很好用了