/etc/shells is a text file which contains the full pathnames of valid login shells. This file is consulted by chsh(1) and available to be queried by other programs.
Be aware that there are programs which consult this file to find out if a user is a normal user; for example, FTP daemons traditionally disallow access to users with shells not included in this file.
/etc/shells may contain the following paths:
/bin/sh /bin/bash /bin/csh
chsh(1), getusershell(3), pam_shells(8)
chsh(1), getusershell(3), mksh(1), oksh(1), pam_shells(8), runuser(1), scponly(8), shellinaboxd(1), su(1).