]> granicus.if.org Git - shadow/commitdiff
Log UID in nologin
authorVladimir Ivanov <ivlad@nxadi.com>
Fri, 3 Aug 2018 01:44:16 +0000 (09:44 +0800)
committerVladimir Ivanov <ivlad@nxadi.com>
Mon, 13 Aug 2018 08:46:04 +0000 (16:46 +0800)
Sometimes getlogin() may fail, e.g., in a chroot() environment or due to NSS
misconfiguration. Loggin UID allows for investigation and troubleshooting in
such situation.

src/nologin.c

index 7fe8a6a20aef1a19854240047f9004e8d22f90a4..98989d26b0889e35e3877823789776265cbd6a90 100644 (file)
@@ -24,7 +24,6 @@
  * SUCH DAMAGE.
  */
 
-#include <config.h>
 
 #ident "$Id$"
 
@@ -36,6 +35,7 @@
 int main (void)
 {
        const char *user, *tty;
+       uid_t uid;
 
        tty = ttyname (0);
        if (NULL == tty) {
@@ -45,8 +45,9 @@ int main (void)
        if (NULL == user) {
                user = "UNKNOWN";
        }
+       uid = getuid (); /* getuid() is always successful */
        openlog ("nologin", LOG_CONS, LOG_AUTH);
-       syslog (LOG_CRIT, "Attempted login by %s on %s", user, tty);
+       syslog (LOG_CRIT, "Attempted login by %s (UID: %d) on %s", user, uid, tty);
        closelog ();
 
        printf ("%s", "This account is currently not available.\n");