]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commit
libpam: set pam module path to ${base_libdir}/security
authorYi Zhao <yi.zhao@eng.windriver.com>
Fri, 3 Jan 2025 09:24:43 +0000 (17:24 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 4 Jan 2025 12:34:01 +0000 (12:34 +0000)
commitbc307ac262956a763fb68d621fb6463b1460bf59
tree99da3656025e243af566fd82274fb48e6c17089e
parentfa9b9e599bbf3ac73c7a9b1d15ccb0e0bbbe4c11
libpam: set pam module path to ${base_libdir}/security

After upgrading to 1.7.0, the pam module path is set to
${libdir}/security[1]. But from the pam.conf(5) man page, the default
location seems to be "Module location: /lib/security/ or
/lib64/security/, depending on the architecture"[2].

Many third-party pam modules still use {base_libdir}/security as the
default module path, such as pam_lastlog2 (from util-linux), pam_cgroup
(from libcgroup), pam_cap (from libcap), etc.
So currently if you don't use the absolute path to these modules in the
files in /etc/pam.d/, they will not be found:

PAM unable to dlopen(/usr/lib/security/pam_lastlog2.so):
/usr/lib/security/pam_lastlog2.so: cannot open shared object file: No such file or directory

This change only affects sysvinit without usrmerge feature enabled, and
has no effect on systems using systemd.

[1] https://git.openembedded.org/openembedded-core/commit/?id=00eb730291f9630eb70480d37ed48fbadecc547a
[2] https://www.man7.org/linux/man-pages/man5/pam.conf.5.html

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-extended/pam/libpam_1.7.0.bb