我是 Mac OS X 上的管理员,并且启用了 root 用户。当我尝试使用终端而不输入 sudo 时,它似乎无法识别我的管理员权限,但如果我输入 sudo 并输入密码,它就可以正常工作。
我也尝试过在 /etc/sudoers 文件中手动授予 sudo 权限,但仍然没有成功。
通过 NPM 运行安装,我得到的是:“npm ERR!请尝试以 root/管理员身份再次运行此命令。”
这是为什么?我该如何解决?
答案1
这是 OS X 中的标准行为,即使您是管理员,您也无法在 下写入任何内容/
,除了你的主目录,而无需在命令前加上sudo
。即使您使用sudo
或sudo su -
(以访问 root shell),如果不在恢复模式下禁用无根模式/SIP(系统完整性保护),您将无法更改 下的任何内容/usr
( 除外/usr/local
)/bin
、/sbin
、/etc
等... 。您可以使用命令 禁用它csrutil disable
。请注意,无根模式是 OS X 10.11 El Capitan 中的新功能。如果您仍然无法npm
使用sudo
,请尝试使用sudo whoami
并检查它是否输出root
,然后使用sudo -u root
。
答案2
啊……作为管理员,基本上赋予了你 sudo 能力,但你仍然不是 root。也就是说,你的帐户不是 uid=0。那是唯一的 root 用户。你有三个选择。
- 使用 sudo(就像你一直使用的那样)
- 您可以通过 su 转换为 root 用户,例如: sudo su root -
- 您可以将您的 UID 更改为 0。
我推荐#1。