Bug 1539106

Summary: gdm autologin does not set /etc/environment variables anymore (regression)
Product: Red Hat Enterprise Linux 7 Reporter: Andreas Luik <andreas.luik>
Component: gdmAssignee: Ray Strode [halfline] <rstrode>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.4CC: jkoten, lmiksik, modehnal, rstrode, tpelka
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: gdm-3.26.2.1-4.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 13:10:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Repair autologin PAM configuration following rebase. none

Description Andreas Luik 2018-01-26 16:45:22 UTC
Description of problem:

Since the update to RHEL 7.4 (from 7.3), the environment variables from /etc/environment are not set by gdm anymore, if autologin is enabled (AutomaticLoginEnable=true).

This did work before the update, so it seems to be a regression.  In fact it seems that the considerable changes in /etc/pam.d/gdm-autologin seem to be the cause.

Notice: adding the following line solves the problem:

auth       required    pam_env.so

But I'm not sure whether this is the right fix ...

Version-Release number of selected component (if applicable): gdm-3.22.3-12.el7.x86_64


How reproducible: always


Steps to Reproduce:

1. echo "TESTVAR=myval" > /etc/environment
2. killall gdm
3. login as "localuser", open terminal, check environment: TESTVAR is set

4. Now enable gdm autologin: in /etc/gdm/custom.conf, add these settings in the [daemon] block:

AutomaticLoginEnable=true
AutomaticLogin=localuser

5. killall gdm
6. gdm automatically logins as "myuser", open terminal, check environment

Actual results:

TESTVAR is not set in environment

Expected results:

TESTVAR is set to "myval" in environment


Additional info:
This did work in RHEL 6.x and 7.3.

Comment 2 Ray Strode [halfline] 2018-01-26 19:59:37 UTC
i believe your fix is correct.  at some point upstream systemd started taking over the role of pam_env, so it got dropped from the pam service file.  downstream, we still depend on pam_env so need to reintroduce it.

Comment 4 Andreas Luik 2018-01-30 13:34:01 UTC
OK.  I'll (temporarily) add pam_env.so to gdm-autologin.  I'm curious how the final fix is gonna look like ... the pam.d/gdm-autologin changes since 7.3 are a little hard to understand: pam_gdm.so is only used there (and not documented), "auth include postlogin" is not included anymore (for whatever reason?).

Comment 5 Ray Strode [halfline] 2018-01-30 15:46:29 UTC
Created attachment 1388505 [details]
Repair autologin PAM configuration following rebase.

Resolves: #1539106

Comment 10 errata-xmlrpc 2018-04-10 13:10:18 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:0770