Nie można zablokować / etc / passwd; Spróbuj ponownie później


30

Po kilku poleceniach w systemie Linux pojawia się błąd:

cannot lock /etc/passwd; try again later.

Czy ktoś wie jak to rozwiązać? Również nie dostaję się do mojego katalogu / etc / shadow.


2
musisz podnieść poziom użytkownika za pomocą polecenia „sudo” lub „su”.
Raptor

4
Twój katalog / etc / shadow ?!? / etc / shadow powinien być plikiem. Podaj dokładne polecenie, które próbujesz wykonać.
Brian White

3
W moim przypadku główny system plików był pełny :-p

Odpowiedzi:


22

Jeśli nie ma żadnych .lockplików, ale nadal nie można utworzyć użytkownika, spróbuj wykonać następujące czynności

sudo mount -o remount,rw /

Jeśli zalogowany, rootto użyj

mount -o remount,rw /

To rozwiązało problem, który miałem po uruchomieniu w trybie odzyskiwania, edytując wpis grub
twobeers

ale gdzie szukać .lockplików? dzięki @trevorRobinson wydaje się, że należy zajrzeć /etc/, prawda?
hello_there_andy

Co jeśli to powie mount: cannot remount /dev/dm-0 read-write, is write-protected. Jestem w ChromeOS (Linux) z włączonym trybem deweloperskim.
trusktr 22.04.17

Dlaczego nie jest to akceptowana odpowiedź?
math2001

9

To dlatego, że nie masz uprawnień do tych operacji

  • Nie umiesz czytać /etc/shadow
  • Nie możesz bezpośrednio modyfikować /etc/passwd

Możesz zmienić oba pliki za pomocą specjalnych poleceń (np. Możesz zmienić hasło).


1
aby zmienić hasło, użyj „passwd <nazwa użytkownika>”
Raptor,

9

Użytkownik, który uruchamia polecenia, ponieważ nie ma wymaganych uprawnień. Przejdź do rootużytkownika, wydając polecenie

su -

lub jeśli masz / używasz sudo

sudo <command to run>

6

Może to być również spowodowane brakiem miejsca w głównym systemie plików. Użyj, straceaby się upewnić. stracejest twoim przyjacielem.


Czytałem wiele wątków z moim problemem i to było rozwiązanie. To chyba jedna z pierwszych rzeczy, które należy sprawdzić w przypadku problemów z systemem plików. Używam dfzamiast strace. Jak stracemógłbyś mi pomóc? Nigdy go nie użyłem
erikbwork

2
Cóż, jeśli już zgadłeś, że problem może zabraknąć miejsca, to df może pomóc. Ale strace powie ci, jaki był kod błędu, gdy próbował zablokować plik, więc powinien usunąć zgadywanie. Sposób, w jaki zwykle nazywam strace, to strace -f -e trace=file polecenie, ponieważ zwykle daje to najbardziej przydatne wyniki.
Robin Green

6

Natknąłem się na to, gdy wystąpił błąd dysku podczas operacji userdel i system musiał zostać zrestartowany. Aby kontynuować, musiałem usunąć wszystkie cztery następujące pliki:

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

6

Jeśli -R /some/chrootdodałeś do swojego useraddpolecenia, może to być problem.

Myślałem, że oznacza to, że użytkownik zostanie skazany na więzienie przy logowaniu, ale tak nie jest. Przeglądając dane wyjściowe strace, zobaczyłem użytkownika chrootowanego w określonym katalogu, po którym oczywiście nie może już znaleźć / etc / passwd. Nie jestem więc pewien, do czego służy ta opcja, ale jest twój (mój, mój) problem.


Właśnie tego próbowałem. Po usunięciu -R [dir]opcji udało mi się utworzyć użytkownika.
Gustavo Straube,

Niezłe zgadywanie! Dziękuję Ci. Ja też rozumieć, że dla chroot useraddjest nie to, co myślisz, że jest :) To tylko wykorzystuje określony dir jako korzeń dla użytkownika systemu . Jest przydatny w klonowanym izolowanym podsystemie, który rzadko jest tym, czego chcesz ...
Ninj

2

Natknąłem się na to, gdy wystąpił błąd dysku podczas operacji userdel i system musiał zostać zrestartowany. Aby kontynuować, musiałem usunąć wszystkie cztery następujące pliki:

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

To polecenie naprawdę mi pomogło. Wielkie dzięki.


To jest komentarz do poprzedniej odpowiedzi.
podejrzenie

1

Demo tego błędu na 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 daje ci pozwolenie na zablokowanie go.

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


1

Miał ten sam problem, ponieważ plik / etc był pełny. Dlatego nie można napisać / etc / passwd. Upewnij się, że masz wystarczająco dużo miejsca na / etc, jeśli nie, powiększ go lub wyczyść niepotrzebne rzeczy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.