pam_permit.c revision 90236
150476Speter/*- 211023Speter * Copyright 2001 Mark R V Murray 3206622Suqs * All rights reserved. 479538Sru * 511023Speter * Redistribution and use in source and binary forms, with or without 611023Speter * modification, are permitted provided that the following conditions 760258Ssheldonh * are met: 811023Speter * 1. Redistributions of source code must retain the above copyright 956467Sasmodai * notice, this list of conditions and the following disclaimer. 1084877Syokota * 2. Redistributions in binary form must reproduce the above copyright 1184877Syokota * notice, this list of conditions and the following disclaimer in the 1284877Syokota * documentation and/or other materials provided with the distribution. 1384877Syokota * 1484877Syokota * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1584877Syokota * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1611023Speter * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1734842Speter * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1811023Speter * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1911023Speter * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20131530Sru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2134842Speter * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2234842Speter * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2311023Speter * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24117011Sru * SUCH DAMAGE. 25117011Sru */ 26117011Sru 2734842Speter#include <sys/cdefs.h> 2811023Speter__FBSDID("$FreeBSD: head/lib/libpam/modules/pam_permit/pam_permit.c 90236 2002-02-05 07:53:00Z des $"); 2934842Speter 3057676Ssheldonh#include <sys/param.h> 3157676Ssheldonh 3211023Speter#define PAM_SM_AUTH 3311023Speter#define PAM_SM_ACCOUNT 3434842Speter#define PAM_SM_SESSION 3557676Ssheldonh#define PAM_SM_PASSWORD 3657676Ssheldonh 3734842Speter#include <security/pam_appl.h> 3811023Speter#include <security/pam_modules.h> 3957676Ssheldonh#include <security/pam_mod_misc.h> 4057676Ssheldonh 4134842Speter#define NOBODY "nobody" 4234842Speter 4311023SpeterPAM_EXTERN int 44117011Srupam_sm_authenticate(pam_handle_t *pamh, int flags __unused, int argc, const char **argv) 45117011Sru{ 46117011Sru struct options options; 47117011Sru int retval; 4811023Speter const char *user; 4957676Ssheldonh 5057676Ssheldonh pam_std_option(&options, NULL, argc, argv); 5134842Speter 5211023Speter PAM_LOG("Options processed"); 5334842Speter 5434842Speter /* We always need to know who the user is */ 5534842Speter user = NULL; 5675531Sdd retval = pam_get_user(pamh, &user, NULL); 5711023Speter if (retval != PAM_SUCCESS) 5811023Speter PAM_RETURN(retval); 5911023Speter 6011023Speter PAM_LOG("Got user: %s", user); 6111023Speter 6211023Speter if (user == NULL || *user == '\0') 6311023Speter pam_set_item(pamh, PAM_USER, (const void *)NOBODY); 6411023Speter user = NULL; 6536753Sjkoshy 6657676Ssheldonh PAM_RETURN(PAM_SUCCESS); 6757676Ssheldonh} 68131530Sru 69131530SruPAM_EXTERN int 7034842Speterpam_sm_setcred(pam_handle_t *pamh __unused, int flags __unused, int argc, const char **argv) 7134842Speter{ 7234842Speter struct options options; 7334842Speter 7411023Speter pam_std_option(&options, NULL, argc, argv); 7511023Speter 7611023Speter PAM_LOG("Options processed"); 77117011Sru 78117011Sru PAM_RETURN(PAM_SUCCESS); 79117011Sru} 80117011Sru 8111023SpeterPAM_EXTERN int 82131530Srupam_sm_acct_mgmt(pam_handle_t *pamh __unused, int flags __unused, int argc ,const char **argv) 83131530Sru{ 8411023Speter struct options options; 8511023Speter 8634842Speter pam_std_option(&options, NULL, argc, argv); 8734842Speter 8834842Speter PAM_LOG("Options processed"); 8911023Speter 9011023Speter PAM_RETURN(PAM_SUCCESS); 9157676Ssheldonh} 9257676Ssheldonh 93131530SruPAM_EXTERN int 94131530Srupam_sm_chauthtok(pam_handle_t *pamh __unused, int flags __unused, int argc, const char **argv) 9511023Speter{ 9611023Speter struct options options; 9711023Speter 9811023Speter pam_std_option(&options, NULL, argc, argv); 9924090Smpp 10068716Sru PAM_LOG("Options processed"); 10124090Smpp 10211023Speter PAM_RETURN(PAM_SUCCESS); 10311023Speter} 10411023Speter 10511023SpeterPAM_EXTERN int 10611023Speterpam_sm_open_session(pam_handle_t *pamh __unused, int flags __unused, int argc, const char **argv) 10711023Speter{ 10811023Speter struct options options; 10911023Speter 11011023Speter pam_std_option(&options, NULL, argc, argv); 11111023Speter 11211023Speter PAM_LOG("Options processed"); 11379727Sschweikh 11411023Speter PAM_RETURN(PAM_SUCCESS); 115117011Sru} 116117011Sru 11711023SpeterPAM_EXTERN int 11811023Speterpam_sm_close_session(pam_handle_t *pamh __unused, int flags __unused, int argc, const char **argv) 11911023Speter{ 12011023Speter struct options options; 12111023Speter 12211023Speter pam_std_option(&options, NULL, argc, argv); 12311023Speter 12411023Speter PAM_LOG("Options processed"); 12511023Speter 12611023Speter PAM_RETURN(PAM_SUCCESS); 12711023Speter} 12811023Speter 12911023SpeterPAM_MODULE_ENTRY("pam_permit"); 13011023Speter