在 /etc/passwd 文件中添加行后帐户被锁定

在 /etc/passwd 文件中添加行后帐户被锁定

我已经在我的笔记本电脑上安装了这个版本的 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解决这个问题

相关内容