2013-01-21 93 views
2

我想創建一個shell腳本,通過創建一個網絡連接到我的macbook pro上隱藏的無線網絡。但是,我只想在想要連接到該網絡時阻止機場自動連接,因此我必須從鑰匙串中刪除網絡密碼。如何用shell命令從鑰匙串中刪除密碼?

到目前爲止,我有:

networksetup -setairportnetwork en1 $ssid $networkpassword 
networksetup -removepreferredwirelessnetwork en1 $ssid 

林也知道,在OSX 10.7 security命令可以修改鑰匙串。

無論如何,如果有人能幫助我,我將不勝感激。如果它有效,我也願意使用蘋果或其他東西。謝謝。

+0

您應該將解決方案作爲答案發布,而不是將其編輯到問題中。 – Barmar

回答

1

我想通了。我使用的命令是:

sudo security delete-generic-password -l $ssid "/Library/Keychains/System.keychain" 

需要sudo,因爲此鑰匙串位於系統庫中。 security還包含更多的刪除和有用的命令,您可以指定如何在此命令中指示位置。


編輯:我在使用此命令一些麻煩回去,得知我可以用另一個命令不記得了這些,如果我發現了它,我以前使用過的網絡。有了這個選項,您可以使用適配器以及networksetup選項來完成豐富的任務。

這是我的最終腳本,首先以root身份運行。那麼它會改變系統偏好以不記住新的網絡。然後它斷開任何當前的網絡。然後它添加新的網絡。最後,它使系統記住新的wifi網絡。

sudo -i 
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport prefs RememberRecentNetworks=NO 
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -Z 
networksetup -setairportnetwork en1 $ssid $password 
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport prefs RememberRecentNetworks=YES