[hackers] [ubase][PATCH] Add nologin(8)

From: Mattias Andrée <maandree_AT_kth.se>
Date: Sat, 26 Mar 2016 11:30:56 +0100

Signed-off-by: Mattias Andrée <maandree_AT_kth.se>
---
 Makefile  |  2 ++
 nologin.8 | 21 +++++++++++++++++++++
 nologin.c | 22 ++++++++++++++++++++++
 3 files changed, 45 insertions(+)
 create mode 100644 nologin.8
 create mode 100644 nologin.c
diff --git a/Makefile b/Makefile
index 4ab1856..59616a4 100644
--- a/Makefile
+++ b/Makefile
_AT_@ -64,6 +64,7 @@ BIN = \
 	mkswap            \
 	mount             \
 	mountpoint        \
+	nologin           \
 	pagesize          \
 	passwd            \
 	pidof             \
_AT_@ -129,6 +130,7 @@ MAN8 = \
 	lsusb.8             \
 	mkswap.8            \
 	mount.8             \
+	nologin.8           \
 	pivot_root.8        \
 	readahead.8         \
 	rmmod.8             \
diff --git a/nologin.8 b/nologin.8
new file mode 100644
index 0000000..9ea1328
--- /dev/null
+++ b/nologin.8
_AT_@ -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.
diff --git a/nologin.c b/nologin.c
new file mode 100644
index 0000000..f06ec93
--- /dev/null
+++ b/nologin.c
_AT_@ -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;
+}
-- 
2.7.3
Received on Sat Mar 26 2016 - 11:30:56 CET

This archive was generated by hypermail 2.3.0 : Sat Mar 26 2016 - 11:36:15 CET