升级完OSX 10.9后,执行su命令输入完密码后进入的是一个普通用户的shell,并不是root,以前一直是正常的,大家帮忙,看了/etc/pam.d/su没啥异常,/etc/passwd也正常,谢谢!

2013-11-14 15:31:43 +08:00
 angelface
7396 次点击
所在节点    问与答
25 条回复
yuelang85
2013-11-14 23:36:55 +08:00
@angelface 提示符不是问题,这个是$PS1变量设置的。
faceair
2013-11-14 23:37:22 +08:00
@angelface /bin/bash != /bin/sh ,应该就是这个问题 你改了试下
angelface
2013-11-15 07:39:48 +08:00
@faceair 不是这个总是, osx 都是root到/bin/sh的,

@yuelang85 嗯, 光是提示符确实不是总是,主要是, 我的权限同样也是没有,一操作就Permission Denied.
angelface
2013-11-15 11:51:05 +08:00
发现root的uid被改为了217 但/etc/passwd中还是0,只有通过id查看才发现是217,但ms这人问题无解了,要修改/etc/passwd需要root权限,但我现在没有root权限。。。
angelface
2013-11-15 22:27:55 +08:00
哈哈哈哈, 我太牛B了, 居然搞定了。

分享一下方法:

root的uid变成了217,但是编辑/etc/master.passwd需要root权限,但root现在是个普通用户了,是个死循环,执行:dscl . change '/Users/root' 'UniqueID' '217' '0'也不行, 会提示:<main> attribute status: eDSPermissionError
<dscl_cmd> DS Error: -14120 (eDSPermissionError),但是可以这样执行:
sudo -u '#0' dscl . change '/Users/root' 'UniqueID' '217' '0'就OK了,
至于'#0'别问我, 我也不知道是啥原理, 我就知道这个可以以uid为0的权限执行命令。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/89255

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX