From e6de99eb01bf4c2e48564229125aca3aace88857 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 2 Jul 2025 17:16:51 -0400 Subject: [PATCH] multiuser: Change all groups in setup_environment. We need to change all groups, not just the primary group. Otherwise, other groups will be left intact, which may include groups the new user doesn't have permissions for. --- src/bin/multiuser/multiuser_utils.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/multiuser/multiuser_utils.cpp b/src/bin/multiuser/multiuser_utils.cpp index 1b0b5cade0..0033f124ef 100644 --- a/src/bin/multiuser/multiuser_utils.cpp +++ b/src/bin/multiuser/multiuser_utils.cpp @@ -202,6 +202,9 @@ setup_environment(struct passwd* passwd, bool preserveEnvironment, bool chngdir) if (passwd->pw_gid && setgid(passwd->pw_gid) != 0) return errno; + if (initgroups(passwd->pw_name, passwd->pw_gid) != 0) + return errno; + if (passwd->pw_uid && setuid(passwd->pw_uid) != 0) return errno;