Go to main content

man pages section 3: Basic Library Functions

Exit Print View

Updated: July 2017
 
 

getusershell(3C)

Name

getusershell, setusershell, endusershell - get legal user shells

Synopsis

#include <unistd.h>

char *getusershell(void);
void setusershell(void);
void endusershell(void);

Description

The getusershell() function returns a pointer to a legal user shell as defined by the system manager in the file /etc/shells. If /etc/shells does not exist, the following locations of the standard system shells are used in its place:

/bin/bash
/bin/csh
/bin/jsh
/bin/ksh
/bin/ksh93
/bin/pfbash
/bin/pfcsh
/bin/pfksh
/bin/pfksh93
/bin/pfsh
/bin/pftcsh
/bin/pfzsh
/bin/sh
/bin/tcsh
/bin/zsh
/sbin/jsh
/sbin/pfsh
/sbin/sh
/usr/bin/bash
/usr/bin/csh
/usr/bin/jsh
/usr/bin/ksh
/usr/bin/ksh93
/usr/bin/pfbash
/usr/bin/pfcsh
/usr/bin/pfksh
/usr/bin/pfksh93
/usr/bin/pfsh
/usr/bin/pftcsh
/usr/bin/pfzsh
/usr/bin/sh
/usr/bin/tcsh
/usr/bin/zsh
/usr/sbin/jsh
/usr/sbin/pfsh
/usr/sbin/sh
/usr/sfw/bin/zsh
/usr/xpg4/bin/pfsh
/usr/xpg4/bin/sh

The getusershell() function opens the file /etc/shells, if it exists, and returns the next entry in the list of shells.

The setusershell() function rewinds the file or the list.

The endusershell() function closes the file, frees any memory used by getusershell() and setusershell(), and rewinds the file /etc/shells.

Return Values

The getusershell() function returns a null pointer on EOF.

Bugs

All information is contained in memory that may be freed with a call to endusershell(), so it must be copied if it is to be saved.

Notes

Restricted shells should not be listed in /etc/shells.