不小心在 Mac 上的 sudo 文件中的注释之外添加了一个字符,sudo 不再起作用

Arn*_*nav 7 terminal sudo nano macos

我在终端中犯了一个错误,现在每次使用 sudo 时,都会收到错误消息: sudo: unable to initialize PAM: Invalid argument

我知道我搞砸了什么,即在以下文件中的注释之外添加一个字符:/etc/pam.d/sudo

内容如下:

x# sudo: auth account password session
auth       sufficient     pam_tid.so
auth       sufficient     pam_smartcard.so
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so
Run Code Online (Sandbox Code Playgroud)

发生的事情是我正在使用 nano 编辑此文件以添加pam_tid.so到此文件,以便我可以使用 touch id 绕过 sudo。然后我按 Ctr+x 退出,但错过了 Ctr 并且没有看到评论之外的 x。因此,当我尝试使用 sudo 时,出现错误。最糟糕的是,要编辑此文件,我需要 sudo。任何帮助将不胜感激。

谢谢

dan*_*uer 12

您需要找到一种提升特权的替代方法,这是“因为安全性”而有意为之的。:) 由于这是 Mac,一种方法是重新启动并按住 command+R 进入救援外壳,然后启动终端(位于实用程序菜单 IIRC 中),您将拥有一个可以编辑的根外壳pam 文件。

另一种可能的方法是将 pam 文件复制到您的主目录,更正它,然后使用 Finder 复制该文件(通过选择“go”打开 /etc,然后在 finder 菜单中选择“go to folder”)。我很确定它没有使用 sudoers pam 文件来控制访问,但我不记得了。这种方式复制后可能还需要修复权限。

无论哪种方式:今天宝贵的系统管理员课程是,在编辑 pam 文件时,您应该始终保持编辑器窗口打开,直到您测试了您的更改。在不退出的情况下保存文件,并在另一个窗口(或从另一台机器,视情况而定)中验证一切正常。只有这样你才能退出编辑器。:)

  • Finder 选项非常有效!Finder 要求我输入密码而不是 sudo,而 sudo 现在正在工作。学习了,非常感谢! (5认同)
  • Finder 选项在 macOS Catalina 上对我来说不成功。我必须进入恢复模式(重新启动时按住 ⌘+R),使用磁盘实用程序挂载 Macintosh HD,然后从实用程序菜单和 `vim /System/Macintosh\ HD/etc/pam.d/sudo` 打开终端为了修复它。 (2认同)
  • 谢谢,你救了我的笔记本电脑。 (2认同)