在OSX上无法使用sudo,出现sudo:unknown uid 501: who are you?的错误。

28
当我在终端中输入sudo <command>时,会收到sudo: unknown uid 501: who are you?的提示,当我输入su时,会收到su: who are you?的提示。
我认为我可能不小心改变了我的个人计算机上的超级用户权限。现在我无法使用sudo命令,并且我找不到任何有用的解决方案。我是否需要处理/etc/passwd文件?我能修改它吗?

也许可以点击屏幕左上角的苹果菜单,然后选择“系统偏好设置”,再选择“用户”,添加一个具有管理员权限的新用户,并登录该用户并进行更正。 - Mark Setchell
2个回答

46

FWIW - 我只需安装下载的自动更新(需要重新启动),问题就解决了。注销并重新登录无效。

似乎仅仅重启 iTerm2 即可解决问题,所以这可能是更好的起点。


我的用户在/etc/passwd中之前或之后都不存在,这只是好知道的。 - matt
37
我能够通过退出并重新启动已经运行了几周的iterm2来解决这个问题。 - Puneet Lamba
2
对我来说也是一样的。我已经有一两个星期没有重新启动iterm2了,我猜测可能是有些东西出了问题。我退出并重新启动它,然后composer更新正常。 - ramijames
尽管我重新启动了我的Mac,但我仍然遇到了相同的错误。所以我退出了iTerm标签并打开了一个新标签。检查后发现问题已经解决/正常工作。 :) 希望能帮助其他人! - c g
4
无需重新启动iTerm2:打开一个新会话(新选项卡)即可解决旧选项卡无法正常工作的问题。尽管如此,仍然不理解原因 :( - jobwat
它与环境变量XPC_FLAGS=0x2有关。请查看https://apple.stackexchange.com/a/329668/13061。 - jobwat

0

您是否已在计算机上启用了root用户?请按照以下步骤进行检查:

  1. 打开“系统偏好设置”。
  2. 点击“用户与群组”。
  3. 点击“单击锁以进行更改”,并输入管理员用户名和密码(或仅密码,如果当前用户是管理员)。
  4. 点击“登录选项”。
  5. 点击“网络账户服务器:加入”按钮。
  6. 点击“打开目录实用程序”。
  7. 在目录实用程序菜单中,点击“编辑”。
  8. 如果有一个菜单项显示为“禁用Root用户”,则表示您已启用root用户。
  9. 如果菜单项显示为“启用Root用户”,请点击“单击锁以进行更改”,并输入管理员用户名和密码(或仅密码,如果当前用户是管理员)。
  10. 选择“启用Root用户”。
  11. 设置root用户密码。它可以与管理员密码不同。

完成后,sudo和su应该能够使用root用户密码。


2
下降投票。启用root登录是一种安全风险,而sudo存在的部分原因是我们不必启用root登录。 - Marnen Laibow-Koser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接