Mac 锦囊 —— 误删除admin组之后

来源:互联网 发布:java 定义map 编辑:程序博客网 时间:2024/04/29 09:53

起因

手误,不小心删除了Macbook Air的admin用户组,一瞬间,所有用户包括root都失去了admin的权限,当然root还是root ^_^, 也是唯一的救命稻草。

解决方法

适用版本

  • 10.7 或者以上均可。

  • 以下的所有方法都基于Mac的SUM —— Single User Model模式, 即在开机时,按下cmd + s进入此模式。

忘记管理员密码

对于忘记密码的孩纸们,可以使用下面的方法新建一个用户,此方法安全有效,不需要担心资料被删除。原理嘛,就是删除apple的某个记录文件,让Mac以为这是一台新电脑,启动最开始的配置助手,新建一个用户,此时用户会被赋予管理员权限,当然,记得取一个和之前不一样的名字。

123
mount -uw /rm /var/db/.AppleSetupDonereboot

输入上述三行代码,即可新建一个管理员用户。

之后的做法,大家就知道了。。。

用户组admin损坏或者被删除

这种情况相对于上述情况,要棘手一些,因为admin组被删除了,所以即使是通过上述方法新建一个用户,同样也只会是standard的用户。。。

具体解决方法如下:

1234567891011121314151617
# 首先检查文件系统错误/sbin/fsck -fy# 如果没有问题,则挂载文件系统并加载opendirectorydmount -uw /launchctl load /System/Library/LaunchDaemons/com.apple.opendirectoryd.plist# 现在本地的node已经挂载,可以进行下面的操作重建admin组,并把root和your_user重新分配到admin组中dseditgroup -o create -i 80 admindscl . append /groups/admin GroupMembership rootdscl . append /groups/admin GroupMembership your_user#检查下,是否已经为root和your_user添加上了admin组dscl . read /groups/admin GroupMembership# 最后,重启进入就可以看到用户被加上了admin权限 ^_^reboot

另外

当在Single User Model下运行dscl的时候,可能会看到以下信息:

launchctl: Couldn't stat("/System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist"): No such file or directory nothing found to load

这个信息可以直接无视掉

后记

各种倒腾都是有代价的,童鞋们还是小心为妙啊!

参考资料

  • All users, including root, appear to have lost admin privileges
  • OS X Lion: Using dscl(1) in Single User mode
  • Resolve startup issues and perform disk maintenance with Disk Utility and fsck
  • Change Mac admin password without the disk
0 0
原创粉丝点击