Allowing tcsh To Be a Log in Shell

After you have installed tcsh, you're almost finished. The final step is to make sure that tcsh can be used as a login shell. Typically, you select a login shell using a command like chsh or passwd –s. These commands will likely require that tcsh be registered with the system as a trusted shell. Also, your FTP server may reject connections to accounts that have tcsh as the login shell unless tcsh is registered as a trusted shell.

The most common method of informing the system of which shells are trusted is the /etc/shells file. Determine if a getusershell(3) manual page exists to find out if this is true for you. Typically, the trusted shell list is determined as follows:

  • If /etc/shells exists, the shells listed in it are considered trusted login shells. If /etc/shells is already present on your system, you only need to add the tcsh pathname to it.

  • If /etc/shells does not exist, there is a set of shells that the system considers to be trusted login shells by default. (The getusershell(3) manual page should indicate which shells are in this set.) In order to register tcsh, you must create /etc/shells and then add the pathname for tcsh as well as the paths of all the default shells. If you put only tcsh in the file, then the default shells will no longer be considered trusted!

Entries in /etc/shells must be full pathnames. The following is an example from one of my systems:

/bin/sh
/bin/csh
/bin/ksh
/bin/tcsh

After modifying /etc/shells, try changing ...

Get Using csh & tcsh now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.