I've joined my Ubuntu 16.04 Server to my windows domain using these instructions and everything is working great, except domain users have no default shell set when they log in over SSH, and end up with sh as a default.

I want to set bash as the default shell, but I don't know where the setting should go. Any help would be appreciated.

Local users (regardless of their logon method) and console sessions (regardless of the type of user) all work fine and use bash as the default shell. Please note that I can't use chsh because the domain users don't exist in /etc/passwd.


If the value for the user's shell is not provided by LDAP, you can set either of the options in the sssd.conf file:

  • shell_fallback to set a different shell used when no other setting is defined (by default it's /bin/sh and that's why your users get it)
  • override_shell to force a certain shell for all users
  • I was expecting shell_fallback to do the trick but it didn't: does that mean the setting is defined somewhere else and therefore the fallback is never needed? Regardless, override_shell worked perfectly, and in my environment the potential lack of user choice that comes from defining an override is a complete non-issue. – Jason Williams Aug 26 '16 at 14:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.