Неможливо заблокувати / etc / passwd; спробуйте ще раз пізніше


30

Маючи кілька команд у Linux, я отримую помилку:

cannot lock /etc/passwd; try again later.

Хтось знає, як це вирішити? Також я не потрапляю до свого каталогу / etc / shadow.


2
ви повинні підняти рівень свого користувача, використовуючи команду "sudo" або "su".
Раптор

4
Ваш / etc / тіньовий каталог ?!? / 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.
trusktr

Чому це не прийнята відповідь ??
math2001

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

Я зіткнувся з цим, коли сталася помилка диска під час роботи з користувальницькою частиною, і систему довелося перезавантажувати. Щоб продовжити, мені потрібно було видалити всі чотири наступні файли:

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

Я зіткнувся з цим, коли сталася помилка диска під час роботи з користувальницькою частиною, і систему довелося перезавантажувати. Щоб продовжити, мені потрібно було видалити всі чотири наступні файли:

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 не вдалося записати. Переконайтеся, що у вас є достатньо місця на / тощо, якщо не збільшуйте його чи чистіть непотрібні речі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.