summaryrefslogtreecommitdiffstats
path: root/libmisc/console.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmisc/console.c')
-rw-r--r--libmisc/console.c108
1 files changed, 0 insertions, 108 deletions
diff --git a/libmisc/console.c b/libmisc/console.c
deleted file mode 100644
index c475aa2..0000000
--- a/libmisc/console.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 1991 , Julianne Frances Haugh
- * SPDX-FileCopyrightText: 1991 , Chip Rosenthal
- * SPDX-FileCopyrightText: 1996 - 1998, Marek Michałkiewicz
- * SPDX-FileCopyrightText: 2003 - 2005, Tomasz Kłoczko
- * SPDX-FileCopyrightText: 2007 - 2010, Nicolas François
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <config.h>
-#include "defines.h"
-#include <stdio.h>
-#include "getdef.h"
-#include "prototypes.h"
-
-#ident "$Id$"
-
-/*
- * This is now rather generic function which decides if "tty" is listed
- * under "cfgin" in config (directly or indirectly). Fallback to default if
- * something is bad.
- */
-static bool is_listed (const char *cfgin, const char *tty, bool def)
-{
- FILE *fp;
- char buf[1024], *s;
- const char *cons;
-
- /*
- * If the CONSOLE configuration definition isn't given,
- * fallback to default.
- */
-
- cons = getdef_str (cfgin);
- if (NULL == cons) {
- return def;
- }
-
- /*
- * If this isn't a filename, then it is a ":" delimited list of
- * console devices upon which root logins are allowed.
- */
-
- if (*cons != '/') {
- char *pbuf;
- strncpy (buf, cons, sizeof (buf));
- buf[sizeof (buf) - 1] = '\0';
- pbuf = &buf[0];
- while ((s = strtok (pbuf, ":")) != NULL) {
- if (strcmp (s, tty) == 0) {
- return true;
- }
-
- pbuf = NULL;
- }
- return false;
- }
-
- /*
- * If we can't open the console list, then call everything a
- * console - otherwise root will never be allowed to login.
- */
-
- fp = fopen (cons, "r");
- if (NULL == fp) {
- return def;
- }
-
- /*
- * See if this tty is listed in the console file.
- */
-
- while (fgets (buf, (int) sizeof (buf), fp) != NULL) {
- buf[strlen (buf) - 1] = '\0';
- if (strcmp (buf, tty) == 0) {
- (void) fclose (fp);
- return true;
- }
- }
-
- /*
- * This tty isn't a console.
- */
-
- (void) fclose (fp);
- return false;
-}
-
-/*
- * console - return 1 if the "tty" is a console device, else 0.
- *
- * Note - we need to take extreme care here to avoid locking out root logins
- * if something goes awry. That's why we do things like call everything a
- * console if the consoles file can't be opened. Because of this, we must
- * warn the user to protect against the remove of the consoles file since
- * that would allow an unauthorized root login.
- */
-
-bool console (const char *tty)
-{
- if (strncmp (tty, "/dev/", 5) == 0) {
- tty += 5;
- }
-
- return is_listed ("CONSOLE", tty, true);
-}
-