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.


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 /

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).


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>

6

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


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

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.


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.


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$


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.