Bug 1393347 - accountservice sets users as system users when login shell is empty
Summary: accountservice sets users as system users when login shell is empty
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: accountsservice
Version: 7.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Ray Strode [halfline]
QA Contact: Desktop QE
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-11-09 11:32 UTC by Oliver Ilian
Modified: 2019-02-20 21:07 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-02-20 21:07:33 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Oliver Ilian 2016-11-09 11:32:21 UTC
Description of problem:
When we add a user via sssd to a system, and the user had no loginShell attribute in LDAP, the user is treated as system user and does not show up in the user list of GDM.

Version-Release number of selected component (if applicable):
accountsservice-0.6.35-12.el7.x86_64
gdm-3.14.2-19.el7.x86_64
sssd-1.14.0-43.el7.x86_64

How reproducible:
For every user without a log in shell set

Steps to Reproduce:
1. Create a user in LDAP without the loginShell attribute
2. Use sssd to set up the user

Actual results:
User is seen as system user and does not show up in GDM

Expected results:
If the loginShell is empty, the system should fall back to the system default shell as set in /etc/default/useradd

Comment 2 Ray Strode [halfline] 2016-11-10 20:26:37 UTC
maybe.  I do wonder if some system services will start showing up as normal user accounts if we do this.

Comment 3 Oliver Ilian 2016-11-10 20:36:27 UTC
mmhhh.. good point. Maybe System user/Accounts should be (if not other needed) set to loginShell as /sbin/nologin (or /bin/false)?

Comment 4 Ray Strode [halfline] 2019-02-20 21:01:55 UTC
looks like the login command does this:

→       if (pwd->pw_shell == NULL || *pwd->pw_shell == '\0')•
→       →       pwd->pw_shell = _PATH_BSHELL;•


where _PATH_BSHELL is libc defined default bourne shell ("/bin/sh").

perhaps accountsservice should use the same logic.

Comment 5 Ray Strode [halfline] 2019-02-20 21:07:33 UTC
i've filed https://gitlab.freedesktop.org/accountsservice/accountsservice/issues/69 for now.  I think we should deal with this upstream, and potentially backport the change down the road (maybe just in rhel8 following a rebase?).

Closing, but if you were really hoping to see this land in rhel 7 on a more accelerated schedule, please reopen.


Note You need to log in before you can comment on or make changes to this bug.