我已经在我的笔记本电脑上安装了这个版本的 Ubuntu。
└─ $ ▶ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
由于我对 Linux 的了解有限,我手动向我的用户添加了一行,我使用密码/etc/passwd
登录笔记本电脑。gofoboso
该用户拥有 sudo 权限。将第二行添加到以下内容后,我没有 sudo 权限。
root:x:0:0:root:/root:/usr/bin/zsh
gofoboso:x:0:0:gofoboso:/gofoboso:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
我知道密码在/etc/shadow
文件上进行了加密,现在它具有与 root 用户相同的属性(??)
─ $ ▶ sudo cat /etc/shadow
[sudo] password for gofoboso:
Sorry, try again.
[sudo] password for gofoboso:
sudo: account validation failure, is your account locked
这是公司的笔记本电脑,我没有root密码。我尝试了一些在网上找到的命令,但它们都需要 sudo。有人知道我怎样才能恢复这个吗?最重要的是,我无法重新启动笔记本电脑或将其关闭,因为它会询问用户的密码gofoboso
,这可能与现在的root密码相同?如果不成为 root 就无法修复它,如果有人知道 root 密码,并删除该行,gofoboso 用户将再次启用吗?
谢谢。
答案1
您需要进入“单用户模式”。您可以发出命令“init 1”,或者重新启动它并通过修改 grub 条目获得单用户访问权限; (您必须将单词“siingle”添加为内核行的最后一个单词)。
答案2
你写了, ”我已经手动添加了一行/etc/passwd
“ 和 ”我没有 root 密码”。
如果您有权编辑,那么/etc/passwd
您就已经拥有 root 权限 - 至少在某个地方 - 即使您本身没有 root 密码。
根据您的描述,我假设您像这样编辑了密码文件:
sudo vi /etc/passwd # NEVER DO THIS, even with a different editor
该sudo
命令可以配置为提供 root 权限(在本例中显然是这样做的,因为编辑/etc/passwd
需要 root 权限才能成功)。所以你几乎可以肯定告诉它直接给你一个 root shell:
sudo -s # Start a shell
sudo bash # Start "bash"
从这里您可以重置 root 密码,或者简单地执行您需要 root 权限才能执行的任何操作。
一般来说,添加第二个 root 等效用户帐户没有用。您不应该登录特权帐户,以及诸如doas
和 之类的工具,sudo
为特权操作提供托管网关。
顺便说一句,编辑/etc/passwd
文件应该使用命令来完成,vipw
该命令在安装之前对编辑的密码文件进行健全性检查。 (您也可以安全地编辑/etc/group
并/etc/shadow
查看man vpiw
详细信息。)
sudo vipw # Safely edit the passwd file with the default editor
sudo EDITOR=nano vpiw # Use "nano" to edit the file safely
在你的情况下,可能缺少的是一个条目/etc/shadow
,也许是一个条目/etc/group
。添加这些不会自动使每个工具与您的新用户帐户正常工作,因为有些工具(错误地)检查用户名root
而不是 UID 0
。
如果您成功地破坏了系统的唯一登录信息,您将需要启动救援系统(我喜欢系统救援)并用它来修复系统中损坏的条目/etc/passwd
。有很多问题和答案Unix 和 Linux解决这个问题