aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncaen <mail@duncano.de>2017-05-25 01:25:34 +0200
committerDuncaen <mail@duncano.de>2017-05-25 01:25:34 +0200
commit047e9d0def1d85c3591c62e5d5a1a8cb77ac9d9f (patch)
treede289db23c4eab7adaf6680d3a48736900bde2f6
parent05d48b2df2929b9d4f7b420463c4695ed1c09e53 (diff)
downloadlobase-047e9d0def1d85c3591c62e5d5a1a8cb77ac9d9f.tar.gz
sbin/nologin: import
-rw-r--r--sbin/Makefile2
-rw-r--r--sbin/nologin/Makefile8
-rw-r--r--sbin/nologin/nologin.859
-rw-r--r--sbin/nologin/nologin.c63
4 files changed, 131 insertions, 1 deletions
diff --git a/sbin/Makefile b/sbin/Makefile
index 843d01d..eaa2517 100644
--- a/sbin/Makefile
+++ b/sbin/Makefile
@@ -1,3 +1,3 @@
TOPDIR?=..
-SUBDIR= mknod
+SUBDIR= mknod nologin
include ${.TOPDIR}/mk/bsd.subdir.mk
diff --git a/sbin/nologin/Makefile b/sbin/nologin/Makefile
new file mode 100644
index 0000000..f2ef6d3
--- /dev/null
+++ b/sbin/nologin/Makefile
@@ -0,0 +1,8 @@
+# $OpenBSD: Makefile,v 1.5 1997/02/16 04:15:31 downsj Exp $
+
+.TOPDIR?=../..
+
+PROG= nologin
+MAN= nologin.8
+
+include ${.TOPDIR}/mk/bsd.prog.mk
diff --git a/sbin/nologin/nologin.8 b/sbin/nologin/nologin.8
new file mode 100644
index 0000000..efd6153
--- /dev/null
+++ b/sbin/nologin/nologin.8
@@ -0,0 +1,59 @@
+.\" $OpenBSD: nologin.8,v 1.10 2007/05/31 19:19:46 jmc Exp $
+.\" $NetBSD: nologin.8,v 1.3 1995/03/18 14:59:09 cgd Exp $
+.\"
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)nologin.8 8.1 (Berkeley) 6/19/93
+.\"
+.Dd $Mdocdate: May 31 2007 $
+.Dt NOLOGIN 8
+.Os
+.Sh NAME
+.Nm nologin
+.Nd politely refuse a login
+.Sh SYNOPSIS
+.Nm nologin
+.Sh DESCRIPTION
+.Nm
+displays a message that an account is not available and
+exits non-zero.
+It is intended as a replacement shell field for accounts that
+have been disabled.
+.Pp
+If the file
+.Pa /etc/nologin.txt
+exists,
+.Nm
+displays its contents to the user instead of the default message.
+.Sh SEE ALSO
+.Xr login 1
+.Sh HISTORY
+The
+.Nm
+command appeared in
+.Bx 4.4 .
diff --git a/sbin/nologin/nologin.c b/sbin/nologin/nologin.c
new file mode 100644
index 0000000..a01f421
--- /dev/null
+++ b/sbin/nologin/nologin.c
@@ -0,0 +1,63 @@
+/* $OpenBSD: nologin.c,v 1.6 2015/10/13 07:10:38 doug Exp $ */
+
+/*
+ * Copyright (c) 1997, Jason Downs. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/types.h>
+#include <err.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Distinctly different from _PATH_NOLOGIN. */
+#define _PATH_NOLOGIN_TXT "/etc/nologin.txt"
+
+#define DEFAULT_MESG "This account is currently not available.\n"
+
+/*ARGSUSED*/
+int
+main(int argc, char *argv[])
+{
+ int nfd;
+ ssize_t nrd;
+ char nbuf[BUFSIZ];
+
+ if (pledge("stdio rpath", NULL) == -1)
+ err(1, "pledge");
+
+ nfd = open(_PATH_NOLOGIN_TXT, O_RDONLY);
+ if (nfd < 0) {
+ write(STDOUT_FILENO, DEFAULT_MESG, strlen(DEFAULT_MESG));
+ exit (1);
+ }
+
+ while ((nrd = read(nfd, nbuf, sizeof(nbuf))) != -1 && nrd != 0)
+ write(STDOUT_FILENO, nbuf, nrd);
+ close (nfd);
+
+ exit (1);
+}