O que acontece se um shell padrão dos usuários não estiver instalado?

3

Eu trabalho como sysadmin em uma grande empresa e tenho que manter várias janelas e VMs Linux (Ubuntu 16.04). Como desejo usar zsh em vez de bash nas VMs do Linux, preciso alterar meu shell padrão.

Agora, faço login no Linux com minha conta de domínio do Windows, que impõe as configurações do AD; isso significa que não posso alterar o arquivo passwd ou usar chsh para alterar meu shell padrão, então tive que encontrar outro caminho. Desta forma, foi aplicado o shell no AD com o atributo loginShell .

A questão é, o que acontece se eu fizer login em uma VM Linux que não tenha zsh instalado, o que acontece? Ele faz fallback para bash / sh , fica preso ou algo mais?

    
por Daan Boerlage 22.11.2016 / 17:20

2 respostas

5

Vamos tentar!

Shell foi alterado no servidor:

[myserver ~]% getent passwd myuser
myuser:x:150:150:myuser:/home/myuser:/foo

Vamos entrar:

[myclient ~]% ssh myserver
Received disconnect from myserver: 2: Too many authentication failures for myuser

Dos registros SSH no servidor:

Nov 22 09:30:27 myserver sshd[20719]: Accepted gssapi-with-mic for myuser from myclient port 33808 ssh2
Nov 22 09:30:27 myserver sshd[20719]: pam_unix(sshd:session): session opened for user myuser by (uid=0)
Nov 22 09:31:18 myserver sshd[20727]: Received disconnect from myclient: 11: disconnected by user
Nov 22 09:31:18 myserver sshd[20719]: pam_unix(sshd:session): session closed for user myuser
Nov 22 09:31:20 myserver sshd[20828]: User myuser not allowed because shell /foo does not exist
Nov 22 09:31:20 myserver sshd[20835]: input_userauth_request: invalid user myuser
Nov 22 09:31:20 myserver sshd[20835]: Disconnecting: Too many authentication failures for myuser

Linha chave: User myuser not allowed because shell /foo does not exist . Então você não pode entrar se não tiver um conjunto de shell válido.

    
por 22.11.2016 / 17:35
2

Não há retorno. Haveria uma mensagem de erro como ...

Cannot execute /does/not/exist: No such file or directory.

Você pode adicionar a invocação de zsh sem modificar o AD.

echo 'exec zsh' >> ~/.bashrc

Então, toda vez que você fizer login com bash , você iniciará zsh automaticamente.

    
por 22.11.2016 / 17:31