diff options
Diffstat (limited to 'modules/pam_wheel')
-rw-r--r-- | modules/pam_wheel/.cvsignore | 6 | ||||
-rw-r--r-- | modules/pam_wheel/Makefile.am | 31 | ||||
-rw-r--r-- | modules/pam_wheel/README | 61 | ||||
-rw-r--r-- | modules/pam_wheel/README.xml | 41 | ||||
-rw-r--r-- | modules/pam_wheel/pam_wheel.8 | 101 | ||||
-rw-r--r-- | modules/pam_wheel/pam_wheel.8.xml | 242 | ||||
-rw-r--r-- | modules/pam_wheel/pam_wheel.c | 317 | ||||
-rwxr-xr-x | modules/pam_wheel/tst-pam_wheel | 2 |
8 files changed, 0 insertions, 801 deletions
diff --git a/modules/pam_wheel/.cvsignore b/modules/pam_wheel/.cvsignore deleted file mode 100644 index 9fb98574..00000000 --- a/modules/pam_wheel/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.la -*.lo -.deps -.libs -Makefile -Makefile.in diff --git a/modules/pam_wheel/Makefile.am b/modules/pam_wheel/Makefile.am deleted file mode 100644 index 82a98305..00000000 --- a/modules/pam_wheel/Makefile.am +++ /dev/null @@ -1,31 +0,0 @@ -# -# Copyright (c) 2005, 2006 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ - -EXTRA_DIST = README ${MANS} $(XMLS) tst-pam_wheel - -man_MANS = pam_wheel.8 -XMLS = README.xml pam_wheel.8.xml - -TESTS = tst-pam_wheel - -securelibdir = $(SECUREDIR) -secureconfdir = $(SCONFIGDIR) - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include -AM_LDFLAGS = -no-undefined -avoid-version -module \ - -L$(top_builddir)/libpam -lpam -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_wheel.la - -if ENABLE_REGENERATE_MAN -noinst_DATA = README -README: pam_wheel.8.xml --include $(top_srcdir)/Make.xml.rules -endif - diff --git a/modules/pam_wheel/README b/modules/pam_wheel/README deleted file mode 100644 index 6a2b21c5..00000000 --- a/modules/pam_wheel/README +++ /dev/null @@ -1,61 +0,0 @@ -pam_wheel — Only permit root access to members of group wheel - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -DESCRIPTION - -The pam_wheel PAM module is used to enforce the so-called wheel group. By -default it permits root access to the system if the applicant user is a member -of the wheel group. If no group with this name exist, the module is using the -group with the group-ID 0. - -OPTIONS - -debug - - Print debug information. - -deny - - Reverse the sense of the auth operation: if the user is trying to get UID 0 - access and is a member of the wheel group (or the group of the group - option), deny access. Conversely, if the user is not in the group, return - PAM_IGNORE (unless trust was also specified, in which case we return - PAM_SUCCESS). - -group=name - - Instead of checking the wheel or GID 0 groups, use the name group to - perform the authentication. - -root_only - - The check for wheel membership is done only. - -trust - - The pam_wheel module will return PAM_SUCCESS instead of PAM_IGNORE if the - user is a member of the wheel group (thus with a little play stacking the - modules the wheel members may be able to su to root without being prompted - for a passwd). - -use_uid - - The check for wheel membership will be done against the current uid instead - of the original one (useful when jumping with su from one account to - another for example). - -EXAMPLES - -The root account gains access by default (rootok), only wheel members can -become root (wheel) but Unix authenticate non-root applicants. - -su auth sufficient pam_rootok.so -su auth required pam_wheel.so -su auth required pam_unix.so - - -AUTHOR - -pam_wheel was written by Cristian Gafton <gafton@redhat.com>. - diff --git a/modules/pam_wheel/README.xml b/modules/pam_wheel/README.xml deleted file mode 100644 index 9e33d7ff..00000000 --- a/modules/pam_wheel/README.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding='UTF-8'?> -<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" -"http://www.docbook.org/xml/4.3/docbookx.dtd" -[ -<!-- -<!ENTITY pamaccess SYSTEM "pam_wheel.8.xml"> ---> -]> - -<article> - - <articleinfo> - - <title> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="pam_wheel.8.xml" xpointer='xpointer(//refnamediv[@id = "pam_wheel-name"]/*)'/> - </title> - - </articleinfo> - - <section> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="pam_wheel.8.xml" xpointer='xpointer(//refsect1[@id = "pam_wheel-description"]/*)'/> - </section> - - <section> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="pam_wheel.8.xml" xpointer='xpointer(//refsect1[@id = "pam_wheel-options"]/*)'/> - </section> - - <section> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="pam_wheel.8.xml" xpointer='xpointer(//refsect1[@id = "pam_wheel-examples"]/*)'/> - </section> - - <section> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="pam_wheel.8.xml" xpointer='xpointer(//refsect1[@id = "pam_wheel-author"]/*)'/> - </section> - -</article> diff --git a/modules/pam_wheel/pam_wheel.8 b/modules/pam_wheel/pam_wheel.8 deleted file mode 100644 index ae29c37e..00000000 --- a/modules/pam_wheel/pam_wheel.8 +++ /dev/null @@ -1,101 +0,0 @@ -.\" Title: pam_wheel -.\" Author: -.\" Generator: DocBook XSL Stylesheets v1.70.1 <http://docbook.sf.net/> -.\" Date: 06/09/2006 -.\" Manual: Linux\-PAM Manual -.\" Source: Linux\-PAM Manual -.\" -.TH "PAM_WHEEL" "8" "06/09/2006" "Linux\-PAM Manual" "Linux\-PAM Manual" -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.SH "NAME" -pam_wheel \- Only permit root access to members of group wheel -.SH "SYNOPSIS" -.HP 13 -\fBpam_wheel.so\fR [debug] [deny] [group=\fIname\fR] [root_only] [trust] [use_uid] -.SH "DESCRIPTION" -.PP -The pam_wheel PAM module is used to enforce the so\-called -\fIwheel\fR -group. By default it permits root access to the system if the applicant user is a member of the -\fIwheel\fR -group. If no group with this name exist, the module is using the group with the group\-ID -\fB0\fR. -.SH "OPTIONS" -.TP 3n -\fBdebug\fR -Print debug information. -.TP 3n -\fBdeny\fR -Reverse the sense of the auth operation: if the user is trying to get UID 0 access and is a member of the wheel group (or the group of the -\fBgroup\fR -option), deny access. Conversely, if the user is not in the group, return PAM_IGNORE (unless -\fBtrust\fR -was also specified, in which case we return PAM_SUCCESS). -.TP 3n -\fBgroup=\fR\fB\fIname\fR\fR -Instead of checking the wheel or GID 0 groups, use the -\fB\fIname\fR\fR -group to perform the authentication. -.TP 3n -\fBroot_only\fR -The check for wheel membership is done only. -.TP 3n -\fBtrust\fR -The pam_wheel module will return PAM_SUCCESS instead of PAM_IGNORE if the user is a member of the wheel group (thus with a little play stacking the modules the wheel members may be able to su to root without being prompted for a passwd). -.TP 3n -\fBuse_uid\fR -The check for wheel membership will be done against the current uid instead of the original one (useful when jumping with su from one account to another for example). -.SH "MODULE SERVICES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -services are supported. -.SH "RETURN VALUES" -.TP 3n -PAM_AUTH_ERR -Authentication failure. -.TP 3n -PAM_BUF_ERR -Memory buffer error. -.TP 3n -PAM_IGNORE -The return value should be ignored by PAM dispatch. -.TP 3n -PAM_PERM_DENY -Permission denied. -.TP 3n -PAM_SERVICE_ERR -Cannot determine the user name. -.TP 3n -PAM_SUCCESS -Success. -.TP 3n -PAM_USER_UNKNOWN -User not known. -.SH "EXAMPLES" -.PP -The root account gains access by default (rootok), only wheel members can become root (wheel) but Unix authenticate non\-root applicants. -.sp -.RS 3n -.nf -su auth sufficient pam_rootok.so -su auth required pam_wheel.so -su auth required pam_unix.so - -.fi -.RE -.sp -.SH "SEE ALSO" -.PP - -\fBpam.conf\fR(5), -\fBpam.d\fR(8), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_wheel was written by Cristian Gafton <gafton@redhat.com>. diff --git a/modules/pam_wheel/pam_wheel.8.xml b/modules/pam_wheel/pam_wheel.8.xml deleted file mode 100644 index bf8b7349..00000000 --- a/modules/pam_wheel/pam_wheel.8.xml +++ /dev/null @@ -1,242 +0,0 @@ -<?xml version="1.0" encoding='UTF-8'?> -<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" - "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> - -<refentry id="pam_wheel"> - - <refmeta> - <refentrytitle>pam_wheel</refentrytitle> - <manvolnum>8</manvolnum> - <refmiscinfo class="sectdesc">Linux-PAM Manual</refmiscinfo> - </refmeta> - - <refnamediv id="pam_wheel-name"> - <refname>pam_wheel</refname> - <refpurpose>Only permit root access to members of group wheel</refpurpose> - </refnamediv> - - <refsynopsisdiv> - <cmdsynopsis id="pam_wheel-cmdsynopsis"> - <command>pam_wheel.so</command> - <arg choice="opt"> - debug - </arg> - <arg choice="opt"> - deny - </arg> - <arg choice="opt"> - group=<replaceable>name</replaceable> - </arg> - <arg choice="opt"> - root_only - </arg> - <arg choice="opt"> - trust - </arg> - <arg choice="opt"> - use_uid - </arg> - </cmdsynopsis> - </refsynopsisdiv> - - <refsect1 id="pam_wheel-description"> - <title>DESCRIPTION</title> - <para> - The pam_wheel PAM module is used to enforce the so-called - <emphasis>wheel</emphasis> group. By default it permits root - access to the system if the applicant user is a member of the - <emphasis>wheel</emphasis> group. If no group with this name exist, - the module is using the group with the group-ID - <emphasis remap='B'>0</emphasis>. - </para> - </refsect1> - - <refsect1 id="pam_wheel-options"> - <title>OPTIONS</title> - <variablelist> - <varlistentry> - <term> - <option>debug</option> - </term> - <listitem> - <para> - Print debug information. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <option>deny</option> - </term> - <listitem> - <para> - Reverse the sense of the auth operation: if the user - is trying to get UID 0 access and is a member of the - wheel group (or the group of the <option>group</option> option), - deny access. Conversely, if the user is not in the group, return - PAM_IGNORE (unless <option>trust</option> was also specified, - in which case we return PAM_SUCCESS). - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <option>group=<replaceable>name</replaceable></option> - </term> - <listitem> - <para> - Instead of checking the wheel or GID 0 groups, use - the <option><replaceable>name</replaceable></option> group - to perform the authentication. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <option>root_only</option> - </term> - <listitem> - <para> - The check for wheel membership is done only. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <option>trust</option> - </term> - <listitem> - <para> - The pam_wheel module will return PAM_SUCCESS instead - of PAM_IGNORE if the user is a member of the wheel group - (thus with a little play stacking the modules the wheel - members may be able to su to root without being prompted - for a passwd). - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <option>use_uid</option> - </term> - <listitem> - <para> - The check for wheel membership will be done against - the current uid instead of the original one (useful when - jumping with su from one account to another for example). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> - - <refsect1 id="pam_wheel-services"> - <title>MODULE SERVICES PROVIDED</title> - <para> - The <emphasis remap='B'>auth</emphasis> and - <emphasis remap='B'>account</emphasis> services are supported. - </para> - </refsect1> - - <refsect1 id='pam_wheel-return_values'> - <title>RETURN VALUES</title> - <variablelist> - <varlistentry> - <term>PAM_AUTH_ERR</term> - <listitem> - <para> - Authentication failure. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>PAM_BUF_ERR</term> - <listitem> - <para> - Memory buffer error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>PAM_IGNORE</term> - <listitem> - <para> - The return value should be ignored by PAM dispatch. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>PAM_PERM_DENY</term> - <listitem> - <para> - Permission denied. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>PAM_SERVICE_ERR</term> - <listitem> - <para> - Cannot determine the user name. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>PAM_SUCCESS</term> - <listitem> - <para> - Success. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>PAM_USER_UNKNOWN</term> - <listitem> - <para> - User not known. - </para> - </listitem> - </varlistentry> - - </variablelist> - </refsect1> - - <refsect1 id='pam_wheel-examples'> - <title>EXAMPLES</title> - <para> - The root account gains access by default (rootok), only wheel - members can become root (wheel) but Unix authenticate non-root - applicants. - <programlisting> -su auth sufficient pam_rootok.so -su auth required pam_wheel.so -su auth required pam_unix.so - </programlisting> - </para> - </refsect1> - - <refsect1 id='pam_wheel-see_also'> - <title>SEE ALSO</title> - <para> - <citerefentry> - <refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum> - </citerefentry>, - <citerefentry> - <refentrytitle>pam.d</refentrytitle><manvolnum>8</manvolnum> - </citerefentry>, - <citerefentry> - <refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum> - </citerefentry> - </para> - </refsect1> - - <refsect1 id='pam_wheel-author'> - <title>AUTHOR</title> - <para> - pam_wheel was written by Cristian Gafton <gafton@redhat.com>. - </para> - </refsect1> - -</refentry> diff --git a/modules/pam_wheel/pam_wheel.c b/modules/pam_wheel/pam_wheel.c deleted file mode 100644 index ca0e171d..00000000 --- a/modules/pam_wheel/pam_wheel.c +++ /dev/null @@ -1,317 +0,0 @@ -/* pam_wheel module */ - -/* - * Written by Cristian Gafton <gafton@redhat.com> 1996/09/10 - * See the end of the file for Copyright Information - * - * - * 1.2 - added 'deny' and 'group=' options - * 1.1 - added 'trust' option - * 1.0 - the code is working for at least another person, so... :-) - * 0.1 - use vsyslog instead of vfprintf/syslog in _pam_log - * - return PAM_IGNORE on success (take care of sloppy sysadmins..) - * - use pam_get_user instead of pam_get_item(...,PAM_USER,...) - * - a new arg use_uid to auth the current uid instead of the - * initial (logged in) one. - * 0.0 - first release - * - * TODO: - * - try to use make_remark from pam_unix/support.c - * - consider returning on failure PAM_FAIL_NOW if the user is not - * a wheel member. - */ - -#include "config.h" - -#include <stdio.h> -#include <unistd.h> -#include <string.h> -#include <syslog.h> -#include <stdarg.h> -#include <sys/types.h> -#include <pwd.h> -#include <grp.h> - -/* - * here, we make a definition for the externally accessible function - * in this file (this definition is required for static a module - * but strongly encouraged generally) it is used to instruct the - * modules include file to define the function prototypes. - */ - -#define PAM_SM_AUTH -#define PAM_SM_ACCOUNT - -#include <security/pam_modules.h> -#include <security/pam_modutil.h> -#include <security/pam_ext.h> - -/* checks if a user is on a list of members of the GID 0 group */ -static int is_on_list(char * const *list, const char *member) -{ - while (list && *list) { - if (strcmp(*list, member) == 0) - return 1; - list++; - } - return 0; -} - -/* argument parsing */ - -#define PAM_DEBUG_ARG 0x0001 -#define PAM_USE_UID_ARG 0x0002 -#define PAM_TRUST_ARG 0x0004 -#define PAM_DENY_ARG 0x0010 -#define PAM_ROOT_ONLY_ARG 0x0020 - -static int -_pam_parse (const pam_handle_t *pamh, int argc, const char **argv, - char *use_group, size_t group_length) -{ - int ctrl=0; - - memset(use_group, '\0', group_length); - - /* step through arguments */ - for (ctrl=0; argc-- > 0; ++argv) { - - /* generic options */ - - if (!strcmp(*argv,"debug")) - ctrl |= PAM_DEBUG_ARG; - else if (!strcmp(*argv,"use_uid")) - ctrl |= PAM_USE_UID_ARG; - else if (!strcmp(*argv,"trust")) - ctrl |= PAM_TRUST_ARG; - else if (!strcmp(*argv,"deny")) - ctrl |= PAM_DENY_ARG; - else if (!strcmp(*argv,"root_only")) - ctrl |= PAM_ROOT_ONLY_ARG; - else if (!strncmp(*argv,"group=",6)) - strncpy(use_group,*argv+6,group_length-1); - else { - pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv); - } - } - - return ctrl; -} - -static int -perform_check (pam_handle_t *pamh, int ctrl, const char *use_group) -{ - const char *username = NULL; - const char *fromsu; - struct passwd *pwd, *tpwd = NULL; - struct group *grp; - int retval = PAM_AUTH_ERR; - - retval = pam_get_user(pamh, &username, NULL); - if ((retval != PAM_SUCCESS) || (!username)) { - if (ctrl & PAM_DEBUG_ARG) { - pam_syslog(pamh, LOG_DEBUG, "can not get the username"); - } - return PAM_SERVICE_ERR; - } - - pwd = pam_modutil_getpwnam (pamh, username); - if (!pwd) { - if (ctrl & PAM_DEBUG_ARG) { - pam_syslog(pamh, LOG_NOTICE, "unknown user %s", username); - } - return PAM_USER_UNKNOWN; - } - if (ctrl & PAM_ROOT_ONLY_ARG) { - /* su to a non uid 0 account ? */ - if (pwd->pw_uid != 0) { - return PAM_IGNORE; - } - } - - if (ctrl & PAM_USE_UID_ARG) { - tpwd = pam_modutil_getpwuid (pamh, getuid()); - if (!tpwd) { - if (ctrl & PAM_DEBUG_ARG) { - pam_syslog(pamh, LOG_NOTICE, "who is running me ?!"); - } - return PAM_SERVICE_ERR; - } - fromsu = tpwd->pw_name; - } else { - fromsu = pam_modutil_getlogin(pamh); - if (fromsu) { - tpwd = pam_modutil_getpwnam (pamh, fromsu); - } - if (!fromsu || !tpwd) { - if (ctrl & PAM_DEBUG_ARG) { - pam_syslog(pamh, LOG_NOTICE, "who is running me ?!"); - } - return PAM_SERVICE_ERR; - } - } - - /* - * At this point fromsu = username-of-invoker; tpwd = pwd ptr for fromsu - */ - - if (!use_group[0]) { - if ((grp = pam_modutil_getgrnam (pamh, "wheel")) == NULL) { - grp = pam_modutil_getgrgid (pamh, 0); - } - } else { - grp = pam_modutil_getgrnam (pamh, use_group); - } - - if (!grp || (!grp->gr_mem && (tpwd->pw_gid != grp->gr_gid))) { - if (ctrl & PAM_DEBUG_ARG) { - if (!use_group[0]) { - pam_syslog(pamh, LOG_NOTICE, "no members in a GID 0 group"); - } else { - pam_syslog(pamh, LOG_NOTICE, - "no members in '%s' group", use_group); - } - } - if (ctrl & PAM_DENY_ARG) { - /* if this was meant to deny access to the members - * of this group and the group does not exist, allow - * access - */ - return PAM_IGNORE; - } else { - return PAM_AUTH_ERR; - } - } - - /* - * test if the user is a member of the group, or if the - * user has the "wheel" (sic) group as its primary group. - */ - - if (is_on_list(grp->gr_mem, fromsu) || (tpwd->pw_gid == grp->gr_gid)) { - - if (ctrl & PAM_DENY_ARG) { - retval = PAM_PERM_DENIED; - - } else if (ctrl & PAM_TRUST_ARG) { - retval = PAM_SUCCESS; /* this can be a sufficient check */ - - } else { - retval = PAM_IGNORE; - } - - } else { - - if (ctrl & PAM_DENY_ARG) { - - if (ctrl & PAM_TRUST_ARG) { - retval = PAM_SUCCESS; /* this can be a sufficient check */ - } else { - retval = PAM_IGNORE; - } - - } else { - retval = PAM_PERM_DENIED; - } - } - - if (ctrl & PAM_DEBUG_ARG) { - if (retval == PAM_IGNORE) { - pam_syslog(pamh, LOG_NOTICE, - "Ignoring access request '%s' for '%s'", - fromsu, username); - } else { - pam_syslog(pamh, LOG_NOTICE, "Access %s to '%s' for '%s'", - (retval != PAM_SUCCESS) ? "denied":"granted", - fromsu, username); - } - } - - return retval; -} - -/* --- authentication management functions --- */ - -PAM_EXTERN int -pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) -{ - char use_group[BUFSIZ]; - int ctrl; - - ctrl = _pam_parse(pamh, argc, argv, use_group, sizeof(use_group)); - - return perform_check(pamh, ctrl, use_group); -} - -PAM_EXTERN int -pam_sm_setcred (pam_handle_t *pamh UNUSED, int flags UNUSED, - int argc UNUSED, const char **argv UNUSED) -{ - return PAM_SUCCESS; -} - -PAM_EXTERN int -pam_sm_acct_mgmt (pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) -{ - char use_group[BUFSIZ]; - int ctrl; - - ctrl = _pam_parse(pamh, argc, argv, use_group, sizeof(use_group)); - - return perform_check(pamh, ctrl, use_group); -} - -#ifdef PAM_STATIC - -/* static module data */ - -struct pam_module _pam_wheel_modstruct = { - "pam_wheel", - pam_sm_authenticate, - pam_sm_setcred, - pam_sm_acct_mgmt, - NULL, - NULL, - NULL, - NULL, -}; - -#endif /* PAM_STATIC */ - -/* - * Copyright (c) Cristian Gafton <gafton@redhat.com>, 1996, 1997 - * All rights reserved - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, and the entire permission notice in its entirety, - * including the disclaimer of warranties. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * ALTERNATIVELY, this product may be distributed under the terms of - * the GNU Public License, in which case the provisions of the GPL are - * required INSTEAD OF the above restrictions. (This clause is - * necessary due to a potential bad interaction between the GPL and - * the restrictions contained in a BSD-style copyright.) - * - * THIS SOFTWARE IS PROVIDED `AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - */ diff --git a/modules/pam_wheel/tst-pam_wheel b/modules/pam_wheel/tst-pam_wheel deleted file mode 100755 index 4bf5d6a6..00000000 --- a/modules/pam_wheel/tst-pam_wheel +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -../../tests/tst-dlopen .libs/pam_wheel.so |