macos - 如何使用 shell 命令从钥匙串(keychain)中删除密码?

标签 macos shell terminal automator

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

到目前为止我已经:

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

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

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

最佳答案

我明白了。我使用的命令是:

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

需要 sudo,因为此钥匙串(keychain)位于系统库中。 security 还包含更多删除和有用的命令,您可以指定如何在此命令中指示位置。


编辑:我在使用这个命令时遇到了一些麻烦,然后回去发现我可以使用另一个命令来完全不记得网络,如果我找到它的话,我之前会使用它。通过此选项,您可以使用适配器和网络设置选项执行大量操作。

这是我的最终脚本,它首先以 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

关于macos - 如何使用 shell 命令从钥匙串(keychain)中删除密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14432511/

相关文章:

bash - 如何从新终端中的程序获取返回码? (巴什 "Inception")

python - 在 Python 中解码 Mac OS 文本

linux - 收集 shell 中的所有选项

linux - 自动启动进程和服务

linux - 如何使用 Grep 命令查找文本文件中的特定值

java - 无法写入 pty - linux

Git shortlog 不在 Jenkins shell 中显示输出

swift - 代码在 Xcode 8 中不起作用

c++ - g++ 不链接第三方库

macos - 如何使用 `emacsclient` 命令双击 OS X 中的 EMACS 文件来打开它?