从管理员组中删除了我自己 - 现在出现错误 usermod:无法锁定 /etc/passwd;请稍后再试

从管理员组中删除了我自己 - 现在出现错误 usermod:无法锁定 /etc/passwd;请稍后再试

可能重复:
无法在恢复模式下锁定“/etc/group”

我有一台装有 Ubuntu 11.10 的笔记本电脑,我和另外两个家庭成员共用这台笔记本电脑。我的用户 ID 被设置为笔记本电脑上唯一的“管理员”。其他用户被设置为“标准”用户。在我尝试将自己添加到其他用户的用户组中时,不知何故我将自己从管理员组中删除了。我从终端使用了“usermod”命令。我一定是忘记为更新添加正确的开关或语法。

看来我已成功将我的用户 ID 添加到与我妻子的帐户关联的组中。当我使用“groups”命令时,我只能在列表中看到我的 ID 和我妻子的 ID。我再也看不到“admin”或“adm”组以及以前列出的其他组。当我进入“系统设置”>“用户帐户”时,看来我的 ID 现在被列为“标准”用户。我想将我的帐户改回“管理员”,但现在我不能。

我搜索了一些解决方案,发现我需要启动到恢复模式并从根会话执行 usermod 命令。我能够成功启动到恢复模式并进入根会话。我试图执行命令“usermod -a -G admin user1”将我的 ID(user1)添加回管理员组。

当我从 root 会话执行命令时,我收到错误消息“usermod:无法锁定 /etc/passwd;稍后再试”。我尝试在 usermod 命令前面加上“sudo”,但没有什么不同,还是同样的错误。然后我尝试使用 adduser 添加新用户,我想我会尝试创建一个新的用户 ID 并使新用户 ID 成为管理员组的一部分。使用 adduser 命令时我得到了同样的错误。

我看到一些帖子建议在 etc 目录中查找并删除以“.lock”结尾的文件。我找到的唯一文件是 .pwd.lock,我还没有动过它。

我不知道下一步该尝试什么。我对 Ubuntu 和 Linux 相对缺乏经验,所以很多东西对我来说都是新的。如果您能提供任何帮助,我将不胜感激。

答案1

我终于明白了为什么我会收到“usermod:无法锁定/etc/passwd;请稍后再试”错误消息。该问题的根本原因在于当我启动到恢复模式时,文件系统默认以只读方式挂载。由于文件系统以只读方式安装,adduser 和 usermod 命令无法执行其功能并产生错误消息。

让我认为问题不是文件损坏或 *.lock 相关问题的原因是 /etc 文件夹中没有 passwd.lock、group.lock 或 shadow.lock 文件。此外,当我在恢复模式下启动到 Root 会话时,尝试复制、重命名或删除 /etc 文件夹中的 .pwd.lock 文件时,我收到了不同的错误消息。我收到了不同的错误消息,类似于无法将文件重命名为只读。我在“恢复模式只读”上进行了一些网络搜索,并找到了以下帖子:http://www.linuxquestions.org/questions/linux-general-1/cannot-edit-fstab-in-recovery-mode-filesystem-is-read-only-540195/

帖子中提到恢复模式默认处于只读模式。它建议重新挂载为读写模式,以允许对 /etc 文件夹中的文件进行更改。以下是我解决问题的方法:

  1. 关闭计算机
  2. 启动到恢复模式 - BIOS 加载后,按住 Shift 键访问 grub 菜单 - 进入 grub 菜单后,选择以“(恢复模式)”结尾的条目
  3. 从下一个菜单中选择选项进入 Root Session
  4. 在根会话中,执行以下命令将文件系统重新挂载为读写:

    mount -o remount,rw /
    
  5. 执行 adduser 命令将我的用户 ID 重新添加到管理员组。命令执行“adduser username admin”,其中我将 username 替换为实际的系统用户名。这次我没有收到执行命令的错误,因为文件系统以读写方式挂载。

  6. 退出 Root 会话,退出恢复模式,然后重新启动。

重新启动 Ubuntu 后,我可以通过从正常终端会话执行“Groups”命令看到我的用户 ID 现在被列为管理员组的成员。我还通过转到 Ubuntu 系统设置菜单中的“用户帐户”在 GUI 中验证了这一点。在那里,我的用户 ID 也被列为“管理员”。

我进一步尝试复制我原来的问题,看看重新启动回到恢复模式并跳过上面的步骤 4(将文件系统重新挂载为读写)是否会重现“无法锁定 /etc/passwd”错误,结果确实如此。问题的根本原因与文件系统在恢复模式下的挂载方式有关。

作为一名新用户,我感觉很奇怪,默认情况下启动恢复模式是只读的。这难道不是恢复的理念吗?您需要进行一些更改来更正更新文件,更正普通用户无法解决的问题?

无论如何,我很高兴现在电脑上至少有一个用户拥有管理员权限。再次感谢所有回复我的问题的人。

答案2

如果不是,您可以尝试将/etc/.pwd.lock文件清空(并删除所有内容),然后从根会话使用它将用户重新插入到管理员组中。此文件用于控制对文件的访问,避免同时进行修改。如果没有修改任何文件,则它应该是空的。nano /etc/.pwd.lockadduser your_user admin/etc/passwd/etc/shadow

答案3

启动到恢复模式,选择 root shell 选项,然后将您的用户帐户添加回管理员组。

答案4

您确实应该使用恢复控制台删除该锁定文件,但我认为您可能只需su -在常规用户会话中的终端中使用命令进入超级用户模式即可完成相同的操作。这似乎是一个已知错误,尽管它出现的原因尚不清楚。检查此错误报告了解更多信息。

顺便说一句,在 root 会话中使用 sudo 是没有意义的,因为 sudo 只是以 root 权限执行命令,如果您已经以 root 权限使用系统,那么您已经以 root 权限执行命令。

相关内容