无法锁定 /etc/passwd;稍后再试

34 linux passwd

在 Linux 中使用多个命令,我收到错误消息:

cannot lock /etc/passwd; try again later.
Run Code Online (Sandbox Code Playgroud)

有人知道如何解决吗?我也没有进入我的 /etc/shadow 目录。

小智 23

如果没有.lock文件存在但您仍然无法创建用户,请尝试以下操作

sudo mount -o remount,rw /
Run Code Online (Sandbox Code Playgroud)

如果登录为root然后使用

mount -o remount,rw /
Run Code Online (Sandbox Code Playgroud)


小智 12

您运行命令的用户缺乏所需的权限。root通过发出命令更改为用户

su -
Run Code Online (Sandbox Code Playgroud)

或者如果你有/使用 sudo

sudo <command to run>
Run Code Online (Sandbox Code Playgroud)


Luc*_*Luc 11

如果您已-R /some/chroot添加到您的useradd命令中,那可能就是问题所在。

我认为这意味着用户将在登录时被监禁,但事实并非如此。通过查看strace 输出,我看到useradd chroot 到指定目录,之​​后它当然找不到/etc/passwd 了。所以我不确定该选项的用途是什么,但这是您(好吧,我的)问题。


小智 10

那是因为您没有这些操作的权限

  • 你读不懂 /etc/shadow
  • 不能直接修改 /etc/passwd

您可以通过专门的命令更改这两个文件(例如,您可以更改密码)。


Tre*_*son 8

在 userdel 操作期间发生磁盘错误并且必须重新启动系统时,我遇到了这个问题。我需要删除以下所有四个文件才能继续:

sudo rm /etc/passwd.lock
sudo rm /etc/shadow.lock
sudo rm /etc/group.lock
sudo rm /etc/gshadow.lock
Run Code Online (Sandbox Code Playgroud)


Rob*_*een 7

这也可能是由于根文件系统上的空间不足造成的。使用strace以确保。strace是你的朋友。

  • 好吧,如果您已经猜到问题可能是空间不足,那么 df 可以提供帮助。但是当它试图锁定文件时,strace 会告诉你错误代码是什么,所以它应该消除猜测。我通常调用 strace 的方式是 `strace -f -e trace=file ` *command* 因为这通常会给出最有用的结果。 (3认同)