From: Peter Maydell <peter.maydell@linaro.org> To: Ian Jackson <ian.jackson@eu.citrix.com> Cc: QEMU Developers <qemu-devel@nongnu.org>, Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Ross Lagerwall <ross.lagerwall@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>, "open list:X86" <xen-devel@lists.xenproject.org>, xen-devel@nongnu.org Subject: Re: [Qemu-devel] [PATCH 7/8] os-posix: Provide new -runasid option Date: Fri, 6 Oct 2017 13:59:06 +0100 [thread overview] Message-ID: <CAFEAcA-xTX8sL-ybzTs0p68B522ME=ckLo6NL=A1WV8N8bSwoQ@mail.gmail.com> (raw) In-Reply-To: <1507133891-26013-8-git-send-email-ian.jackson@eu.citrix.com> On 4 October 2017 at 17:18, Ian Jackson <ian.jackson@eu.citrix.com> wrote: > This allows the caller to specify a uid and gid to use, even if there > is no corresponding password entry. This will be useful in certain > Xen configurations. > > Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> > --- > @@ -166,17 +187,19 @@ void os_parse_cmd_args(int index, const char *optarg) > > static void change_process_uid(void) > { > - if (user_pwd) { > - if (setgid(user_pwd->pw_gid) < 0) { > + if (user_pwd || user_uid != (uid_t)-1) { > + if (setgid(user_pwd ? user_pwd->pw_gid : user_gid) < 0) { > fprintf(stderr, "Failed to setgid(%d)\n", user_pwd->pw_gid); If you're changing the gid we pass to setgid() I think you should also change the value we tell the user we tried to use in the error message, or it could be rather confusing. > exit(1); > } > - if (initgroups(user_pwd->pw_name, user_pwd->pw_gid) < 0) { > + if ((user_pwd > + ? initgroups(user_pwd->pw_name, user_pwd->pw_gid) > + : setgroups(1, &user_gid)) < 0) { > fprintf(stderr, "Failed to initgroups(\"%s\", %d)\n", > user_pwd->pw_name, user_pwd->pw_gid); ...and here we might claim we failed initgroups() when we actually failed setgroups(). > exit(1); > } > - if (setuid(user_pwd->pw_uid) < 0) { > + if (setuid(user_pwd ? user_pwd->pw_uid : user_gid) < 0) { > fprintf(stderr, "Failed to setuid(%d)\n", user_pwd->pw_uid); This error message should be updated too. thanks -- PMM
WARNING: multiple messages have this Message-ID (diff)
From: Peter Maydell <peter.maydell@linaro.org> To: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, QEMU Developers <qemu-devel@nongnu.org>, Ross Lagerwall <ross.lagerwall@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>, "open list:X86" <xen-devel@lists.xenproject.org>, xen-devel@nongnu.org Subject: Re: [Qemu-devel] [PATCH 7/8] os-posix: Provide new -runasid option Date: Fri, 6 Oct 2017 13:59:06 +0100 [thread overview] Message-ID: <CAFEAcA-xTX8sL-ybzTs0p68B522ME=ckLo6NL=A1WV8N8bSwoQ@mail.gmail.com> (raw) In-Reply-To: <1507133891-26013-8-git-send-email-ian.jackson@eu.citrix.com> On 4 October 2017 at 17:18, Ian Jackson <ian.jackson@eu.citrix.com> wrote: > This allows the caller to specify a uid and gid to use, even if there > is no corresponding password entry. This will be useful in certain > Xen configurations. > > Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> > --- > @@ -166,17 +187,19 @@ void os_parse_cmd_args(int index, const char *optarg) > > static void change_process_uid(void) > { > - if (user_pwd) { > - if (setgid(user_pwd->pw_gid) < 0) { > + if (user_pwd || user_uid != (uid_t)-1) { > + if (setgid(user_pwd ? user_pwd->pw_gid : user_gid) < 0) { > fprintf(stderr, "Failed to setgid(%d)\n", user_pwd->pw_gid); If you're changing the gid we pass to setgid() I think you should also change the value we tell the user we tried to use in the error message, or it could be rather confusing. > exit(1); > } > - if (initgroups(user_pwd->pw_name, user_pwd->pw_gid) < 0) { > + if ((user_pwd > + ? initgroups(user_pwd->pw_name, user_pwd->pw_gid) > + : setgroups(1, &user_gid)) < 0) { > fprintf(stderr, "Failed to initgroups(\"%s\", %d)\n", > user_pwd->pw_name, user_pwd->pw_gid); ...and here we might claim we failed initgroups() when we actually failed setgroups(). > exit(1); > } > - if (setuid(user_pwd->pw_uid) < 0) { > + if (setuid(user_pwd ? user_pwd->pw_uid : user_gid) < 0) { > fprintf(stderr, "Failed to setuid(%d)\n", user_pwd->pw_uid); This error message should be updated too. thanks -- PMM _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-10-06 12:59 UTC|newest] Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-10-04 16:18 [Qemu-devel] [PATCH v2 0/*] xen: xen-domid-restrict improvements Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 1/8] xen: link against xentoolcore Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 3/8] xen: defer call to xen_restrict until after os_setup_post Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-09 15:50 ` [Qemu-devel] " Anthony PERARD 2017-10-09 15:50 ` Anthony PERARD 2017-10-09 16:58 ` [Qemu-devel] " Ian Jackson 2017-10-09 16:58 ` Ian Jackson 2017-10-10 11:40 ` [Qemu-devel] " Anthony PERARD 2017-10-10 11:40 ` Anthony PERARD 2017-10-10 17:16 ` [Qemu-devel] " Ian Jackson 2017-10-10 17:16 ` Ian Jackson 2017-10-09 17:00 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 4/8] xen: destroy_hvm_domain: Move reason into a variable Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 5/8] xen: move xc_interface compatibility fallback further up the file Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 6/8] xen: destroy_hvm_domain: Try xendevicemodel_shutdown Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 7/8] os-posix: Provide new -runasid option Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-06 12:47 ` [Qemu-devel] " Ross Lagerwall 2017-10-06 12:47 ` Ross Lagerwall 2017-10-06 14:24 ` [Qemu-devel] " Ian Jackson 2017-10-06 14:24 ` Ian Jackson 2017-10-06 14:39 ` Ian Jackson 2017-10-06 12:59 ` Peter Maydell [this message] 2017-10-06 12:59 ` [Qemu-devel] " Peter Maydell 2017-10-06 14:24 ` Ian Jackson 2017-10-06 14:24 ` Ian Jackson 2017-10-06 14:39 ` Ian Jackson 2017-10-09 5:46 ` Markus Armbruster 2017-10-09 5:46 ` Markus Armbruster 2017-10-09 15:05 ` Ian Jackson 2017-10-09 15:05 ` Ian Jackson 2017-10-09 15:24 ` Daniel P. Berrange 2017-10-09 15:24 ` Daniel P. Berrange 2017-10-09 16:52 ` Ian Jackson 2017-10-09 16:52 ` Ian Jackson 2017-10-09 16:59 ` Ian Jackson 2017-10-10 7:43 ` Markus Armbruster 2017-10-10 7:43 ` Markus Armbruster 2017-10-10 17:11 ` Ian Jackson 2017-10-10 17:11 ` Ian Jackson 2017-10-11 9:52 ` Ian Jackson 2017-10-09 15:14 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 8/8] RFC configure: do_compiler: Dump some extra info under bash Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-06 12:58 ` [Qemu-devel] [PATCH v2 0/*] xen: xen-domid-restrict improvements Ross Lagerwall 2017-10-06 12:58 ` Ross Lagerwall 2017-10-06 13:19 ` [Qemu-devel] [Xen-devel] " Paul Durrant 2017-10-06 13:19 ` Paul Durrant 2017-10-10 13:40 ` [Qemu-devel] [Xen-devel] " Ross Lagerwall 2017-10-10 13:40 ` Ross Lagerwall 2017-10-10 17:21 ` [Qemu-devel] [Xen-devel] " Ian Jackson 2017-10-10 17:21 ` Ian Jackson 2017-10-06 14:17 ` [Qemu-devel] " Ian Jackson 2017-10-06 14:17 ` Ian Jackson -- strict thread matches above, loose matches on Subject: below -- 2017-10-06 18:27 [Qemu-devel] [PATCH v3 0/8] " Ian Jackson 2017-10-06 18:27 ` [Qemu-devel] [PATCH 7/8] os-posix: Provide new -runasid option Ian Jackson 2017-11-06 12:29 ` Markus Armbruster 2017-11-06 12:29 ` Markus Armbruster 2017-11-06 15:16 ` Ian Jackson 2017-11-06 15:16 ` Ian Jackson 2017-11-06 18:40 ` Markus Armbruster 2017-11-06 18:40 ` Markus Armbruster 2017-11-08 11:15 ` Ian Jackson 2017-11-08 11:15 ` Ian Jackson 2017-10-04 15:53 [Qemu-devel] [PATCH v2 0/7] xen: xen-domid-restrict improvements Ian Jackson 2017-10-04 15:53 ` [Qemu-devel] [PATCH 7/8] os-posix: Provide new -runasid option Ian Jackson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAFEAcA-xTX8sL-ybzTs0p68B522ME=ckLo6NL=A1WV8N8bSwoQ@mail.gmail.com' \ --to=peter.maydell@linaro.org \ --cc=anthony.perard@citrix.com \ --cc=ian.jackson@eu.citrix.com \ --cc=jgross@suse.com \ --cc=qemu-devel@nongnu.org \ --cc=ross.lagerwall@citrix.com \ --cc=sstabellini@kernel.org \ --cc=xen-devel@lists.xenproject.org \ --cc=xen-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.