我可能刚刚将 root 锁定在服务器之外,正在寻求帮助。我有一个 VPS 网络服务器,过去几年一直在运行 10.04。为了安全起见,我禁用了 root 登录和密码验证。到目前为止,这一直很完美,我的用户有 sudo 权限,所以我从来没有遇到过这种安排的困难。
我今天在做一些工作,我需要的一个软件包无法在 Lucid 上运行,所以我升级到了 12.04。不幸的是,在升级过程中,sudoers 文件被覆盖了(它确实先问了我,但我没注意,就允许它了)。
我仍可以通过 SSH 访问该框,但我不再具有 sudo 权限。我被骗了吗?或者有办法恢复吗?
答案1
使用 Linode 提供的 Lish 控制台获取带外控制台访问权限,并将 VM 重新启动到单用户模式以重置 root 密码(和/或修复您的 sudoers 文件)。
为此,您需要在超时到期之前停止 GRUB 并按照以下步骤操作:
- 按下e编辑内核启动参数。
1
在该行后附加一个空格和数字kernel
。- 按下Esc即可应用您的更改。
- 按下即可b使用修改后的设置进行启动。
(注意:这些更改不是永久性的,因此您以后不必撤消它们。它们仅适用于此启动。)
您将进入单用户 shell,其中根文件系统以只读方式挂载。您需要使用以下命令重新挂载并重写:
mount -o remount,rw /
然后您可以对系统进行所需的更改并重新启动。
祝你好运!