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


15

这是我所做的:

  1. 更改的最后一行用户名:tinyabc

    • 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!

    • I型Ctrl+ Alt+ F1tty1,但没有细小ABC不能用我的密码登录

我尝试看一下ls ~ -la,它显示如下:

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

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

Answers:


18

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

shaddy回答中所说,请勿手动编辑密码或影子文件。如果您必须违反规则,请在一次调用中进行编辑vim,并且不要从退出,vim直到您证明使用其他终端窗口所做的更改足够合理为止,并在保存文件的备份副本之前您开始入侵它们,并重新考虑为什么首先要违反规则,因为这可能不是一个好主意。


22

您绝不要手动编辑passwd文件,因为这样会使事情搞砸。

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

usermod -l newUsername oldUsername

然后更改主文件夹:

usermod -d /home/newHomeDir -m newUsername

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

sudo passwd yourusername

我建议您还原passwd文件,或者由于无法使用root用户登录而无法编辑它-然后使用live cd引导并还原文件。然后使用正确的方法。


1
谢谢〜我认为最困难的是使用root登录,然后我重新启动,选择revovery模式,然后再将我的passwd文件恢复〜工作正常
tinyork 2015年


-3

手动更改用户名(而不是uid)的过程:

  1. 检查一下您的头部,如果失败,请继续执行第二步。
  2. 编辑影子文件,用新用户名复制用户行。
  3. 编辑组,sudoers,允许新的用户名权限,保持旧
  4. 象征性地将主目录链接到新名称
  5. 编辑passwd文件,更改用户名和主目录
  6. 编辑阴影,sudoers,组以删除我们在第三步中保留的旧条目
  7. 编辑别名和其他对旧用户名的引用。
  8. 注销,切换到文本控制台(如果用户主目录中正在运行任何程序(包括窗口管理器),则下一步将不起作用)
  9. cd到主目录上方的目录。
  10. 删除符号链接,然后重命名主目录。
  11. 注销和正常登录。

更改其他用户名的过程要简单得多,尽管仍然不简单。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.