如何在 Mac OS X 中将用户添加到 Sudoers 文件

Mac OS X 中的终端

为了大大简化这意味着,这些新获得特权的用户帐户将能够执行命令,而不会出现权限被拒绝的错误,也不必在终端命令前加上 sudo。这对于某些复杂情况可能有帮助(或必要),但它会给其他人带来安全风险,因此不应随便更改。

一般来说,大多数用户最好使用管理员帐户,在每个命令的基础上使用 sudo,或者启用 根用户。尽管如此,直接修改 sudoers 对于对命令行有深入了解的高级人员来说有很多使用场景,对于那些更复杂的情况,我们将重点调整 sudoers 文件,如下所述。

sudoers 文件位于 /etc/sudoers 但不同于 /etc/ hosts 和许多其他系统配置文件,您不希望将通用文本编辑器指向该文件来修改它。相反,您需要使用一个名为“visudo”的特定命令,它会在保存文档之前确认语法是否正确。

重要:调整 sudoers 不适用于大多数 Mac OS X 用户。只有具有令人信服的理由的高级用户才应该修改 sudoers 文件。如果您不知道自己在做什么以及为什么要这样做,请不要编辑 sudoers 文件,也不要向 sudoers 文件添加任何用户。它可能会带来安全风险,或者您可能会破坏某些东西。

在 Mac OS X 中添加一个用户到 Sudoers

将用户添加到 sudoers 需要使用 vi,如果您不习惯使用 vi,可能会感到相当困惑。对于不熟悉的人,我们将概述在 vi 中编辑、插入和保存文件的确切按键命令序列,请仔细按照说明进行操作。

  1. 启动终端并输入以下命令:
  2. sudo visudo

  3. 使用箭头键向下导航到“#User privilege specification”部分,它应该如下所示:
  4. # 用户权限说明
    root ALL=(ALL) ALL
    %admin ALL=(ALL) ALL

  5. 将光标放在 %admin 条目下方的下一个空行上,然后按“A”键插入文本,然后在新行中键入以下内容,将“用户名”替换为您帐户的用户简称希望授予特权(点击用户名和 ALL 之间的选项卡):
  6. 用户名 ALL=(ALL) ALL

  7. 现在按“ESC”(转义)键停止编辑文件
  8. 按 : 键(冒号),然后键入“wq”,然后按 Return 键保存更改并退出 vi

大致应该是这样的,示例屏幕截图显示添加了用户名“osxdaily”:

用户添加到sudoers文件在 OS X 中” />  </p>
<p>你应该可以开始了,你可以 cat sudoers 文件来确定文件被修改了:</p>
<p><code>cat /etc/sudoers</code></p>
<p>如果不想扫描整个文件,使用 cat 和 grep 可以快速找到用户名:</p>
<p><代码>cat /etc/sudoers | grep 用户名</code></p>
<p>现在“用户名”已添加到 sudoers 文件中,您应该可以开始了。</p>
<p>  <strong>解决“/etc/sudoers 忙,稍后再试”错误</strong>  </p>
<p>如果您尝试修改 sudoers 并遇到“visudo: /etc/sudoers busy, try again later”错误,这通常意味着文件已经被其他用户打开,或被意外打开,或被不正确打开关闭visudo。如果您在多用户机器上,请务必在进一步操作之前与其他用户核实,但通常这种情况在单用户机器上不应该经常发生。区分这两者很重要,因为如果你搞砸了 sudoers 文件,你可能会陷入一个充满挫折、问题和最终从备份中恢复操作系统(或 sudoers 文件)的世界,解决这些问题超出了本文的范围. </p>
<p>在单用户 Mac 上,“sudoers busy”错误可能会在退出终端应用程序而不退出 vi 后发生,或者如果终端或 Mac OS X 崩溃,或者文件当前正在另一个会话中打开。后面描述的一次性机壳的解决方法比较简单,去掉作为锁的sudoers临时文件即可解决:</p>
<p><code>sudo rm /etc/sudoers.tmp</code></p>
<p>如果您确定其他用户(或您自己)没有在本地或 <a href=远程。由于调整 sudoers 通常是相当高级的,我们假设您知道自己在这里做什么,但如果您无法追踪打开 sudoers 的内容或原因,您可以尝试使用 dtrace 或 opensnoop 监控文件使用情况。