如何在 Mac OS X 中将用户添加到 Sudoers 文件
目录:
高级用户可能需要在 sudoers 文件中添加一个用户帐户,这允许该用户以 root 权限运行某些命令。
为了大大简化这意味着,这些新获得特权的用户帐户将能够执行命令,而不会出现权限被拒绝的错误,也不必在终端命令前加上 sudo。这对于某些复杂情况可能有帮助(或必要),但它会给其他人带来安全风险,因此不应随便更改。
一般而言,大多数用户最好使用管理员帐户,在每个命令的基础上使用sudo,或启用root 用户。尽管如此,直接修改sudoers对于对命令行有深入了解的高手来说还是有很多使用场景的,对于那些更复杂的场景,我们将着重调整sudoers文件,如下所述。
sudoers 文件位于/etc/sudoers,但与/etc/hosts 和许多其他系统配置文件不同,您不想将通用文本编辑器指向该文件来修改它。相反,您需要使用名为“visudo”的特定命令,它会在保存文档之前确认语法是否正确。
重要提示: 调整sudoers 不适用于大多数Mac OS X 用户。只有具有令人信服的理由的高级用户才应该修改 sudoers 文件。如果您不知道自己在做什么以及为什么要这样做,请不要编辑 sudoers 文件,也不要向 sudoers 文件添加任何用户。它可能会带来安全风险,或者你可能会破坏某些东西。
在Mac OS X中将用户添加到Sudoers
将用户添加到sudoers 需要使用vi,如果您不习惯,可能会相当困惑。对于不熟悉的人,我们将概述在vi中编辑,插入和保存文件的确切按键命令序列,请仔细按照说明进行操作。
- 启动终端并输入以下命令:
- 使用箭头键向下导航到“User privilege specification”部分,它应该如下所示:
- 将光标放在 %admin 条目下方的下一个空行上,然后按“A”键插入文本,然后在新行中键入以下内容,将“用户名”替换为用户简称您希望授予权限的帐户的名称(点击用户名和 ALL 之间的选项卡):
- 现在按“ESC”(退出)键停止编辑文件
- 点击:键(冒号),然后键入“wq”,然后按回车键保存更改并退出vi
sudo visudo
用户权限规范root ALL=(ALL) ALL %admin ALL=(ALL) ALL
用户名ALL=(ALL) ALL
大致应该是这样的,示例屏幕截图显示添加了用户名“osxdaily”:
你应该一切顺利,你可以cat sudoers文件以确定文件是否被修改:
cat /etc/sudoers
如果不想扫描整个文件,使用cat和grep可以快速找到用户名:
cat /etc/sudoers | grep用户名
现在“用户名”已添加到sudoers 文件中,您应该可以开始了。
Resolving a “/etc/sudoers busy, try again later”错误
如果您尝试修改 sudoers 并收到“visudo: /etc/sudoers busy, try again later”错误,这通常意味着该文件已被其他用户或意外,或不当关闭 visudo。如果您在多用户机器上,请务必在进一步操作之前与其他用户核实,但通常这种情况在单用户机器上不应该经常发生。区分这两者很重要,因为如果你搞砸了 sudoers 文件,你可能会陷入一个充满挫折、问题和最终从备份中恢复操作系统(或 sudoers 文件)的世界,解决这些问题超出了本文的范围.
在单用户 Mac 上,“sudoers busy”错误可能发生在退出终端应用程序而不退出 vi 后,或者如果终端或 Mac OS X 崩溃,或者如果文件当前在另一个中打开会议。后面描述的单机案例解决方法比较简单,去掉sudoers这个作为锁的临时文件即可解决:
sudo rm /etc/sudoers.tmp
如果您确定其他用户(或您自己)没有主动修改文件,无论是在本地还是远程,您只会想要这样做。由于调整 sudoers 通常是相当高级的,我们假设您知道自己在这里做什么,但如果您无法追踪打开 sudoers 的内容或原因,您可以尝试使用 dtrace 或 opensnoop 来监控文件使用情况。