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


30

在Linux中使用几个命令,我得到了错误:

cannot lock /etc/passwd; try again later.

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


2
您必须使用“ sudo”或“ su”命令来提高用户级别。
猛禽

4
您的/ etc / shadow 目录?!?/ etc / shadow应该是一个文件。请提供您要执行的确切命令。
布莱恩·怀特

3
在我的情况下,根文件系统已满:-p

Answers:


22

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

sudo mount -o remount,rw /

如果已登录,root则使用

mount -o remount,rw /

这通过编辑grub条目解决了我进入恢复模式后遇到的问题
twobeers

但是应该在哪里寻找.lock文件?感谢@trevorRobinson,看来应该看看/etc/,对吗?
hello_there_andy

如果它说呢mount: cannot remount /dev/dm-0 read-write, is write-protected?我在启用了开发模式的ChromeOS(Linux)中。
trusktr

为什么这不是公认的答案?
math2001 '17

9

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

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

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


1
要更改密码,请使用“ passwd <用户名>”
Raptor

9

您正在运行命令的用户没有所需的特权。root通过发出命令更改为用户

su -

或者如果您有/使用 sudo

sudo <command to run>

6

这也可能是由于根文件系统上的空间不足所致。使用strace确定。strace是你的朋友。


我已经阅读了很多有关该问题的线程,而这实际上就是解决方案。我猜应该是在出现任何文件系统问题时首先要检查的内容之一。我使用df而不是strace。怎么会strace帮我吗?从未使用过
erikbwork

2
好吧,如果您已经猜到问题可能是空间不足,那么df可以提供帮助。但是strace会告诉您尝试锁定文件时的错误代码,因此它应该消除猜测。我通常将strace称为strace -f -e trace=file 命令,因为这通常会提供最有用的结果。
罗宾·格林

6

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

sudo rm /etc/passwd.lock
sudo rm /etc/shadow.lock
sudo rm /etc/group.lock
sudo rm /etc/gshadow.lock

6

如果您已-R /some/chroot添加useradd命令,则可能是问题所在。

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


这正是我所尝试的。删除-R [dir]选项后,我可以创建用户。
古斯塔沃·斯特劳布

好猜!谢谢。我也了解chroot useradd不是您所认为的:)它仅使用指定的dir作为用户系统的根。它对于克隆的隔离子操作系统很有用,这几乎是您所不想要的...
Ninj

2

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

sudo rm /etc/passwd.lock
sudo rm /etc/shadow.lock
sudo rm /etc/group.lock
sudo rm /etc/gshadow.lock

这个命令确实对我有帮助。非常感谢。


这是对先前答案的感谢。
嫌犯

1

在Ubuntu 14.04上此错误的演示:

user@mybox:/home$ sudo useradd eric
user@mybox:/home$ userdel eric
userdel: Permission denied.
userdel: cannot lock /etc/passwd; try again later.

sudo授予您锁定它的权限。

user@mybox:/home$ sudo userdel eric
user@mybox:/home$


1

由于/ etc已满,因此发生了同样的问题。这就是为什么无法写入/ etc / passwd的原因。确保/ etc上有足够的空间,否则请放大它或清理不必要的东西。

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.