1 From 7ee2d1e7fd55da7074a39b41fe342e261dd1f191 Mon Sep 17 00:00:00 2001
2 From: Tomas Sykora <tosykora@redhat.com>
3 Date: Wed, 17 Aug 2016 10:12:11 +0200
4 Subject: [PATCH] Sudo logs username root instead of realuser
6 RHEL7 sudo logs username root instead of realuser in /var/log/secure
9 Patch50: sudo-1.8.6p7-logsudouser.patch
15 plugins/sudoers/logging.c | 14 +++++++-------
16 plugins/sudoers/sudoers.h | 1 +
17 2 files changed, 8 insertions(+), 7 deletions(-)
19 diff --git a/plugins/sudoers/logging.c b/plugins/sudoers/logging.c
20 index 9562609..775fd0c 100644
21 --- a/plugins/sudoers/logging.c
22 +++ b/plugins/sudoers/logging.c
23 @@ -116,7 +116,7 @@ do_syslog(int pri, char *msg)
24 * Log the full line, breaking into multiple syslog(3) calls if necessary
27 - maxlen = def_syslog_maxlen - (strlen(fmt) - 5 + strlen(user_name));
28 + maxlen = def_syslog_maxlen - (strlen(fmt) - 5 + strlen(sudo_user_name));
29 for (p = msg; *p != '\0'; ) {
32 @@ -132,7 +132,7 @@ do_syslog(int pri, char *msg)
36 - mysyslog(pri, fmt, user_name, p);
37 + mysyslog(pri, fmt, sudo_user_name, p);
39 *tmp = save; /* restore saved character */
41 @@ -140,11 +140,11 @@ do_syslog(int pri, char *msg)
42 for (p = tmp; *p == ' '; p++)
45 - mysyslog(pri, fmt, user_name, p);
46 + mysyslog(pri, fmt, sudo_user_name, p);
49 fmt = _("%8s : (command continued) %s");
50 - maxlen = def_syslog_maxlen - (strlen(fmt) - 5 + strlen(user_name));
51 + maxlen = def_syslog_maxlen - (strlen(fmt) - 5 + strlen(sudo_user_name));
54 sudoers_setlocale(oldlocale, NULL);
55 @@ -191,10 +191,10 @@ do_logfile(const char *msg)
56 timestr = "invalid date";
58 len = asprintf(&full_line, "%s : %s : HOST=%s : %s",
59 - timestr, user_name, user_srunhost, msg);
60 + timestr, sudo_user_name, user_srunhost, msg);
62 len = asprintf(&full_line, "%s : %s : %s",
63 - timestr, user_name, msg);
64 + timestr, sudo_user_name, msg);
67 sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
68 @@ -844,7 +844,7 @@ send_mail(const char *fmt, ...)
70 if ((timestr = get_timestr(time(NULL), def_log_year)) == NULL)
71 timestr = "invalid date";
72 - (void) fprintf(mail, "\n\n%s : %s : %s : ", user_host, timestr, user_name);
73 + (void) fprintf(mail, "\n\n%s : %s : %s : ", user_host, timestr, sudo_user_name);
75 (void) vfprintf(mail, fmt, ap);
77 diff --git a/plugins/sudoers/sudoers.h b/plugins/sudoers/sudoers.h
78 index 28dbbb3..99e137b 100644
79 --- a/plugins/sudoers/sudoers.h
80 +++ b/plugins/sudoers/sudoers.h
81 @@ -188,6 +188,7 @@ struct sudo_user {
83 * Shortcuts for sudo_user contents.
85 +#define sudo_user_name (sudo_user.pw->pw_name)
86 #define user_name (sudo_user.name)
87 #define user_uid (sudo_user.uid)
88 #define user_gid (sudo_user.gid)