Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in Unsupported. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#35724 - [zsh] /etc/shells should keep /bin/zsh

Attached to Project: Arch Linux
Opened by Sébastien Luttringer (seblu) - Saturday, 08 June 2013, 16:15 GMT
Last edited by Bartłomiej Piotrowski (Barthalion) - Tuesday, 20 August 2013, 20:52 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Pierre Schmitz (Pierre)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 8
Private No


We should keep /bin/zsh as the canonical path into /etc/shells (and sheebangs).
/bin is the legacy default path for all shells we have.
Changing it will only introduce incompatibility and lack of understanding.

By example with chsh:

# chsh
Changing shell for root.
New shell [/bin/zsh]: /bin/zsh
chsh: Warning: "/bin/zsh" is not listed in /etc/shells.
chsh: Shell not changed.
This task depends upon

Closed by  Bartłomiej Piotrowski (Barthalion)
Tuesday, 20 August 2013, 20:52 GMT
Reason for closing:  Fixed
Comment by Lukas B (teateawhy) - Thursday, 13 June 2013, 06:28 GMT
Comment by Doug Newgard (Scimmia) - Saturday, 29 June 2013, 18:32 GMT
Right now we have bash that can only be /bin/bash and zsh that can only be /usr/bin/zsh.

Confusing? Hell yeah.

Edit: I just took a look at the install files for shells I could find in the main repos. Currently in /etc/shells, we have:


Comment by Sébastien Luttringer (seblu) - Wednesday, 17 July 2013, 13:15 GMT
I would correct the purpose of this bug report. We should harmonize our paths in /etc/shells. Use the both (/usr/bin and /bin) or one of both for all but not a mix of them.

I got today pam issues today with box with /bin/zsh in /etc/passwd avoiding login as root... The pam logs was not really verbose and helpful.
Comment by Sébastien Luttringer (seblu) - Wednesday, 17 July 2013, 13:27 GMT
Thinking of libnss (ldap or sql) backends which most of time use /bin/shell. The best solution seems to have the both path for all shells.
Comment by Michael Laß (Bevan) - Tuesday, 13 August 2013, 17:14 GMT
When using grml-zsh-config $SHELL is set to /bin/zsh. The fact that this is not included in /etc/shells leads to issues e.g. when running pkexec:

The value for the SHELL variable was not found the /etc/shells file
This incident has been reported.
Comment by Pierre Schmitz (Pierre) - Tuesday, 13 August 2013, 19:55 GMT
good point; will add both paths then.
Comment by Karol Błażewicz (karol) - Wednesday, 14 August 2013, 18:30 GMT