chsh

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Script error: No such module "For".

Template:Infobox Software chsh (an abbreviation of "change shell") is a command on Unix-like operating systems that is used to change a login shell. Users can either supply the pathname of the shell that they wish to change to on the command line, or supply no arguments, in which case <templatestyles src="Mono/styles.css" />chsh allows the user to change the shell interactively.[1]

Usage

<templatestyles src="Mono/styles.css" />chsh is a setuid program that modifies the <templatestyles src="Mono/styles.css" />/etc/passwd file, and only allows ordinary users to modify their own login shells. The superuser can modify the shells of other users, by supplying the name of the user whose shell is to be modified as a command-line argument. For security reasons, the shells that both ordinary users and the superuser can specify are limited by the contents of the <templatestyles src="Mono/styles.css" />/etc/shells file, with the pathname of the shell being required to be exactly as it appears in that file. (This security feature is alterable by re-compiling the source code for the command with a different configuration option, and thus is not necessarily enabled on all systems.) The superuser can, however, also modify the password file directly, setting any user's shell to any executable file on the system without reference to <templatestyles src="Mono/styles.css" />/etc/shells and without using <templatestyles src="Mono/styles.css" />chsh.[1][2][3]

On most systems, when <templatestyles src="Mono/styles.css" />chsh is invoked without the <templatestyles src="Mono/styles.css" />-s command-line option (to specify the name of the shell), it prompts the user to select one. On Mac OS X, if invoked without the <templatestyles src="Mono/styles.css" />-s option, <templatestyles src="Mono/styles.css" />chsh displays a text file in the default editor (initially set to vim) allowing the user to change all of the features of their user account that they are permitted to change, the pathname of the shell being the name next to "Shell:". When the user quits vim, the changes made there are transferred to the /etc/passwd file which only root can change directly.[2][4]

Using the <templatestyles src="Mono/styles.css" />-s option (for example: % chsh -s /usr/local/bin/bash) greatly simplifies the task of changing shells.

Depending on the system, <templatestyles src="Mono/styles.css" />chsh may or may not prompt the user for a password before changing the shell, or entering interactive mode. On some systems, use of <templatestyles src="Mono/styles.css" />chsh by non-root users is disabled entirely by the sysadmin.[4]

On many Linux distributions, the <templatestyles src="Mono/styles.css" />chsh command is a PAM-aware application. As such, its behaviour can be tailored, using PAM configuration options, for individual users. For example, an <templatestyles src="Mono/styles.css" />auth directive that specifies the <templatestyles src="Mono/styles.css" />pam_listfile.so module can be used to deny <templatestyles src="Mono/styles.css" />chsh access to individual users, by specifying a file of the usernames to deny access to with the <templatestyles src="Mono/styles.css" />listfile= option to that module (along with the <templatestyles src="Mono/styles.css" />sense=deny option).[5]

Portability

POSIX does not describe utilities such as <templatestyles src="Mono/styles.css" />chsh, which are used for modifying the user's entry in <templatestyles src="Mono/styles.css" />/etc/passwd. Most Unix-like systems provide <templatestyles src="Mono/styles.css" />chsh.[6] SVr4-based systems provided a similar capability with passwd. Two of the three remaining systems (IBM AIX[7] and HP-UX[8]) provide <templatestyles src="Mono/styles.css" />chsh in addition to <templatestyles src="Mono/styles.css" />passwd -e. The exception is Solaris, where non-administrators are unable to change their shell unless a network name server such as NIS or NIS+ is installed.[9][10] The obsolete[11] SGI SVr4 system IRIX64 also lacked <templatestyles src="Mono/styles.css" />chsh.

See also

References

<templatestyles src="Reflist/styles.css" />

  1. a b Script error: No such module "citation/CS1".
  2. a b Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. a b Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

Further reading

  • Script error: No such module "citation/CS1". — some examples of invoking <templatestyles src="Mono/styles.css" />chsh with the <templatestyles src="Mono/styles.css" />-s and <templatestyles src="Mono/styles.css" />-l options

External links

Script error: No such module "Side box".

Script error: No such module "Navbox".