在我们的一台 RHEL6 服务器上,我对 /etc/pam/d/system-auth 和 password-auth 进行了更改,然后在重新启动后失去了 sudo 和 su 的能力。具体来说,我改变了这一行:
auth sufficient pam_unix.so try_first_pass
对此:
auth optional pam_unix.so try_first_pass
我仍然可以 ssh 到服务器并使用标准用户帐户登录,但我无权对任何文件进行任何更改,因此我可以撤消此操作。此服务器也是 VM。我能做什么吗?有什么 PAM 技巧吗?
答案1
如果您已将自己锁定在根帐户之外,则需要使用物理访问权限。有两种方法:
- 重新启动系统。在引导加载程序(例如 Grub)的提示下,请求 root shell。您可能需要按一个键才能出现引导加载程序提示符;对于 Grub,您通常需要按住Shift。编辑内核命令行,即以 开头的行
linux
,添加init=/bin/sh
到末尾。启动,您将获得 root shell。使用它来修复任何需要修复的配置文件。此方法需要访问控制台和未锁定的引导加载程序。 - 关闭系统电源。取出硬盘,插到另一台机器上,挂载系统分区。编辑需要修复的任何配置文件。此方法需要访问计算机的存储空间。
由于您的系统在虚拟机中运行,因此“物理”访问实际上是对运行虚拟机的主机系统上的帐户的访问。重新启动和访问控制台是物理情况的简单模拟。可以使用虚拟机软件来访问磁盘。以下是一些方法:
具体使用 guestfs 工具
guestmount
。像这样的东西应该有效:guestmount -a /path/to/vm.img -m /dev/sda1 ~/mnt
-
qemu-nbd -c /dev/nbd0 /path/to/vm.img mount /dev/nbd0p1 /mnt