pam_rootok.c revision 79476
179476Smarkm/*- 279476Smarkm * Copyright (c) 2001 Mark R V Murray 379476Smarkm * All rights reserved. 479476Smarkm * 579476Smarkm * Redistribution and use in source and binary forms, with or without 679476Smarkm * modification, are permitted provided that the following conditions 779476Smarkm * are met: 879476Smarkm * 1. Redistributions of source code must retain the above copyright 979476Smarkm * notice, this list of conditions and the following disclaimer. 1079476Smarkm * 2. Redistributions in binary form must reproduce the above copyright 1179476Smarkm * notice, this list of conditions and the following disclaimer in the 1279476Smarkm * documentation and/or other materials provided with the distribution. 1379476Smarkm * 1479476Smarkm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1579476Smarkm * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1679476Smarkm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1779476Smarkm * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1879476Smarkm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1979476Smarkm * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2079476Smarkm * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2179476Smarkm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2279476Smarkm * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2379476Smarkm * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2479476Smarkm * SUCH DAMAGE. 2579476Smarkm * 2679476Smarkm * $FreeBSD: head/lib/libpam/modules/pam_rootok/pam_rootok.c 79476 2001-07-09 18:20:51Z markm $ 2779476Smarkm */ 2879476Smarkm 2979476Smarkm#define _BSD_SOURCE 3079476Smarkm 3179476Smarkm#include <unistd.h> 3279476Smarkm#include <syslog.h> 3379476Smarkm 3479476Smarkm#define PAM_SM_AUTH 3579476Smarkm 3679476Smarkm#include <security/pam_modules.h> 3779476Smarkm#include <pam_mod_misc.h> 3879476Smarkm 3979476SmarkmPAM_EXTERN int 4079476Smarkmpam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) 4179476Smarkm{ 4279476Smarkm struct options options; 4379476Smarkm uid_t uid; 4479476Smarkm 4579476Smarkm pam_std_option(&options, NULL, argc, argv); 4679476Smarkm 4779476Smarkm PAM_LOG("Options processed"); 4879476Smarkm 4979476Smarkm uid = getuid(); 5079476Smarkm if (uid == 0) 5179476Smarkm PAM_RETURN(PAM_SUCCESS); 5279476Smarkm 5379476Smarkm PAM_LOG("User is not root"); 5479476Smarkm 5579476Smarkm PAM_RETURN(PAM_AUTH_ERR); 5679476Smarkm} 5779476Smarkm 5879476SmarkmPAM_EXTERN int 5979476Smarkmpam_sm_setcred(pam_handle_t *pamh, int flags, int argc, const char **argv) 6079476Smarkm{ 6179476Smarkm return PAM_SUCCESS; 6279476Smarkm} 6379476Smarkm 6479476SmarkmPAM_MODULE_ENTRY("pam_rootok"); 65