[Bug 1232669] New: gdm: gdm-config not working on openSUSE
https://bugzilla.suse.com/show_bug.cgi?id=1232669 Bug ID: 1232669 Summary: gdm: gdm-config not working on openSUSE Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: GNOME Assignee: gnome-bugs@suse.de Reporter: matthias.gerstner@suse.com QA Contact: qa-bugs@suse.de CC: dimstar@opensuse.org Target Milestone: --- Found By: --- Blocker: --- Newer GDM versions ship with a `gdm-config` utility that is supposed to allow configuring things like fingerprint authentication and smartcard authentication. It turns out this utility is not working on openSUSE: gdm-config smartcard -e (gdm-config:32822): Gdm-CRITICAL **: 17:31:29.942: Failed to handle “smartcard” command: No PAM module available for Smart Card authentication The reason why it fails is, that it looks for the gdm-smartcard PAM file in /etc, not in /usr/lib/pam.d: strace gdm-config smartcard -e |& grep smartcard execve("/usr/bin/gdm-config", ["gdm-config", "smartcard", "-e"], 0x7ffeaa26de10 /* 58 vars */) = 0 newfstatat(AT_FDCWD, "/etc/pam.d/gdm-smartcard", 0x7ffed4ce4810, 0) = -1 ENOENT (No such file or directory) (gdm-config:32830): Gdm-CRITICAL **: 17:33:00.721: Failed to handle “smartcard” command: No PAM module available for Smart ) = 128 But even when working around this by placing a symlink, this still doesn't work: gdm-config smartcard -e (gdm-config:32857): Gdm-CRITICAL **: 17:38:31.688: Failed to handle “smartcard” command: Failed to run a required distro hook: No distro detected, no hook to run It seems during build time of GDM the DISTRO meson option needs to be set and a "distro hook" script needs to be specified that performs the necessary configuration steps, if any. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1232669 https://bugzilla.suse.com/show_bug.cgi?id=1232669#c1 Thorsten Kukuk <kukuk@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kukuk@suse.com --- Comment #1 from Thorsten Kukuk <kukuk@suse.com> --- (In reply to Matthias Gerstner from comment #0)
The reason why it fails is, that it looks for the gdm-smartcard PAM file in /etc, not in /usr/lib/pam.d:
This is a generic upstream bug, the official Linux-PAM config directories are since many, many years /usr/lib/pam.d and, if there is no config, /etc/pam.d as fallback. That's meanwhile used by many distributions and not openSUSE specific. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1232669 https://bugzilla.suse.com/show_bug.cgi?id=1232669#c2 xiaoguang wang <xiaoguang.wang@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xiaoguang.wang@suse.com --- Comment #2 from xiaoguang wang <xiaoguang.wang@suse.com> --- (In reply to Matthias Gerstner from comment #0)
gdm-config smartcard -e (gdm-config:32857): Gdm-CRITICAL **: 17:38:31.688: Failed to handle “smartcard” command: Failed to run a required distro hook: No distro detected, no hook to run
It seems during build time of GDM the DISTRO meson option needs to be set and a "distro hook" script needs to be specified that performs the necessary configuration steps, if any.
In meson.build file There is: distro_autodetect_map = { '/etc/redhat-release': 'redhat', '/etc/fedora-release': 'redhat', '/etc/exherbo-release': 'exherbo', '/etc/arch-release': 'arch', '/etc/lfs-release': 'lfs', } distro = get_option('distro') if distro == 'none' foreach _file, _pam_conf : distro_autodetect_map distro_check = run_command('test', '-f', _file) if distro_check.returncode() == 0 distro = _pam_conf endif endforeach endif # If requested, try autodetecting from release files (see NetworkManager source) default_pam_config = get_option('default-pam-config') if default_pam_config == 'autodetect' default_pam_config = distro endif Maybe we need add openSUSE release in distro_autodetect_map. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1232669 https://bugzilla.suse.com/show_bug.cgi?id=1232669#c3 --- Comment #3 from Thorsten Kukuk <kukuk@suse.com> --- That code is just wrong, somebody has no clue. The config search path on all this distros is the same: look in /etc/pam.d, and if there is no file, look in /usr/lib/pam.d. If you want to modify that config: If there is no file in /etc/pam.d,copy that from /usr/lib/pam.d to /etc/pam.d and modify it there. This is upstream behavior and not configurable by distributions. Even if a distribution does not use /usr/lib/pam.d by default: a third party application can use it. And if gdm-config can not handle this correct the code is broken by design and the author should start reading manual pages. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1232669 https://bugzilla.suse.com/show_bug.cgi?id=1232669#c4 --- Comment #4 from Matthias Gerstner <matthias.gerstner@suse.com> --- (In reply to kukuk@suse.com from comment #3)
This is upstream behavior and not configurable by distributions.
There are simply multiple aspects to this issue. The pam.d lookup problem will surely be easy to fix and can be handled by upstream. The other part is the integration problem for the smartcard auth setup. This has to be analyzed on our end. -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com