[Bug 6182] nologin: new applet

Natanael Copa ncopa at alpinelinux.org
Mon Feb 15 16:23:51 UTC 2016

On Sat, 13 Feb 2016 13:32:10 +0100
Bernhard Reutner-Fischer <rep.dot.nop at gmail.com> wrote:

> On February 13, 2016 12:04:40 PM GMT+01:00, bugzilla at busybox.net wrote:
> >https://bugs.busybox.net/show_bug.cgi?id=6182
> >
> >Mike Frysinger <vapier at gentoo.org> changed:
> >
> >           What    |Removed                     |Added
> >----------------------------------------------------------------------------
> >            Summary|Add /sbin/nologin           |nologin: new applet  
> We already have that:
> https://git.busybox.net/busybox/tree/applets_sh/nologin

Alpine Linux has a problem with this approach.

On Alpine Linux you have busybox tools by default, but for users who
may need the bloaty GNU variants (or any other implementation) they can
simply `apk add coreutils` or similar. This works because no package
"owns" the applet symlinks pointing to busybox. Instead `busybox
--install -s` is run from a trigger[1], whenever any package is
installed or removed that has files in /usr/bin /bin etc. This means
that when you `apk del coreutils`, the busybox symlinks are restored

With the shell script "applets" we have the problem that we get real
files, "owned" by a package. This causes a conflict error when
installing the package. Yes, the package manager can be told to accept
overwrites of given files, however, you can not make it automagically
restore the busybox applet when you remove the bloated version of it.

As you may understand this feature is pretty important for Alpine Linux
so we ship our own[2] nologin applet for busybox.

[1]: http://git.alpinelinux.org/cgit/aports/tree/main/busybox/busybox.trigger#n18
[2]: http://git.alpinelinux.org/cgit/aports/tree/main/busybox/nologin.c

More information about the busybox mailing list