From ebec7389d6965d2ac1d940cf59f03fa5c3c3ca6e Mon Sep 17 00:00:00 2001 From: Thomas Bushnell Date: Tue, 16 Sep 1997 19:18:27 +0000 Subject: Tue Sep 16 14:37:51 1997 Thomas Bushnell, n/BSG * priv.h (nosuid, noexec): New variables. * init-init.c (nosuid, noexec): New variables, initialized to zero. * file-exec.c (diskfs_S_file_exec): If noexec is on, then prohibit all execution with EACCES. If nosuid is on, then prohibit setuid or setgid execution by silently omitting the uid substitution. * opts-std-startup.c (parse_startup_opt): Implement --no-suid and --no-exec. * opts-common.c (diskfs_common_options): Add --no-suid and --no-exec. * opts-std-runtime.c (struct parse_hook): Add nosuid and noexec. (parse_opt) [cases 'S', 'E', OPT_SUID_OK, OPT_EXEC_OK] Understand --no-suid, --no-exec, --suid-ok, and --exec-ok. (parse_opt) [case ARGP_KEY_INIT]: Initialize H->nosuid and H->noexec. (OPT_SUID_OK, OPT_EXEC_OK): New macros. (std_runtime_options): Add --suid-ok and --exec-ok. (set_opts): Set nosuid and noexec from H->nosuid and H->noexec. * opts-common.c (diskfs_common_options): Rename --nosync to --no-sync; leave --nosync as an alias. --- libdiskfs/opts-common.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libdiskfs/opts-common.c') diff --git a/libdiskfs/opts-common.c b/libdiskfs/opts-common.c index 5d94f7b4..41bf1a8b 100644 --- a/libdiskfs/opts-common.c +++ b/libdiskfs/opts-common.c @@ -1,6 +1,6 @@ /* Options common to both startup and runtime - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. Written by Miles Bader @@ -32,6 +32,9 @@ const struct argp_option diskfs_common_options[] = "If INTERVAL is supplied, sync all data not actually written to disk" " every INTERVAL seconds, otherwise operate in synchronous mode (the" " default is to sync every 30 seconds)"}, - {"nosync", 'n', 0, 0, "Don't automatically sync data to disk"}, + {"no-sync", 'n', 0, 0, "Don't automatically sync data to disk"}, + {"nosync", 0, 0, OPTION_ALIAS | OPTION_HIDDEN}, + {"no-suid", 'S', 0, 0, "Don't permit set-uid or set-gid execution"}, + {"no-exec", 'E', 0, 0, "Don't permit any execution of files on this filesystem"}, {0, 0} }; -- cgit v1.2.3