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

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

我在终端中犯了一个错误,现在每次我使用 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

当时我使用 nano 编辑此文件,以便添加pam_tid.so内容,这样我就可以使用 touch id 绕过 sudo。然后我按 Ctr+x 退出,但错过了 Ctr,也没有看到注释外的 x。所以当我尝试使用 sudo 时,出现了错误。最糟糕的是,要编辑此文件,我需要 sudo。任何帮助都将不胜感激。

谢谢

答案1

您需要找到另一种提升权限的方法,这故意很难“因为安全”:) 因为这是一台 Mac,一种方法是重新启动并按住 command+R 进入救援 shell,然后启动一个终端(它位于实用程序菜单中,IIRC) ,您将有一个可以编辑 pam 文件的 root shell。

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

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

答案2

另一种方法是启用 Root 用户(https://support.apple.com/en-us/HT204012) 并使用它登录。然后您将能够从 Finder 编辑文件。

相关内容