【问题标题】:How to delete a password from keychain with a shell command?如何使用 shell 命令从钥匙串中删除密码?
【发布时间】:2013-01-04 03:30:14
【问题描述】:

我想制作一个 shell 脚本,通过创建网络连接到我的 macbook pro 上的隐藏无线网络。但是,我只想在需要时连接到该网络,并且为了防止机场自动连接,我必须从钥匙串中删除网络密码。

到目前为止我有:

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

我还知道,在 OSX 10.7 中,security 命令可以修改钥匙串。

无论如何,如果有人能给我任何帮助,我将不胜感激。如果可行,我也愿意使用applescript或其他东西。谢谢你。

【问题讨论】:

  • 您应该发布您的解决方案作为答案,而不是将其编辑到问题中。

标签: macos shell terminal automator


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 2014-06-04
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多