module writing / compiling problems?
Jason Gerfen
jason.gerfen at scl.utah.edu
Thu Jun 10 13:29:26 UTC 2004
Jason Gerfen wrote:
> I am doing something wrong as it comes to writting a pam module. If
> anyone can tell me what I am doing wrong, it would be greatly
> appreciated.
>
> This module does one thing, on the pam_sm_authenticate() function it
> attempts to call the pam_get_user() function and on success or failure
> it logs it to syslog using a _pam_log() function.
>
> Here is the code: File is named lame.c
> [SNIP]
> #include <stdio.h>
> #include <syslog.h>
> #include <stdarg.h>
>
> #define PAM_SM_AUTH
>
> #include <pam_modules.h>
>
> static void _pam_log(int err, const char *format, ...)
> {
> va_list args;
>
> va_start(args, format);
> openlog("PAM-lame", LOG_CONS | LOG_PID, LOG_AUTHPRIV);
> syslog(err, format, args);
> va_end(args);
> closelog();
> }
>
> PAM_EXTERN
> int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
> const char **argv)
> {
> int retval;
> const char *user;
>
> if((retval = pam_get_user(pamh, &user, "looser login:") !=
> PAM_SUCCESS)) {
> _pam_log(LOG_ERR, "Cannot obtain user name: %s",
> pam_strerror(pamh, retval));
> return(PAM_AUTHINFO_UNAVAIL); }
>
> if((retval = pam_get_user(pamh, &user, "looser login:") ==
> PAM_SUCCESS)) {
> _pam_log(LOG_ERR, "Obtained username: %s",
> pam_strerror(pamh, retval));
> return(PAM_SUCCESS); }
>
> _pam_log(LOG_ERR, "Just checking", pam_strerror(pamh, retval));
>
> return retval;
>
> }
>
> #ifdef PAM_STATIC
> struct pam_module _pam_looser_modstruct = {
> "pam_looser",
> pam_sm_authenticate,
> NULL,
> NULL,
> NULL,
> NULL,
> NULL,
> };
> #endif
> [/SNIP]
>
> And I am compiling using a simply Makefile listed below:
> Any help tips, pointers etc would be greatly appreciated. Also if
> there is a "typo" please disregard as on the production box it
> compiles just fine, and of couse I do have it added to the
> /etc/pam.d/login file like so:
>
> auth required pam_looser.so
>
> Thanks in advance,
>
Oops, I forgot the makefile
[SNIP]
CC=gcc
CFLAGS=-fPIC
LDFLAGS=-x --shared
LIBS=-lwrap -lpam -lc
SRCS=lame.c
OBJS=lame.o
LIBSHARED=pam_looser.so
SECUREDIRECTORY=/lib/security
SECUREMODE=644
INSTALL=install
all: $(LIBSHARED)
install: all
$(INSTALL) -m $(SECUREMODE) $(LIBSHARED) $(SECUREDIRECTORY)
$(LIBSHARED): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $? $(LIBS)
$(OBJS): $(SRCS)
$(CC) $(CFLAGS) -o $@ -c $*.c
clean:
rm -f $(OBJS) $(LIBSHARED) a.out core *~
[/SNIP]
--
Jason Gerfen
"...Sometimes I just yell at myself. And it
makes me sad, sometimes I make myself cry..."
~ My nephew Dawsyn
More information about the Pam-list
mailing list