Presently, libmount-mount completely prohibits the use of -t by non-root
users. This breaks using -t in listing mode as a user, which represents
a regression against mount-deprecated, macosx and presumably *BSD.
This commit fixes the issue by deferring the mnt_context_is_restricted
check for -t until we know we're not in listing mode.
Signed-off-by: Rich Tollerton <rich.tollerton@ni.com>
/* only few options are allowed for non-root users */
if (mnt_context_is_restricted(cxt) &&
- !strchr("hlLUVvpris", c) &&
+ !strchr("hlLUVvprist", c) &&
c != MOUNT_OPT_TARGET &&
c != MOUNT_OPT_SOURCE)
exit_non_root(option_to_longopt(c, longopts));
goto done;
}
+ /* Non-root users are allowed to use -t to print_all(),
+ but not to mount */
+ if (mnt_context_is_restricted(cxt) && types)
+ exit_non_root("types");
+
if (oper && (types || all || mnt_context_get_source(cxt)))
usage(stderr);