Michal Schmidt e43452
From ecac03685b4679d53c0ec86db257e061bec2d2c9 Mon Sep 17 00:00:00 2001
Michal Schmidt e43452
From: Michal Schmidt <mschmidt@redhat.com>
Michal Schmidt e43452
Date: Sat, 19 Nov 2011 01:17:46 +0100
Michal Schmidt f1996e
Subject: [PATCH] pam-module: treat "cron" in PAM_TTY as empty tty
Michal Schmidt e43452
Michal Schmidt e43452
cron sets PAM_TTY to "cron" and it has been doing it for a long time.
Michal Schmidt e43452
It cannot be changed because user configurations may depend on it.
Michal Schmidt e43452
Michal Schmidt e43452
https://bugzilla.redhat.com/show_bug.cgi?id=727315
Michal Schmidt e43452
(cherry picked from commit 1a4459d63323cdfdb8751077e555ddbbf80564b1)
Michal Schmidt e43452
---
Michal Schmidt e43452
 src/logind-session.c |    4 ++--
Michal Schmidt e43452
 src/pam-module.c     |    4 ++++
Michal Schmidt e43452
 2 files changed, 6 insertions(+), 2 deletions(-)
Michal Schmidt e43452
Michal Schmidt e43452
diff --git a/src/logind-session.c b/src/logind-session.c
Michal Schmidt e43452
index b0a09e3..63ee758 100644
Michal Schmidt e43452
--- a/src/logind-session.c
Michal Schmidt e43452
+++ b/src/logind-session.c
Michal Schmidt e43452
@@ -536,7 +536,7 @@ int session_start(Session *s) {
Michal Schmidt e43452
         if (r < 0)
Michal Schmidt e43452
                 return r;
Michal Schmidt e43452
 
Michal Schmidt e43452
-        log_full(s->display || s->tty ? LOG_INFO : LOG_DEBUG,
Michal Schmidt e43452
+        log_full(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG,
Michal Schmidt e43452
                  "New session %s of user %s.", s->id, s->user->name);
Michal Schmidt e43452
 
Michal Schmidt e43452
         /* Create cgroup */
Michal Schmidt e43452
@@ -659,7 +659,7 @@ int session_stop(Session *s) {
Michal Schmidt e43452
         assert(s);
Michal Schmidt e43452
 
Michal Schmidt e43452
         if (s->started)
Michal Schmidt e43452
-                log_full(s->display || s->tty ? LOG_INFO : LOG_DEBUG,
Michal Schmidt e43452
+                log_full(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG,
Michal Schmidt e43452
                          "Removed session %s.", s->id);
Michal Schmidt e43452
 
Michal Schmidt e43452
         /* Kill cgroup */
Michal Schmidt e43452
diff --git a/src/pam-module.c b/src/pam-module.c
Michal Schmidt e43452
index e650886..46b7bec 100644
Michal Schmidt e43452
--- a/src/pam-module.c
Michal Schmidt e43452
+++ b/src/pam-module.c
Michal Schmidt e43452
@@ -463,6 +463,10 @@ _public_ PAM_EXTERN int pam_sm_open_session(
Michal Schmidt e43452
                 if (isempty(display))
Michal Schmidt e43452
                         display = tty;
Michal Schmidt e43452
                 tty = "";
Michal Schmidt e43452
+        } else if (streq(tty, "cron")) {
Michal Schmidt e43452
+                /* cron has been setting PAM_TTY to "cron" for a very long time
Michal Schmidt e43452
+                 * and it cannot stop doing that for compatibility reasons. */
Michal Schmidt e43452
+                tty = "";
Michal Schmidt e43452
         }
Michal Schmidt e43452
 
Michal Schmidt e43452
         if (!isempty(cvtnr))