What to do about nologin(8)?

Colin Percival colin.percival at wadham.ox.ac.uk
Mon Feb 23 09:45:16 PST 2004


   As anyone who reads cvs-all (or Mark Johnston's wonderful
summaries thereof) will know, I recently added logging into
nologin(8): Instead of simply printing an error message, it
now (via syslog) records the refused login attempt.
   For security reasons, nologin(8) must be statically linked;
as a result, adding logging has increased the binary size by
slightly over 100K (on i386).  For historical reasons (which
is to say, "nobody seems to know why"), nologin is located in
/sbin, which means that this has a non-trivial effect upon
the space used on the root partition.  Some people are unhappy
about this.
   I can see a number of possible options; I'd like to hear
opinions on which would be the best.

1. Leave everything as it is right now.
    Pro: Simplicity; logging is useful.
    Con: Bloating of the root filesystem.
2. Revert to the previous situation, without any logging.
    Pro: Saves space on the root filesystem
    Con: Logging would be useful.
3. Move nologin(8) to /usr/sbin
    Pro: There is no reason for nologin(8) to be in /sbin,
         since it isn't needed in single-user mode; this
         would retain logging without bloating the root fs.
    Con: Everyone who has hard-coded /sbin/nologin would
         have to fix their code.
4. Move nologin(8) to /usr/sbin, leave a symlink behind.
    Pro: Any time that users would be trying to log in,
         /usr/sbin should be mounted, so this should give
         the desired behaviour without bloating /.
    Con: [ -f /sbin/nologin ] would fail, which might be
         problematic.
5. Move nologin(8) to /usr/sbin, and leave /sbin/nologin
    behind with logging disabled.
    Pro: System administrators who want to record logins
         refused by nologin can do so easily; anyone who
         doesn't need this will see the same behaviour as
         in the past.
    Con: Having two different binaries with the same name
         in the path might cause problems.
6. Get rid of nologin(8) completely, and tell people to
    install Wes Peters' sysutils/no-login port instead.
    Pro: It would save space on the root filesystem, and
         even reduce buildworld time by somewhere around
         half a second. :)

Colin Percival



More information about the freebsd-current mailing list