Que se passe-t-il si un shell par défaut n'est pas installé?

Je travaille en tant que sysadmin dans une grande entreprise et je dois maintenir plusieurs windows et Linux (Ubuntu 16.04). Puisque je veux utiliser zsh au lieu de bash sur les machines virtuelles Linux, je dois changer mon shell par défaut.

Maintenant, je me connecte sur Linux avec mon count de domaine Windows qui applique les parameters AD; cela signifie que je ne peux pas changer le file passwd ou utiliser chsh pour changer mon shell par défaut, donc je devais find un autre moyen. Cette méthode consistait à appliquer le shell dans AD avec l'atsortingbut loginShell .

La question est: que se passe-t-il si je me connecte sur une machine virtuelle Linux qui n'a pas installé zsh, que se passe-t-il? Est-ce que ça tombe à bash / sh , est-ce que ça colle ou quelque chose d'autre?

Essayons!

Shell changé sur le server:

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

Connectez-vous:

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

A partir des journaux SSH sur le server:

 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 

Ligne-key: User myuser not allowed because shell /foo does not exist . Vous ne pouvez donc pas vous connecter si vous n'avez pas de jeu de shell valide.

Il n'y a pas de repli. Il y aurait un message d'erreur tel que …

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

Vous pouvez append l'invocation de zsh sans modifier AD.

 echo 'exec zsh' >> ~/.bashrc 

Ensuite, chaque fois que vous vous connectez avec bash , vous démarrez zsh automatiquement.