Skip to content

Support for vendor locations (pam_shells and /etc/shells) #498

@dvzrv

Description

@dvzrv

Hi! I'm currently looking into the integration of /etc/shells in the packaging ecosystem on Arch Linux.
Our current way of dealing with /etc/shells is as follows:

  • some shells (e.g. sh and bash) are in the file by default (probably for historical reasons)
  • other shells sed themselves in and out of the file in package addition/ removal hooks

This means, that /etc/shells provides a form of state, which needs to be maintained by the package management system or the user, or by other means.
When looking at the concept of immutable systems with vendor locations such as /usr, it becomes non-trivial to deal with files such as /etc/shells which are really an accumulation of several inputs though.
Would it be possible to support a vendor location (e.g. /usr/etc/shells.d/ or /usr/lib/shells.d/), which is trumped by /etc/shells and may contain drop-in files?
That way providers of shell packages on distributions can just add their respective files containing the shell path(s) and pam_shells would just consume them from that vendor location.

The upside to this is, that a system can be run with a removed /etc and be bootstrapped from the vendor location and that this would simplify the packaging of shells on downstream distributions. I'm aware, that other projects would need to buy in on this as well (e.g. shadow, util-linux)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions