[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#385068: add some pam features



Package: cupsys
Version: 1.2.2-1
Severity: wishlist
Tags: patch

Please add these pam features:

1) pam_set_item(pamh, PAM_TTY, "cups")
   -----------------------------------
   Need by some pam-modules which need the 'tty' variable, like
   pam_group, pam_access, pam_time, etc.

2) pam_set_item(pamh, PAM_RHOST, con->http.hostname)
   -------------------------------------------------
   Usefull for some pam-modules like pam_access, etc and for the logs,
   which are created by pam.

3) pam_setcred(pamh, PAM_ESTABLISH_CRED|PAM_SILENT)
   ------------------------------------------------
   Need by some pam-modules like pam_tally, pam_group, etc.


The patch is in the attachment and for the original tarball.

Thanks.

- Markus Nass

-- 
Key fingerprint = DC3C 257C 2B71 8FA4 F609  F7F7 7C14 F806 5665 77FD

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Was nicht fliegen kann, kann auch nicht abstürzen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -urN old/cups-1.2.2/scheduler/auth.c new/cups-1.2.2/scheduler/auth.c
--- old/cups-1.2.2/scheduler/auth.c	2006-06-07 22:58:29.000000000 +0200
+++ new/cups-1.2.2/scheduler/auth.c	2006-08-28 21:28:59.000000000 +0200
@@ -510,6 +510,28 @@
 	      return;
 	    }
 
+	    pamerr = pam_set_item(pamh, PAM_TTY, "cups");
+	    if (pamerr != PAM_SUCCESS)
+	    {
+	      cupsdLogMessage(CUPSD_LOG_ERROR,
+	                      "cupsdAuthorize: pam_set_item() returned %d "
+			      "(%s)!\n",
+        	              pamerr, pam_strerror(pamh, pamerr));
+	      pam_end(pamh, 0);
+	      return;
+	    }
+
+	    pamerr = pam_set_item(pamh, PAM_RHOST, con->http.hostname);
+	    if (pamerr != PAM_SUCCESS)
+	    {
+	      cupsdLogMessage(CUPSD_LOG_ERROR,
+	                      "cupsdAuthorize: pam_set_item() returned %d "
+			      "(%s)!\n",
+        	              pamerr, pam_strerror(pamh, pamerr));
+	      pam_end(pamh, 0);
+	      return;
+	    }
+
 	    pamerr = pam_authenticate(pamh, PAM_SILENT);
 	    if (pamerr != PAM_SUCCESS)
 	    {
@@ -532,6 +554,17 @@
 	      return;
 	    }
 
+	    pamerr = pam_setcred(pamh, PAM_ESTABLISH_CRED|PAM_SILENT);
+	    if (pamerr != PAM_SUCCESS)
+	    {
+	      cupsdLogMessage(CUPSD_LOG_ERROR,
+	                      "cupsdAuthorize: pam_setcred() returned %d "
+			      "(%s)!\n",
+        	              pamerr, pam_strerror(pamh, pamerr));
+	      pam_end(pamh, 0);
+	      return;
+	    }
+
 	    pam_end(pamh, PAM_SUCCESS);
 
 #elif defined(HAVE_USERSEC_H)

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: