Subject: pkg/27162: pkgsrc creates an inadequate /etc/shells if it doesn't already exist.
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <gavan@coolfactor.org>
List: pkgsrc-bugs
Date: 10/06/2004 12:21:27
>Number: 27162
>Category: pkg
>Synopsis: pkgsrc creates an inadequate /etc/shells if it doesn't already exist.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Oct 06 12:22:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator: Gavan Fantom
>Release: Solaris 10
>Organization:
>Environment:
SunOS yellow-30 5.10 s10_68 sun4u sparc SUNW,Ultra-60
>Description:
Installing a shell from pkgsrc on a system which doesn't already have an /etc/shells file causes one to be created, containing only the shell being installed from pkgsrc. On Solaris, dtlogin looks at /etc/shells and prevents users of shells not in it from logging in.
If no /etc/shells is present, a default list of shells is assumed. On NetBSD this consists of /bin/sh and /bin/csh. On Solaris this includes:
/bin/bash /bin/csh
/bin/jsh /bin/ksh
/bin/pfcsh /bin/pfksh
/bin/pfsh /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/pfcsh
/usr/bin/pfksh /usr/bin/pfsh
/usr/bin/sh /usr/bin/tcsh
/usr/bin/zsh /usr/xpg4/bin/sh
As NetBSD ships with an /etc/shells by default, this doesn't really bite NetBSD users. However, should an administrator decide to delete /etc/shells, this would still bite. The impact on Solaris is much greater, as the default list includes many more shells, and Solaris doesn't ship with /etc/shells by default.
>How-To-Repeat:
Install a shell from pkgsrc on a system without /etc/shells. Observe being able to log in beforehand, but not afterwards. Observe /etc/shells file containing only one entry.
>Fix:
An ideal fix would be to read the shell list from somewhere and create an /etc/shells file that matches the default.
>Release-Note:
>Audit-Trail:
>Unformatted: