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