Não é possível bloquear / etc / passwd; tente mais tarde

30

Com vários comandos no Linux, recebo o erro:

cannot lock /etc/passwd; try again later.

Alguém sabe como resolver isso? Também não entro no meu diretório / etc / shadow.

Eric Leschinski
fonte
2
você precisa aumentar seu nível de usuário usando o comando "sudo" ou "su".
Raptor
4
Seu diretório / etc / shadow ?!? / etc / shadow deve ser um arquivo. Por favor, dê o comando exato que você está tentando executar.
Brian White
3
No meu caso, o sistema de arquivos raiz estava cheio :-p

Respostas:

22

Se nenhum .lockarquivo estiver presente, mas você ainda não conseguir criar um usuário, tente o seguinte

sudo mount -o remount,rw /

Se estiver logado como, em rootseguida, use

mount -o remount,rw /
Syed Hassaan Abdullah
fonte
Isso resolveu o problema que tive após o arranque em modo de recuperação, editando a entrada grub
twobeers
mas onde procurar os .lockarquivos? Graças a @trevorRobinson, parece que devemos procurar /etc/, correto?
hello_there_andy
E se diz mount: cannot remount /dev/dm-0 read-write, is write-protected. Estou no ChromeOS (Linux) com o Modo de Desenvolvimento ativado.
trusktr
Por que essa não é a resposta aceita?
math2001
9

Isso porque você não tem permissões para essas operações

  • Você não pode ler /etc/shadow
  • Você não pode modificar diretamente /etc/passwd

Você pode alterar os dois arquivos através de comandos especializados (por exemplo, você pode alterar sua senha).


fonte
1
para alterar a senha, use "passwd <nome do usuário>"
Raptor
9

O usuário que você está executando os comandos não possui os privilégios necessários. Mude para rootusuário emitindo o comando

su -

ou se você tem / usa sudo

sudo <command to run>
inquirir
fonte
6

Isso também pode ser causado pela falta de espaço no sistema de arquivos raiz. Use stracepara ter certeza. straceé seu amigo.

Robin Green
fonte
Eu tenho lido muitos tópicos com o meu problema e essa foi realmente a solução. Deve ser uma das primeiras coisas a verificar quando houver algum problema no sistema de arquivos, eu acho. Eu estou usando em dfvez de straceembora. Como straceme ajudaria? Não usei
erikbwork
2
Bem, se você já adivinhou que o problema pode estar ficando sem espaço, o df pode ajudar. Mas o strace lhe dirá qual era o código de erro ao tentar bloquear o arquivo, portanto, deve remover as suposições. A maneira como costumo chamar strace é um strace -f -e trace=file comando, já que isso geralmente fornece os resultados mais úteis.
Robin Green
6

Eu me deparei com isso quando ocorreu um erro no disco durante uma operação de userdel e o sistema teve que ser reiniciado. Eu precisava excluir todos os quatro dos seguintes arquivos para continuar:

sudo rm /etc/passwd.lock
sudo rm /etc/shadow.lock
sudo rm /etc/group.lock
sudo rm /etc/gshadow.lock
Trevor Robinson
fonte
6

Se você -R /some/chrootadicionou ao seu useraddcomando, esse pode ser o problema.

Eu pensei que isso significava que o usuário seria preso após o login, mas esse não é o caso. Observando a saída strace, vi useradd chroot no diretório especificado, após o qual, é claro, ele não pode mais encontrar o / etc / passwd. Portanto, não sei ao certo qual é a opção, mas há seu (bem, meu) problema.

Luc
fonte
Era exatamente isso que eu estava tentando. Depois de remover a -R [dir]opção, consegui criar o usuário.
Gustavo Straube
Bom palpite! Obrigado. Eu também entendi que o chroot para useraddnão é o que você pensa que é :) Ele usa apenas o diretório especificado como raiz para o sistema do usuário . É útil para sub-sistemas operacionais isolados clonados, o que raramente é o que você deseja ...
Ninj
2

Eu me deparei com isso quando ocorreu um erro no disco durante uma operação de userdel e o sistema teve que ser reiniciado. Eu precisava excluir todos os quatro dos seguintes arquivos para continuar:

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

Este comando é realmente me ajudou. Muito obrigado.

LI JIM
fonte
Este é um comentário de agradecimento a uma resposta anterior.
Suspeito #
1

Uma demonstração desse erro no 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.

O sudo lhe dá permissão para bloqueá-lo.

user@mybox:/home$ sudo userdel eric
user@mybox:/home$
Eric Leschinski
fonte
1

Tinha o mesmo problema, já que / etc estava cheio. É por isso que / etc / passwd não pôde ser gravado. Verifique se você possui espaço suficiente em / etc, caso contrário, aumente ou limpe coisas desnecessárias.

Boris Paperny
fonte