Add nologin(8) - ubase - suckless linux base utils | |
git clone git://git.suckless.org/ubase | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 6e7386edb34f5acdd5dbbee68e85b16415a3b4aa | |
parent e0dc3f9546b3cd839aef8e58376c6295679a5ed5 | |
Author: Mattias Andrée <[email protected]> | |
Date: Sat, 26 Mar 2016 11:30:56 +0100 | |
Add nologin(8) | |
Signed-off-by: Mattias Andrée <[email protected]> | |
Diffstat: | |
M Makefile | 2 ++ | |
A nologin.8 | 21 +++++++++++++++++++++ | |
A nologin.c | 22 ++++++++++++++++++++++ | |
3 files changed, 45 insertions(+), 0 deletions(-) | |
--- | |
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 \ | |
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. | |
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; | |
+} |