我更改了 /etc/passwd 中的最后一行,但无法使用 sudo

tin*_*ork 15 command-line sudo password login

这是我所做的:

  1. 在最后一行更改用户名:tinytoabc

    • tiny@tty7:~$ sudo vim /etc/passwd
    • 改变这个:
      tiny:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
      到这个:
      abc:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
  2. tiny@tty7:~$ sudo vim /etc/shadow

    • 表明: [sudo] passwork for abc:

    • 我没有更改密码,但它无法登录root!

    • 我输入Ctrl+ Alt+ F1totty1tinyabc都无法使用我的密码登录

我试着看ls ? -la,这里显示如下:

drwxr-xr-x 28 abc tiny 4096 Apr 6 03:04 .

如何登录root?为什么提示中的用户名tiny@tty7仍然很小而在 sudo 中显示 abc 的密码?

Sh1*_*d0w 22

你绝对不能手动编辑你的密码文件,因为你会把事情搞砸。

更改用户名的正确方法是:

usermod -l newUsername oldUsername
Run Code Online (Sandbox Code Playgroud)

然后更改主文件夹:

usermod -d /home/newHomeDir -m newUsername
Run Code Online (Sandbox Code Playgroud)

要更改密码,您应该使用:

sudo passwd yourusername
Run Code Online (Sandbox Code Playgroud)

我建议你恢复你的 passwd 文件,或者如果你不能编辑它,因为你不能用 root 登录 - 然后用 live cd 启动并恢复文件。然后用正确的方法。


Jon*_*ler 18

您在编辑后卡住的原因是该/etc/shadow文件包含一个密码tiny条目,但没有条目 for abc,而该/etc/passwd文件包含一个条目 forabc而不是 for tiny。在sudo查看时,它根据abc您正在运行的进程的 UID正确识别了您(根据密码文件),但是当它将您输入的密码与存储在 中的加密(散列)密码进行比较时/etc/shadow,它无法找不到 的条目abc,因此它必须报告失败。

正如shaddy在他的回答中所说,不要手动编辑密码或影子文件。如果您必须打破规则,则在一次调用中编辑这两个vim,并且在vim您证明更改足够理智可以使用另一个终端窗口工作之前不要退出,并在此之前保存文件的备份副本你开始攻击它们,并重新考虑为什么你首先要违反规则,因为这可能不是一个好主意。