2013-01-21 97 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