summaryrefslogtreecommitdiffstats
path: root/libmisc/sub.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-26 16:18:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-26 16:18:37 +0000
commitb6b00dd55e035bfbe311a527b567962ffa77ee43 (patch)
treecafc4d13785448e5a78bd40a51697ee07f07ac12 /libmisc/sub.c
parentAdding debian version 1:4.13+dfsg1-5. (diff)
downloadshadow-b6b00dd55e035bfbe311a527b567962ffa77ee43.tar.xz
shadow-b6b00dd55e035bfbe311a527b567962ffa77ee43.zip
Merging upstream version 1:4.15.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libmisc/sub.c')
-rw-r--r--libmisc/sub.c55
1 files changed, 0 insertions, 55 deletions
diff --git a/libmisc/sub.c b/libmisc/sub.c
deleted file mode 100644
index d30c4c7..0000000
--- a/libmisc/sub.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 1989 - 1991, Julianne Frances Haugh
- * SPDX-FileCopyrightText: 1996 - 1999, Marek Michałkiewicz
- * SPDX-FileCopyrightText: 2003 - 2006, Tomasz Kłoczko
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <config.h>
-
-#ident "$Id$"
-
-#include <pwd.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include "prototypes.h"
-#include "defines.h"
-#define BAD_SUBROOT2 "invalid root `%s' for user `%s'\n"
-#define NO_SUBROOT2 "no subsystem root `%s' for user `%s'\n"
-/*
- * subsystem - change to subsystem root
- *
- * A subsystem login is indicated by the presence of a "*" as
- * the first character of the login shell. The given home
- * directory will be used as the root of a new filesystem which
- * the user is actually logged into.
- */
-void subsystem (const struct passwd *pw)
-{
- /*
- * The new root directory must begin with a "/" character.
- */
-
- if (pw->pw_dir[0] != '/') {
- printf (_("Invalid root directory '%s'\n"), pw->pw_dir);
- SYSLOG ((LOG_WARN, BAD_SUBROOT2, pw->pw_dir, pw->pw_name));
- closelog ();
- exit (EXIT_FAILURE);
- }
-
- /*
- * The directory must be accessible and the current process
- * must be able to change into it.
- */
-
- if ( (chdir (pw->pw_dir) != 0)
- || (chroot (pw->pw_dir) != 0)) {
- (void) printf (_("Can't change root directory to '%s'\n"),
- pw->pw_dir);
- SYSLOG ((LOG_WARN, NO_SUBROOT2, pw->pw_dir, pw->pw_name));
- closelog ();
- exit (EXIT_FAILURE);
- }
-}
-