]> granicus.if.org Git - sudo/commitdiff
set $USER for root too
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 5 Nov 1998 02:21:35 +0000 (02:21 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 5 Nov 1998 02:21:35 +0000 (02:21 +0000)
sudo.c

diff --git a/sudo.c b/sudo.c
index 943759c89b2cd53895224385cf94c9406ea5746d..58ae6120b294615c574a9118522d1e7ba0fd3039 100644 (file)
--- a/sudo.c
+++ b/sudo.c
@@ -919,6 +919,14 @@ void set_perms(perm, sudo_mode)
                                        exit(1);
                                    }
 
+                                   /* Set $USER to match target user */
+                                   if (sudo_setenv("USER", pw->pw_name)) {
+                                       (void) fprintf(stderr,
+                                           "%s: cannot allocate memory!\n",
+                                           Argv[0]);
+                                       exit(1);
+                                   }
+
                                    if (setgid(pw->pw_gid)) {
                                        (void) fprintf(stderr,
                                            "%s: cannot set gid to %d: ",  
@@ -928,24 +936,17 @@ void set_perms(perm, sudo_mode)
                                    }
 
                                    /*
-                                    * Initialize group vector and set
-                                    * $USER only if we are going to be
-                                    * a non-root user.
+                                    * Initialize group vector only if are
+                                    * going to run as a non-root user.
                                     */
-                                   if (strcmp(runas_user, "root") != 0) {
-                                       if (initgroups(runas_user, pw->pw_gid) == -1) {
-                                           (void) fprintf(stderr,
-                                               "%s: cannot set group vector ",
-                                               Argv[0]);
-                                           perror("");
-                                           exit(1);
-                                       }
-                                       if (sudo_setenv("USER", runas_user)) {
-                                           (void) fprintf(stderr,
-                                               "%s: cannot allocate memory!\n",
-                                               Argv[0]);
-                                           exit(1);
-                                       }
+                                   if (strcmp(runas_user, "root") != 0 &&
+                                       initgroups(runas_user, pw->pw_gid)
+                                       == -1) {
+                                       (void) fprintf(stderr,
+                                           "%s: cannot set group vector ",
+                                           Argv[0]);
+                                       perror("");
+                                       exit(1);
                                    }
 
                                    if (setuid(pw->pw_uid)) {