V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
angelface
V2EX  ›  问与答

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

  •  
  •   angelface · Nov 14, 2013 · 7885 views
    This topic created in 4548 days ago, the information mentioned may be changed or developed.
    25 replies    1970-01-01 08:00:00 +08:00
    yuelang85
        1
    yuelang85  
       Nov 14, 2013
    sudo su?
    angelface
        2
    angelface  
    OP
       Nov 14, 2013
    @yuelang85 不行,试过了。我感脚好神奇。
    cdfmr
        3
    cdfmr  
       Nov 14, 2013
    sudo -s
    angelface
        4
    angelface  
    OP
       Nov 14, 2013
    @cdfmr sodu -s 和 su [输入正确的密码] 后一样,切换到/bin/sh 然后 提示符仍然是"$"并不是root的"#",这时甚至:cd /User/xxx/Downloads都会提示: “cd: Downloads/: Permission denied”
    angelface
        5
    angelface  
    OP
       Nov 14, 2013
    哪位大神遇到过这样的问题? 主要是没时间重装系统。
    yuelang85
        6
    yuelang85  
       Nov 14, 2013
    whoami?
    pfitseng
        7
    pfitseng  
       Nov 14, 2013 via Android
    su -
    dhysum
        8
    dhysum  
       Nov 14, 2013
    sudo su -
    angelface
        9
    angelface  
    OP
       Nov 14, 2013
    @pfitseng 不管用,
    @yuelang85 是root的
    angelface
        10
    angelface  
    OP
       Nov 14, 2013
    @dhysum sudo su - 这个也是一样的效果,

    其实是这样的 我原来一直是好好的, 只要执行su [输入密码]就可以了,只是升级完10.9才这样,
    angelface
        11
    angelface  
    OP
       Nov 14, 2013
    还有个奇怪的事情, 不知道你们遇到没, 我升级完10.9后, 登录的时候,有三个用户:1.System Administrator 2.我一直用的管理员账号 3.Guest User,第一个是升级后多出来的, 不知道是不是这个原因。
    yuelang85
        12
    yuelang85  
       Nov 14, 2013
    @angelface 如果是root的,那就说明你用户切换没问题。

    Guest User是正常的,不用理会,真要不爽,系统预置,用户与群组,可以关掉客人帐户
    zxy
        13
    zxy  
       Nov 14, 2013
    sudo su 输入密码, ok
    gihnius
        14
    gihnius  
       Nov 14, 2013
    sudo su 可以
    直接 su 不行了。
    有没有发现 purge 也要 root 权限了
    angelface
        15
    angelface  
    OP
       Nov 14, 2013
    @zxy
    @gihnius sudo su也是不行, 我另一台直接su就行, 不用sudo




    @yuelang85 whoami确实是root用户,但就是没有权限,提示符也是"$"
    ritksm
        16
    ritksm  
       Nov 14, 2013
    修复磁盘权限?
    angelface
        17
    angelface  
    OP
       Nov 14, 2013
    @ritksm 磁盘修复过了,但应该不是这个问题。
    faceair
        18
    faceair  
       Nov 14, 2013
    /etc/passwd里面是这样?
    root:x:0:0:root:/root:/bin/bash
    angelface
        19
    angelface  
    OP
       Nov 14, 2013
    @faceair
    root:*:0:0:System Administrator:/var/root:/bin/sh

    这个应该没问题
    angelface
        20
    angelface  
    OP
       Nov 14, 2013
    明天早上要是还搞不定, 就重装~
    yuelang85
        21
    yuelang85  
       Nov 14, 2013
    @angelface 提示符不是问题,这个是$PS1变量设置的。
    faceair
        22
    faceair  
       Nov 14, 2013
    @angelface /bin/bash != /bin/sh ,应该就是这个问题 你改了试下
    angelface
        23
    angelface  
    OP
       Nov 15, 2013
    @faceair 不是这个总是, osx 都是root到/bin/sh的,

    @yuelang85 嗯, 光是提示符确实不是总是,主要是, 我的权限同样也是没有,一操作就Permission Denied.
    angelface
        24
    angelface  
    OP
       Nov 15, 2013
    发现root的uid被改为了217 但/etc/passwd中还是0,只有通过id查看才发现是217,但ms这人问题无解了,要修改/etc/passwd需要root权限,但我现在没有root权限。。。
    angelface
        25
    angelface  
    OP
       Nov 15, 2013
    哈哈哈哈, 我太牛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的权限执行命令。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   999 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 20:13 · PVG 04:13 · LAX 13:13 · JFK 16:13
    ♥ Do have faith in what you're doing.