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.

Eric Leschinski
źródło
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 /
Syed Hassaan Abdullah
źródło
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).


źródł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>
zapytanie
źródło
6

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

Robin Green
źródło
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
Trevor Robinson
źródło
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.

Luc
źródło
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.

LI JIM
źródło
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$
Eric Leschinski
źródło
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.

Boris Paperny
źródło