Index: Linux-PAM/modules/pam_listfile/pam_listfile.c
===================================================================
--- Linux-PAM/modules/pam_listfile/pam_listfile.c	(revision 281)
+++ Linux-PAM/modules/pam_listfile/pam_listfile.c	(working copy)
@@ -41,6 +41,8 @@
 #include <security/_pam_macros.h>
 #include <security/_pam_modutil.h>
 
+static int quiet = 0;
+
 /* some syslogging */
 
 #define LOCAL_LOG_PREFIX "PAM-listfile: "
@@ -160,7 +162,9 @@
 		    apply_type=APPLY_TYPE_USER;
 		    strncpy(apply_val,myval,sizeof(apply_val)-1);
 		}
-	    } else {
+	    } else if(!strcmp(mybuf,"quiet")) {
+		quiet = 1;
+    	    } else {
 		_pam_log(LOG_ERR,LOCAL_LOG_PREFIX "Unknown option: %s",mybuf);
 		return onerr;
 	    }
@@ -307,7 +311,8 @@
 	     ifname, citem, citemp, sense);
 #endif
     if(lstat(ifname,&fileinfo)) {
-	_pam_log(LOG_ERR,LOCAL_LOG_PREFIX "Couldn't open %s",ifname);
+	if (!quiet)
+	    _pam_log(LOG_ERR,LOCAL_LOG_PREFIX "Couldn't open %s",ifname);
 	return onerr;
     }
 
@@ -315,15 +320,16 @@
        || !S_ISREG(fileinfo.st_mode)) {
 	/* If the file is world writable or is not a
 	   normal file, return error */
-	_pam_log(LOG_ERR,LOCAL_LOG_PREFIX 
-		 "%s is either world writable or not a normal file",
-		 ifname);
+	if (!quiet)
+	    _pam_log(LOG_ERR,LOCAL_LOG_PREFIX 
+		     "%s is either world writable or not a normal file",
+		     ifname);
 	return PAM_AUTH_ERR;
     }
 
     inf = fopen(ifname,"r");
     if(inf == NULL) { /* Check that we opened it successfully */
-	if (onerr == PAM_SERVICE_ERR) {
+	if (onerr == PAM_SERVICE_ERR && !quiet) {
 	    /* Only report if it's an error... */
 	    _pam_log(LOG_ERR,LOCAL_LOG_PREFIX  "Error opening %s", ifname);
 	}
@@ -386,8 +392,9 @@
 #endif
 	(void) pam_get_item(pamh, PAM_SERVICE, (const void **)&service);
 	(void) pam_get_user(pamh, &user_name, NULL);
-	_pam_log(LOG_ALERT,LOCAL_LOG_PREFIX "Refused user %s for service %s",
-		 user_name, service);
+	if (!quiet)
+	    _pam_log(LOG_ALERT,LOCAL_LOG_PREFIX "Refused user %s for service %s",
+		     user_name, service);
 	return PAM_AUTH_ERR;
     }
 }
