From d3e36f332e6aa81924470b704d0e63f0b381befe Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Thu, 20 Dec 2018 12:44:28 +0100 Subject: [PATCH] fuse-overlayfs: set suid when running in a user namespace Signed-off-by: Giuseppe Scrivano --- main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 2a46990..faeed43 100644 --- a/main.c +++ b/main.c @@ -3537,6 +3537,8 @@ fuse_opt_proc (void *data, const char *arg, int key, struct fuse_args *outargs) return 1; if (strcmp (arg, "allow_other") == 0) return 1; + if (strcmp (arg, "suid") == 0) + return 1; if (key == FUSE_OPT_KEY_NONOPT) { @@ -3559,7 +3561,10 @@ get_new_args (int *argc, char **argv) int i; char **newargv = malloc (sizeof (char *) * (*argc + 2)); newargv[0] = argv[0]; - newargv[1] = "-odefault_permissions,allow_other"; + if (geteuid() == 0) + newargv[1] = "-odefault_permissions,allow_other,suid"; + else + newargv[1] = "-odefault_permissions,allow_other"; for (i = 1; i < *argc; i++) newargv[i + 1] = argv[i]; (*argc)++;