chsh - change login shell


chsh [-D binddn] [-P path] [-s shell] [-l] [-q] [-u] [-v] [user]


chsh is used to change the user login shell. A normal user may only change the login shell for their own account, the super user may change the login shell for any account.

If a shell is not given on the command line, chsh operates in an interactive fashion, prompting the user with the current login shell. Enter the new value to change the field, or leave the line blank to use the current value. Enter none to remove the current value. The current value is displayed between a pair of [ ] marks.

The only restrictions placed on the login shell is that the command name must be listed in /etc/shells, unless the invoker is the super-user, and then any value may be added. An account with a restricted login shell may not change their login shell.

This version of chsh is able to change the shell of local, NIS, NIS+ and LDAP accounts , if the permissions allow it.


-D, --binddn binddn
 Use the Distinguished Name binddn to bind to the LDAP directory. The user will be prompted for a password for simple authentication.
-P, --path path
 The passwd file is located below the specified directory path. chsh will use this files, not /etc/passwd. This is useful for example on NIS master servers, where you do not want to give all users in the NIS database automatic access to your NIS server and the NIS map is build from special files.
-s, --shell
 Specify your login shell.
-l, --list-shells
 Print the list of shells listed in /etc/shells and exit.
-q, --quite
 Don’t be verbose.
-u, --usage
 Print a usage message and exit.
 Print a more verbose help text and exit.
-v, --version
 Print version information and exit.


/etc/passwd - user account information
/etc/shells - list of valid login shells


chfn(1), passwd(5), shells(5)


Thorsten Kukuk <>

openSUSE Logo