Eu tenho um problema bizarro onde o ssh não encontra um diretório home para alguns usuários (que existe), mas o mesmo usuário pode logar diretamente na minha máquina através de um terminal local.
Eu mantenho um servidor (server.domain.edu) onde meus alunos se inscrevem para enviar trabalhos de casa / etc. A máquina roda o Fedora Linux 22. Como configuração inicial, eu os coloco em ssh no servidor e mudo sua senha padrão.
Eu configurei as contas deles com:
useradd -s /bin/changepasswd -p 'openssl passwd -1 studentname' studentuname
changepasswd é um script de shell simples que imprime algumas instruções e chama passwd. As permissões para /bin/changepasswd
são 755 e o proprietário: group é root: root
Agora, altero a propriedade e o grupo de / home/studentname
(para evitar problemas com o sftp). ls -ld /home/studentname
yields
drwxr-xr-x. 24 root teacher 4096 Jan 18 13:58 studentname
O mistério é que eu criei contas para cerca de uma dúzia de alunos com exatamente a mesma configuração. Para alguns deles, ele funciona como esperado (eles efetuam login e o sistema executa changepasswd e a sessão termina com o script). Para o resto, acontece o seguinte:
ssh [email protected]
Could not chdir to home directory /home/studentname: No such file or directory
/bin/changepasswd: No such file or directory
Connection to server.domain.edu closed.
Por outro lado, se o mesmo usuário que teve um problema com o ssh usar um terminal local no servidor (o login de texto local), tudo será executado como esperado sem as mensagens de erro acima. O problema ssh existe se eles usam clientes como o comando putty / ssh do mac ou até mesmo o ssh para o servidor a partir de um xterm no servidor (em vez de fazer login diretamente localmente).
sshd_config tem uma coisa fora do normal - para cada nome de aluno que eu tenho:
Studentname do grupo de correspondências
ForceCommand / bin / changepasswd
ChrootDirectory / home / studentname
PermitTunnel no
AllowAgentForwarding no
X11Forwarding no
AllowTcpForwarding no
Novamente, observe que isso realmente funciona para alguns alunos, mas não para outros. O resto do arquivo sshd_config é o padrão.
O que poderia estar errado?
Tags ssh useradd permissions login terminal