Files
shadow/debian/patches/431_su_uid_0_not_root
T

27 lines
880 B
Plaintext

Goal: don't assume uid 0 == "root", use getpwuid to fetch it
Fixes: #81924
Status wrt upstream: It was submitted upstream upstream (3 Jun 2005).
Some modification may be needed before its inclusion
upstream (multiple uid 0 accounts).
http://lists.alioth.debian.org/pipermail/pkg-shadow-devel/2005-June/001287.html
Index: shadow-4.1.0/src/su.c
===================================================================
--- shadow-4.1.0.orig/src/su.c
+++ shadow-4.1.0/src/su.c
@@ -449,7 +449,12 @@
optind++;
}
if ('\0' == name[0]) { /* use default user ID */
- (void) strcpy (name, "root");
+ struct passwd *root_pw = getpwuid(0);
+ if (root_pw == NULL) {
+ SYSLOG((LOG_CRIT, "There is no UID 0 user."));
+ su_failure(tty);
+ }
+ strcpy(name, root_pw->pw_name);
}
doshell = argc == optind; /* any arguments remaining? */