Possível arquivo passwd corrompido

1

Eu fiz uma recuperação do servidor e redefino a senha do root para uma nova porque, por algum motivo, o original não estava sendo reconhecido. Ainda se recusa a aceitar a senha em ssh para root. Depois de mais pesquisas, parece que pode ser um arquivo corrompido etc / passwd.

Parallels afirma que executar este comando:

cat /etc/passwd | grep ^root | hexdump -c 

o final do arquivo deve terminar com \ n, mas o meu termina com \ r \ n. Este arquivo eu verifiquei como um usuário com / bin / bash privs. Agora o problema. Não consigo verificar o arquivo passwd na raiz. Alguma ideia?

Eu entendo que existem 2 locais / etc / passwd. 1 para cada usuário alocado no sistema e o segundo está na área de raiz do etc. Obrigado

    
por user1532468 23.07.2014 / 10:49

3 respostas

1

Você editou o arquivo /etc/passwd com um editor do Windows ou com um editor configurado para produzir arquivos do Windows. Não faça isso. O Windows usa a sequência de dois caracteres CR-LF para representar uma quebra de linha , enquanto o Linux e outros sistemas unix usam apenas LF e Veja que CR como um personagem comum que passa a ser o último em sua linha. Em geral, use um editor do Linux para editar arquivos no Linux ou, se você usar um editor do Windows, salve o arquivo no formato de nova linha do Linux.

Seu problema agora não é que a senha seja inválida. Você está sendo autenticado com sucesso. No final do processo de login, a última coisa que login ou su ou sshd faz é executar seu shell como registrado em /etc/passwd . Acontece que o shell é a última coluna de /etc/passwd , então agora o shell do root foi definido como /bin/bash␍ , em que é um caractere de CR.

Você precisa organizar esse arquivo ou editar /etc/passwd . Você precisará de acesso root para qualquer um desses. Como você efetivamente desativou a conta raiz, você precisará de acesso físico.

    
por 24.07.2014 / 02:40
1

Aceita a senha do console? você pode ter atualizado seu sistema e seu sshd_config pode ter sido substituído. Por padrão, o acesso root por meio do ssh está desativado. A propósito, a senha não é armazenada em / etc / passwd, ela é armazenada em / etc / shadow. A única coisa afetada seria seu shell de login, que é o último campo do / etc / passwd, por que você não edita esse arquivo e remove o \ r? Seu usuário está na lista de sudoers? se assim for, faça um sudo bash e edite o arquivo.

    
por 23.07.2014 / 10:56
1

Tente o seguinte quando estiver logado:

su root

Então você faz login como root. Quando isso funciona, você pode editar o arquivo passwd.

    
por 23.07.2014 / 12:02