Не удается заблокировать / etc / passwd; Попробуйте позже


30

С несколькими командами в Linux я получаю ошибку:

cannot lock /etc/passwd; try again later.

Кто-нибудь знает, как это решить? Также я не попал в мою директорию / etc / shadow.


2
Вы должны поднять свой уровень пользователя с помощью команды "sudo" или "su".
Raptor

4
Ваш каталог / etc / shadow ?!? / etc / shadow должен быть файлом. Пожалуйста, дайте точную команду, которую вы пытаетесь выполнить.
Брайан Уайт

3
В моем случае корневая файловая система была заполнена :-p

Ответы:


22

Если нет .lockфайлов, но вы все еще не можете создать пользователя, попробуйте следующее

sudo mount -o remount,rw /

Если залогинен как rootто используй

mount -o remount,rw /

Это решило проблему,
возникшую

но где искать .lockфайлы? спасибо @trevorRobinson, кажется, стоит заглянуть /etc/, верно?
hello_there_andy

Что делать, если это говорит mount: cannot remount /dev/dm-0 read-write, is write-protected. Я в ChromeOS (Linux) с включенным Dev Mode.
trusktr

Почему это не принятый ответ?
математика

9

Это потому, что у вас нет прав для этих операций

  • Ты не умеешь читать /etc/shadow
  • Вы не можете напрямую изменить /etc/passwd

Вы можете изменить оба файла с помощью специальных команд (например, вы можете изменить свой пароль).


1
чтобы сменить пароль, используйте «passwd <username>»
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 привязан к указанному каталогу, после чего, конечно, он больше не может найти / etc / passwd. Так что я не уверен, для чего этот вариант, но есть ваша (ну, моя) проблема.


Это было именно то, что я пытался. После удаления -R [dir]опции я смог создать пользователя.
Густаво Штраубе

Хорошее предположение! Спасибо. Я также понял , что корневое для useraddне то , что вы думаете , что это :) Это только использует указанный реж как корень для пользователя системы . Это полезно для клонированной изолированной подсистемы, что редко бывает тем, что вам нужно ...
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.

Судо дает вам разрешение заблокировать его.

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


1

Была та же проблема, так как / etc был полон. Вот почему / etc / passwd не может быть записан. Убедитесь, что у вас достаточно места на / etc, если нет, то увеличьте его или удалите ненужные вещи.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.