注销挂钩在OS X 10.9中不起作用

时间:2014-08-19 17:31:25

标签: macos bash

我有一个简单的脚本我需要在注销时或关闭计算机时运行。该脚本只是从钥匙串中删除任何已保存的网络密码。

#!/bin/bash
#delete any saved network passwords
/usr/bin/security delete-generic-password -D "802.1X Password"

创建脚本并将其作为“cleanupnetwork.sh”保存在根目录中后,我运行了以下终端命令:

sudo chmod u+x cleanupnetwork.sh
sudo chmod 700 cleanupnetwork.sh
sudo /usr/bin/defaults write com.apple.loginwindow LogoutHook /cleanupnetwork.sh

当我退出并重新登录时,网络密码仍然在钥匙串中,但是如果我直接运行脚本,它会从登录钥匙串中删除密码。

我是脚本新手,所以我不确定为什么这不起作用。我怀疑某种权限或路径问题,但我不确定如何开始修复它。

我正在使用Mac OS X 10.9.4。

1 个答案:

答案 0 :(得分:0)

来自developer doc

  

注意:如果com.apple.loginwindow没有plist文件,则此方法   不管用。这个文件   (/var/root/Library/Preferences/com.apple.loginwindow.plist)没有   在用户更改登录窗口之前,在全新安装中存在   设置(例如打开快速用户切换)。

所以,

  • 尝试在“系统偏好设置”中启用快速用户切换。 (您可以在禁用之后禁用它,plist文件应保留在原位)。您可以使用
  • 进行检查
sudo ls -l /var/root/Library/Preferences/com.apple.loginwindow.plist
  • 仔细检查/path/to/cleanupnetwork.sh - 它真的在/