Não é possível fazer login no servidor RHEL6 como qualquer usuário, exceto root - Diz que o diretório inicial não pode ser encontrado e a permissão do shell foi negada

Não é possível fazer login no servidor RHEL6 como qualquer usuário, exceto root - Diz que o diretório inicial não pode ser encontrado e a permissão do shell foi negada

Como afirma a pergunta acima, tenho um servidor RHEL 6 projetado para acesso SSH, com o root incapaz de fazer login por meio de SSH por design. Quando estou no servidor localmente, posso fazer login como root, mas apenas como root. Se eu tentar fazer login como usuário, a tela exibirá rapidamente uma mensagem que diz:

Last Login: Mon Aug 24 08:24:52 on tty1
no directory: /home/user1!
logging in with home="/"
login: no shell: Permission denied

Estou recebendo o no shell porque não há shell no /.

Agora, o que é realmente confuso para mim é que o diretório inicial realmente existe e contém um shell válido e tem permissão pelo que posso dizer ( 755). Isso é comum para todos os usuários que existiram e foram criados nesta instância de servidor. Parece não importar se eu defino um caminho para o diretório inicial quando crio um usuário ou deixo o padrão assumir o controle e atribuí-lo automaticamente.

Não encontrei nada de estranho no log seguro ou no log de mensagens, apenas que o usuário efetuou login com sucesso (o que ele fez, mas não pode fazer nada sem um shell)

Espero não precisar reinstalar neste momento, mas quase não há dados no servidor que seriam perdidos se essa fosse a única opção.

Qualquer ajuda seria muito apreciada, pois pesquisei e tentei por uma semana sem sorte.

Editar:

Usei o useradd user1comando para adicionar originalmente o usuário, quando isso resultou nos problemas acima usei

mkdir /home/user1 && useradd user1 -d /home/user1 && chown -R user:user1 /home/user

Quando executo o cat /etc/passwd | grep user1comando recebo:

user1:x:513:517::/home/user1:bin/bash

e quando executo o ls -l /homecomando, a entrada desse usuário é:

drwxr-xr-x. 4 user1 user1 4096 Aug 19 17:03 user1

Responder1

Consegui resolver o problema executando o comando

for p in $(rpm -qa); do rpm --setperms $p; done

e reiniciando o servidor. Depois de reiniciado, não só consegui fazer login como qualquer usuário criado, mas também pude usar a GUI novamente. Isso aponta para permissões de arquivo corrompidas em algum lugar do sistema. Como eles foram corrompidos eu não sei, mas agora tudo funciona.

Responder2

O único problema que vejo na sua configuração está no arquivo passwd. Tente mudar user1:x:513:517::/home/user1:bin/bash para user1:x:513:517::/home/user1:/bin/bash.

Responder3

O useradddiretório inicial deve ser criado quando a opção correta for passada e você não precisa (ou não deveria) criá-los manualmente. Sugiro que você execute o seguinte (na ordem listada) para remover e recriar seu usuário corretamente.

userdel -f -r user1
useradd -m user1

NOTA: você não precisa passar a -dopção pois o padrão será /home/user1neste caso.

Responder4

Acabei de ter esse mesmo problema em uma máquina CentOS 6. Este era um problema com arquivos em /home com contextos de segurança SELinux rotulados incorretamente. Um dos comentaristas acima, Michael Hampton, que disse que verificar /var/log/audit/audit log estava correto. Segui seu conselho e percebi que havia um problema com o SELinux acontecendo aqui. A solução que resolveu para mim foi:

sudo restorecon -Rv /home

Isso restaurará recursivamente os rótulos de contexto de segurança padrão em todos os arquivos no diretório inicial. Depois disso, o acesso ssh via chave pública foi restaurado.

informação relacionada