歡迎您光臨本站 註冊首頁

為 Linux 做一把 USB 「鑰匙」

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

感謝 upsuper 的投稿,原文這裡: http://blog.upsuper.org/make-an-usb-key-for-linux/

我曾經很早以前就在想,能不能將U盤作為登入我系統的驗證機制。當時的想法是,這樣比較有趣~不過後來發現另外一個重要的用途就是,防止在眾目睽睽之下輸入密碼……

這個問題提出后,郵件列表裡很快就有人告訴我,Linux 已經有一個現成的機制了,這就是 pam_usb。不過我在網上搜了半晌都沒搜到相關的中文資料,前幾天弄成了,就寫出來供大家參考~

其實來說,是很簡單的。首先,當然,要準備一個U盤~(廢話),然後安裝 pam_usb。在 Ubuntu 下的話,源里就有,可以輸入命令

sudo apt-get install pamusb-tools

直接安裝。當然如果你連終端也懶得打開,可以直接點擊這裡:安裝 pamusb-tools。當然,在後面的步驟中你終歸還是要打開終端的,所以還是先開了吧~這個東西目前暫時還沒什麼圖形界面的樣子(當然做一個相信也不難)。

另外,Fedora 源里有 pam_usb 包,Arch Linux 似乎在 AUR 里有,在 Gentoo 中似乎是被默認屏蔽的,可以通過下面指令安裝:

echo “sys-auth/pam_usb” >> /etc/portage/package.keywords
emerge -av “>=sys-auth/pam_usb-0.4.1″

其他的發行版也可以直接從他們的項目主頁下載源碼包編譯安裝~

安裝好了以後,首先插入你作為鑰匙的U盤,然後在終端中運行

  sudo pamusb-conf --add-device MyUSBDevice

其中的 MyUSBDevice 可以任意修改,只是一個標識符而已。接下來根據提示操作即可。如果你的電腦此時連接著超過一個U盤、移動硬碟,或者某個U盤、移動硬碟包含超過一個分區(就像我給U盤分了2個區),就會提示選擇安裝到哪裡。設置完確認保存到配置文件即可。

下面添加認證用戶,下面的命令是添加我為認證用戶的:

  sudo pamusb-conf --add-user upsuper

原教程裡面寫的是添加 root 我認為是沒有必要的,添加 sudoer 應該是已經足夠了的。這條命令幾乎不問什麼問題,直接就完成了……這樣以後在使用這把鑰匙的時候就可以不需要輸入相應用戶的密碼了。

最後最重要的一步,是編輯認證系統的配置文件。打開 /etc/pam.d/common-auth (對於 Gentoo 來說是 /etc/pam.d/system-auth),將下面這行插入到所有條目的前面:

auth sufficient pam_usb.so

現在你的 USB 鑰匙已經可以用了!現在,另外再打開一個終端,隨便 sudo 點什麼,然後你應該不會再看到輸入密碼的畫面,取而代之的是下面的東西:

* pam_usb v0.4.2
* Authentication request for user “upsuper” (sudo)
* Device “MyUSBDevice” is connected (good).
* Performing one time pad verification…
* Access granted.

然後運行成功了!不僅 sudo 可以驗證,包括 gksu 和登入框等等都已經可以使用這把鑰匙直接略過不需要輸入密碼了。

現在你已經成功的製作了一個屬於自己的 USB 鑰匙!

現在我們看看還有什麼地方可以繼續改進的……

我們注意到,無論我們是否連接了我們的鑰匙,以後 sudo 的時候都會出現那些討厭的提示,怎麼辦呢……?其實這完全也是可以解決的:打開 /etc/pamusb.conf 文件,我們發現這其實根本就是一個 XML 文件……在裡面的 <defaults> 標籤中間添加

<option name=”quiet”>true</option>

保存后就直接生效了~

除此之外,我們發現在這裡,我們的鑰匙和原來的密碼之間是一個替代的關係,如果你希望利用這個鑰匙附加上密碼提高安全性的話,可以將上面在 /etc/pam.d/common-auth 裡面加入的那行中的 sufficient 改成 required,如果你乾脆就不想再用密碼了,那就把密碼的那些刪掉,留下一個 required 的 pam_usb~

話說這還真是強大吶~不過用了這個以後,你這個USB鑰匙也得要好好保管鳥~不過其實對我來說最爽的無外乎以後在眾目睽睽之下不需要再手動輸入密碼啦~

[參考資料]

HOWTO: pam_usb login with USB memory stick – Ubuntu Forums
doc:quickstart [pam_usb]
doc:configuration [pam_usb]



[火星人 ] 為 Linux 做一把 USB 「鑰匙」已經有547次圍觀

http://coctec.com/docs/linux/show-post-65633.html