umount: use helper= for all UIDs
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
a362ae601a
commit
f19c952b2f
|
@ -209,7 +209,7 @@ static const struct opt_map opt_map[] = {
|
|||
static int opt_nofail = 0;
|
||||
|
||||
static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_sizelimit,
|
||||
*opt_encryption, *opt_speed, *opt_comment, *opt_uhelper, *opt_phelper;
|
||||
*opt_encryption, *opt_speed, *opt_comment, *opt_uhelper, *opt_helper;
|
||||
|
||||
static int is_readonly(const char *node);
|
||||
static int mounted (const char *spec0, const char *node0);
|
||||
|
@ -229,7 +229,7 @@ static struct string_opt_map {
|
|||
{ "speed=", 0, &opt_speed },
|
||||
{ "comment=", 1, &opt_comment },
|
||||
{ "uhelper=", 0, &opt_uhelper },
|
||||
{ "phelper=", 0, &opt_phelper },
|
||||
{ "helper=", 0, &opt_helper },
|
||||
{ NULL, 0, NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -151,17 +151,16 @@ The syntax of external umount helpers is:
|
|||
.IR type.subtype ]
|
||||
.br
|
||||
|
||||
where the <suffix> is filesystem type or a value from "uhelper=" or "phelper="
|
||||
where the <suffix> is filesystem type or a value from "uhelper=" or "helper="
|
||||
mtab option. The \-t option is used for filesystems with subtypes support
|
||||
(for example /sbin/mount.fuse -t fuse.sshfs).
|
||||
|
||||
The uhelper (unprivileged umount helper) is possible to used when non-root user
|
||||
The uhelper= (unprivileged umount helper) is possible to use when non-root user
|
||||
wants to umount a mountpoint which is not defined in the /etc/fstab file (e.g
|
||||
devices mounted by udisk).
|
||||
|
||||
The phelper (privileged umount helper) is possible to used when root user wants
|
||||
to umount a mountpoint which should not be directly umounted by umount(8) (e.g.
|
||||
devices mounted by pam_mount).
|
||||
The helper= mount option redirects all umount requests to the
|
||||
/sbin/umount.<helper> independently on UID.
|
||||
|
||||
.SH FILES
|
||||
.I /etc/mtab
|
||||
|
|
|
@ -654,6 +654,15 @@ umount_file (char *arg) {
|
|||
if (!mc && verbose)
|
||||
printf(_("Could not find %s in mtab\n"), file);
|
||||
|
||||
if (mc) {
|
||||
/*
|
||||
* helper - umount helper (e.g. pam_mount)
|
||||
*/
|
||||
if (check_helper_umountprog(arg, arg, mc->m.mnt_opts,
|
||||
"helper=", &status))
|
||||
return status;
|
||||
}
|
||||
|
||||
if (restricted) {
|
||||
char *mtab_user = NULL;
|
||||
|
||||
|
@ -738,13 +747,6 @@ umount_file (char *arg) {
|
|||
mtab_user ? mtab_user : "root",
|
||||
fs->m.mnt_fsname, fs->m.mnt_dir);
|
||||
|
||||
} else if (mc) {
|
||||
/*
|
||||
* phelper - privileged umount helper (e.g. pam_mount)
|
||||
*/
|
||||
if (check_helper_umountprog(arg, arg, mc->m.mnt_opts,
|
||||
"phelper=", &status))
|
||||
return status;
|
||||
}
|
||||
|
||||
if (mc)
|
||||
|
|
|
@ -584,9 +584,9 @@ int mnt_context_prepare_umount(struct libmnt_context *cxt)
|
|||
|
||||
if (!rc && !cxt->helper) {
|
||||
|
||||
if (!cxt->restricted && (cxt->user_mountflags & MNT_MS_PHELPER))
|
||||
/* on phelper= mount option based helper */
|
||||
rc = prepare_helper_from_options(cxt, "phelper");
|
||||
if (cxt->user_mountflags & MNT_MS_HELPER)
|
||||
/* on helper= mount option based helper */
|
||||
rc = prepare_helper_from_options(cxt, "helper");
|
||||
|
||||
if (!rc && !cxt->helper)
|
||||
/* on fstype based helper */
|
||||
|
|
|
@ -439,7 +439,7 @@ extern int mnt_context_do_umount(struct libmnt_context *cxt);
|
|||
#define MNT_MS_LOOP (1 << 9)
|
||||
#define MNT_MS_NOFAIL (1 << 10)
|
||||
#define MNT_MS_UHELPER (1 << 11)
|
||||
#define MNT_MS_PHELPER (1 << 12)
|
||||
#define MNT_MS_HELPER (1 << 12)
|
||||
|
||||
/*
|
||||
* mount(2) MS_* masks (MNT_MAP_LINUX map)
|
||||
|
|
|
@ -155,7 +155,7 @@ static const struct libmnt_optmap userspace_opts_map[] =
|
|||
|
||||
{ "uhelper=", MNT_MS_UHELPER }, /* /sbin/umount.<helper> */
|
||||
|
||||
{ "phelper=", MNT_MS_PHELPER }, /* /sbin/umount.<helper> */
|
||||
{ "helper=", MNT_MS_HELPER }, /* /sbin/umount.<helper> */
|
||||
|
||||
{ NULL, 0, 0 }
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue