Add nologin(8) - ubase - suckless linux base utils
 (HTM) git clone git://git.suckless.org/ubase
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 6e7386edb34f5acdd5dbbee68e85b16415a3b4aa
 (DIR) parent e0dc3f9546b3cd839aef8e58376c6295679a5ed5
 (HTM) Author: Mattias Andrée <maandree@kth.se>
       Date:   Sat, 26 Mar 2016 11:30:56 +0100
       
       Add nologin(8)
       
       Signed-off-by: Mattias Andrée <maandree@kth.se>
       
       Diffstat:
         M Makefile                            |       2 ++
         A nologin.8                           |      21 +++++++++++++++++++++
         A nologin.c                           |      22 ++++++++++++++++++++++
       
       3 files changed, 45 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/Makefile b/Makefile
       @@ -64,6 +64,7 @@ BIN = \
                mkswap            \
                mount             \
                mountpoint        \
       +        nologin           \
                pagesize          \
                passwd            \
                pidof             \
       @@ -129,6 +130,7 @@ MAN8 = \
                lsusb.8             \
                mkswap.8            \
                mount.8             \
       +        nologin.8           \
                pivot_root.8        \
                readahead.8         \
                rmmod.8             \
 (DIR) diff --git a/nologin.8 b/nologin.8
       @@ -0,0 +1,21 @@
       +.Dd March 26, 2016
       +.Dt NOLOGIN 8
       +.Os ubase
       +.Sh NAME
       +.Nm nologin
       +.Nd refuse login
       +.Sh SYNOPSIS
       +.Nm
       +.Sh DESCRIPTION
       +.Nm
       +prints a message informing the user that she
       +is not allowed to log in. If /etc/nologin.txt
       +exists, its content is printed instead of
       +the default message.
       +.Pp
       +.Nm
       +is intended to be specified as the user's
       +default shell.
       +.Sh EXIT STATUS
       +.Nm
       +returns a status code indicating failure.
 (DIR) diff --git a/nologin.c b/nologin.c
       @@ -0,0 +1,22 @@
       +/* See LICENSE file for copyright and license details. */
       +#include <stdio.h>
       +#include <unistd.h>
       +#include <fcntl.h>
       +
       +int
       +main(void)
       +{
       +        int fd;
       +        char buf[BUFSIZ];
       +        ssize_t n;
       +
       +        fd = open("/etc/nologin.txt", O_RDONLY);
       +        if (fd >= 0) {
       +                while ((n = read(fd, buf, sizeof(buf))) > 0)
       +                        write(STDOUT_FILENO, buf, n);
       +                close(fd);
       +        } else {
       +                printf("The account is currently unavailable.\n");
       +        }
       +        return 1;
       +}