I.T. Security and Linux Administration

Jun 28 2011   9:48PM GMT

PAM module compiling

Eric Hansen Eric Hansen Profile: Eric Hansen

This is going to be a short article, but one I think will be quite useful for people who venture into making their own PAM modules. This might not work for your system, but for mine (and others it seems too), it does. Note too though that I will most likely be writing a series of articles on writing a custom PAM authentication (and possibly other types) module as this can be very useful for custom set ups.

The official PAM documentation for compiling says to do the following:

gcc -fPIC -c pam_module.c
gcc -shared -o pam_module.so pam_module.o -lpam

This might work (I personally don’t see why running two different gcc commands but at the same it clearly makes sense as you have to compile the source to a object file, then compile the object file to a shared library). I haven’t tried it, however. What I have been doing is the following:
gcc -fPIC -c pam_module.c
ld -G -o /lib/security/pam_module.so pam_module.o -lpam[/code]

This does the same as above. ld is mostly used for creating shared library. I set the path to /lib/security/ as that’s the default path for PAM modules to be found at. If you’re running a 64-bit system, however, it could also be /lib64/security/. We link to the PAM library as we need the symbols from it. As for the gcc line, the “-fPIC”, I haven’t had any problems with it missing. However, its done in the official text so I tried to stay as close as possible to that information.

Ultimately, I created a Bash file, that has the following text:

#!/bin/sh

gcc -fPIC -c pam_module.c
ld -G -o /lib/security/pam_module.so pam_module.o -lpam

rm -rf pam_module.o

I remove the pam_module.o file because it helps me determine if gcc actually compiled the source or not (paranoia really, nothing more).

 Comment on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: