wdoekes / pam-imap

pam-imap 0.3.9 - PAM module that authenticates a user login against a remote IMAP(S) server.
GNU General Public License v2.0
7 stars 3 forks source link

how to compile on debian 11 bullseye #5

Open pyrates999 opened 2 years ago

pyrates999 commented 2 years ago

This came from the latest revision in the master branch (f90f4b7928b318a233c22236637ecb4f91a1515c). It fixes the segfault that happens in the check_user application.

The pam libraries are stored here: /lib/x86_64-linux-gnu/security

Instead of: /lib/security

Running configure like this: ./configure

Allows it to compile, but then this is shown in the auth.log files: PAM unable to dlopen(/lib/x86_64-linux-gnu/security/pam_imap.so): /lib/x86_64-linux-gnu/security/pam_imap.so: undefined symbol: pam_get_item

Running configure like this fixes it: LIBS="-lpam -lpam_misc" ./configure

Then you must manually copy the pam_imap.so file manually: cp -rf pam_imap.so /lib/x86_64-linux-gnu/security/pam_imap.so && ldconfig

However, you must still put the full path in the pam config file like this: auth required /lib/x86_64-linux-gnu/security/pam_imap.so conf=/etc/pam.d/pam_imap.conf

But if you just put it like this: auth required pam_imap.so conf=/etc/pam.d/pam_imap.conf

The auth.log files will show this: PAM unable to dlopen(pam_imap.so): /lib/security/pam_imap.so: cannot open shared object file: No such file or directory

The pam library pam_unix.so does work fine here: account required pam_unix.so

So something during compiling is telling pam that pam_imap.so is expected to be stored in /lib/security/pam_imap.so instead of /lib/x86_64-linux-gnu/security/pam_imap.so

This does not effect the check_user application when it's ran.

wdoekes commented 2 years ago

How about now with b623d57aa0897681663c4bcc301536e0c543bc74 ?

Note that I could not find the /lib/security issue. Looks like https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=978555 and not enough ldconfig/service restarts?

pyrates999 commented 2 years ago

I will check those changes tomorrow, thanks!