<div dir="ltr"><div><div>Hi Steve,<br><br></div>The greeter is a full session so it runs a PAM session as the lightdm user. Other display managers (e.g. GDM) also do it this way. A full session is required to be able to make a greeter that can access many modern features.<br><br></div>--Robert<br></div><br><div class="gmail_quote"><div dir="ltr">On Fri, 4 Dec 2015 at 10:00 Steve Grubb <<a href="mailto:sgrubb@redhat.com">sgrubb@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
While working on the audit patch for lightdm, I found out that for every<br>
login, it runs exactly 2 pam sessions back to back. No other login program<br>
does this. I showed this to an upstream pam maintainer and he was also<br>
puzzled. With the audit patch applied, I see the following:<br>
<br>
# ausearch --start 10:30 -x lightdm --raw -m user_start | aureport --summary<br>
--pid<br>
<br>
Pid Summary Report<br>
==========================<br>
total  pid<br>
==========================<br>
1  8939<br>
1  8971<br>
<br>
The first session shows this:<br>
<br>
# ausearch --start 10:30 -p 8939 --raw | aureport --summary --event -i<br>
<br>
Event Summary Report<br>
======================<br>
total  type<br>
======================<br>
1  CRED_ACQ<br>
1  CRED_DISP<br>
1  USER_START<br>
1  USER_END<br>
1  USER_LOGIN<br>
<br>
And the second this:<br>
<br>
[root@x2 ~]# ausearch --start 10:30 -p 8971 --raw | aureport --summary --event<br>
-i<br>
<br>
Event Summary Report<br>
======================<br>
total  type<br>
======================<br>
1  LOGIN<br>
1  USER_AUTH<br>
1  USER_ACCT<br>
1  CRED_ACQ<br>
1  USER_START<br>
1  USER_LOGIN<br>
1  USER_ROLE_CHANGE<br>
<br>
The first session is the odd one because its missing several events. Zeroing in<br>
on that one:<br>
<br>
# ausearch --start 10:30 -p 8939 -i -m USER_START<br>
----<br>
type=USER_START msg=audit(12/03/2015 10:34:39.814:649) : pid=8939 uid=root<br>
auid=unset ses=unset subj=system_u:system_r:xdm_t:s0-s0:c0.c1023<br>
msg='op=PAM:session_open grantors=pam_unix,pam_systemd acct=lightdm<br>
exe=/usr/sbin/lightdm hostname=? addr=? terminal=:0 res=success'<br>
<br>
What I found was that lightdm-greeter is running a pam session that appears to<br>
be for the sole purpose of calling pam_systemd.  In checking to see what all<br>
uses pam_systemd, I found that its normally called in system-auth which the<br>
regular lightdm calls. This is how all the other system entry points start the<br>
user session.<br>
<br>
So, I was curious, what's the story behind the lightdm-greeter pam setup? Can<br>
llightdm be reworked to not need to run pam in the greeter? In reading the<br>
pam_systemd man page, it also says that it sets the $XDG_SESSION_ID variable<br>
which is based on the kernel assigned credentials set by pam_loginuid which is<br>
only run in the second session. (See the LOGIN event in the above reports.) It<br>
falls back to tracking a session another way, but it prefers being called<br>
after pam_loginuid. It seems like something is odd here.<br>
<br>
Thanks,<br>
-Steve<br>
<br>
_______________________________________________<br>
LightDM mailing list<br>
<a href="mailto:LightDM@lists.freedesktop.org" target="_blank">LightDM@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/lightdm" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/lightdm</a><br>
</blockquote></div>