Use of SHELL env var by login

Ernie Rael
Wed Sep 28 04:17:00 GMT 2016

On 9/27/2016 3:58 AM, Andrew Schulman wrote:
>> I just moved the cygwin installation. The "last" peculiarity I ran into
>> was that the login shell, with the shortcut "F:\cygwin64\bin\mintty.exe
>> -i /Cygwin-Terminal.ico -", a ps showed
>>       /cygdrive/c/cygwin64/bin/bash
>> instead of /usr/bin/bash
>> I tracked this down the the windows setting for SHELL, the one you get
>> to from windows' SystemProperties dialog, which was
>> C:/cygwin64/bin/bash. The /etc/passwd file specifies /bin/bash.
>> Is this expected behavior? (Though I can see why SHELL is there and I'd
>> need to change it)
> /etc/passwd is deprecated. Since Cygwin 2.5 IIRC, Cygwin no longer looks for it,
> getting information about users directly from the operating system instead.

Not exactly. IIUC /etc/passwd is *not* deprecated. /etc/passwd is used 
if "passwd: files" is in /etc/nsswitch.conf. But I'll be studying about 
all this in detail very soon.

In any event, one of the reasons I'm moving the cygwin installation is 
so that I have a copy. I'm making sure I know how to switch between 
installations. I'm finally upgrading my installation from 1.7 (ancient, 
before SAM/AD and new permissions) and I want to be able to go back 
temporarily if things don't go smoothly.

The only reason I started this thread, is that it seems wrong that 
$SHELL is used to specify the login shell. AFAIK, it should come from 
passwd, or (according to my reading of cygwin docs) from one of the 
methods specified by /etc/nsswitch.conf in modern cygwin releases. When 
I upgrade, I guess I'll find out.

> Unless you have a special need for it, you should remove it. Same for
> /etc/group.
> In the absence of /etc/passwd, setting SHELL is the right way to set your login
> shell.
> Andrew
> --
> Problem reports:
> FAQ:         
> Documentation:
> Unsubscribe info:

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list