2012-01-26 50 views
0

我使用命令行中的Mac OS X上的bash我會問我的腳本:如何在系統中用bash保存信息?

Enter your password? 
> 
Do you want to save it and do not ask this more? 

的密碼是要解壓的文件。要做到這一點,它總是必須輸入,但我希望它只能輸入一次。

我可以很容易地將它保存在文本文件中,但這太明顯了。

所以我想將它保存在系統中。 Windows有「Windows註冊表」。在Mac OS X(或Unix)中是否有類似的系統可以保存,並且不會丟失?

或者有另一種方法來保存密碼,它會更安全嗎?我知道如果有人用調試模式運行腳本(顯示命令行是如何創建的),他將很容易找到密碼,但他必須得到計算機,所以是一種物理安全。

+0

只是一個想法:使用某種可以在shell腳本中訪問的密鑰環。鑰匙圈必須首先由坐在箱子前面的用戶解鎖,因此它應該是安全的。 –

+3

這有點麻煩,但[這篇博客文章](http://blogs.developerforce.com/developer-relations/2011/11/using-keychain-for-secure-text-on-os-x.html )解釋瞭如何使用腳本中的Mac OS X鑰匙串。 – Chewie

回答

0

你可以這樣做系統密碼的存儲方式:使用純文本文件,但存儲校驗和而不是純文本密碼。用戶無法訪問該文件是最好的,但即使是這樣,要取消校驗和也不是那麼容易。假設您將密碼讀入變量password。然後,你可以做一些像echo "$password" | sha1sum - > password_file。然後在下次登錄時,通過相同的命令運行用戶提供的密碼並比較結果。通過這種方式,您可以檢查他們是否輸入了正確的密碼,而不用以明文形式存儲密碼。

0

要麼使用你的操作系統的鑰匙圈(OSX有這樣的東西),要麼用純文本存儲它。當你不是的時候,不要假裝你是安全的。如果你不能安全地存放東西,那麼將它們存放在明顯的位置,這樣用戶就不會有虛假的安全感。