CUPS - Druckjobs verwalten

Software besorgen und anwenden
Post Reply
Message
Author
davidw
Posts: 3
Joined: 07. Jul 2008 8:32

CUPS - Druckjobs verwalten

#1 Post by davidw »

Die CUPS-Doku ist leider nicht sehr aufschlussreich! Ich möchte bei bestimmten Druckern bestimmten Usern die Möglichkeit geben den Drucker zu stoppen/starten und die Druckjobs zu verwalten. Der Testuser hat die richtige GID(UX_CUPS_PRINTADMIN) zugewiesen:

Code: Select all

id test
uid=1203(test) gid=100(users) Gruppen=100(users),30320(UX_CUPS_PRINTADMIN)
Nun habe ich in cupsd.conf eine weitere SystemGroup hinzugefügt sowie eine weitere Policy eingerichtet wo eben die Rechte für diese User eingestellt sind. Dem Drucker wurde die Policy zugewiesen. Möchte der Testuser nun etwas per Webinterface ändern ist dies nicht möglich - er verlangt immer wieder das Passwort. Testweise wurde auch bei der default Policy diese Gruppe hinzugefügt - ohne Erfolg.

cupsd.conf: http://nopaste.debianforum.de/9024

Auszug aus dem error.log (es sieht so aus als ob er trotzdem einen user aus der Gruppe lpadmin verlangt):

Code: Select all

d [16/Jun/2008:08:52:22 +0200] cupsdAuthorize: Authorization="Basic d2FsY2hlcjprbmFwcCEx" D [16/Jun/2008:08:52:22 +0200] cupsdAuthorize: username="test"
d [16/Jun/2008:08:52:22 +0200] cupsdIsAuthorized:
con->uri="/admin/?op=modify-printer&printer_name=pr76", con->best=0x80bcdd8(/admin)
d [16/Jun/2008:08:52:22 +0200] cupsdIsAuthorized: level=AUTH_USER, type=AUTH_BASIC, satisfy=AUTH_SATISFY_ALL, num_names=2
d [16/Jun/2008:08:52:22 +0200] cupsdIsAuthorized: auth=AUTH_ALLOW... d [16/Jun/2008:08:52:22 +0200] cupsdIsAuthorized: username="test"
d [16/Jun/2008:08:52:22 +0200] cupsdIsAuthorized: Checking user membership...
d [16/Jun/2008:08:52:22 +0200] cupsdCheckGroup(username="test", user=0xb7d7bd14, groupname="lpadmin")
d [16/Jun/2008:08:52:22 +0200] get_md5_password(username="test", group="lpadmin", passwd=0xbf9aa98b)
d [16/Jun/2008:08:52:22 +0200] cupsdCheckGroup(username="test", user=0xb7d7bd14, groupname="ux_cups_printadmin")
d [16/Jun/2008:08:52:22 +0200] get_md5_password(username="test", group="ux_cups_printadmin", passwd=0xbf9aa98b)
d [16/Jun/2008:08:52:22 +0200] cupsdReadClient: Unauthorized request for /admin/?op=modify-printer&printer_name=pr76...
D [16/Jun/2008:08:52:22 +0200] cupsdSendError: 23 code=401 (Unauthorized)
D [16/Jun/2008:08:52:22 +0200] cupsdCloseClient: 23 I [16/Jun/2008:08:52:22 +0200] cupsdCloseClient: SSL shutdown successful!
Hab schon sehr viel herumgedoktort und getestet aber es klappte einfach nicht :(
Ich hoffe jemand von euch hat dazu eine Idee!

P.S.: Diese Anfrage hab ich schon in anderen Foren gepostet und auch bei cups.org selbst (http://www.cups.org/articles.php?L237+I10+TMine+P1+Q) aber leider ohne Erfolg bisher.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Die "SystemGroup"-Direktive erlaubt mehrere Gruppen. Ich könnte mir vorstellen, dass dies deshalb der Fall ist, weil eine erneute "SystemGroup" nicht weitere Gruppen ergänzt, sondern die bisherigen ersetzt. Nur so ein Gedanke. Wenn es da nicht war solltest du mal "AuthType Basic" in den einzelnen Policies weglassen, damit hatte ich auch schonmal Ärger.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

davidw
Posts: 3
Joined: 07. Jul 2008 8:32

#3 Post by davidw »

Danke für die Info!

Hab nun bei SystemGroup

Code: Select all

SystemGroup UX_CUPS_PRINTADMIN lpadmin
und "AuthType Basic" hab ich entfernt (ist ja auch als DefaultAuthType eingestellt).

Die Policy sieht nun wie folgt aus:

Code: Select all

<Policy test>
  # Job-related operations must be done by the owner or an ux_cups_jobadmin or an adminstrator...
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job Pause-Printer Resume-Printer Enable-Printer Activate-Printer Restart-Printer Startup-Printer Cancel-Job>
    Require user @OWNER @UX_CUPS_PRINTADMIN
    Order deny,allow
  </Limit>

  # All administration operations require an adminstrator to authenticate...
  <Limit Set-Printer-Attributes Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Shutdown-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>
    Require user @UX_CUPS_PRINTADMIN
    Order deny,allow
  </Limit>

  # Only the administrator can authenticate a job...
  <Limit CUPS-Authenticate-Job>
    Require user @UX_CUPS_PRINTADMIN
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
Der Zieldrucker hat diese Policy zugewiesen bekommen.

Hier nochmals ein Auszug aus dem Log:

Code: Select all

d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdReadClient&#58; 19, used=0, file=-1 state=0
D &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdReadClient&#58; 19 GET /admin/?op=stop-printer&printer_name=printer1 HTTP/1.1
D &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdReadClient&#58; 19 Browser asked for language "de-at.utf-8"...
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdFindBest&#58; uri = "/admin/?op=stop-printer&printer_name=printer1"...
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdFindBest&#58; Location CUPS_INTERNAL_BROWSE_ACL Limit 0
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdFindBest&#58; Location /admin/conf Limit 7f
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdFindBest&#58; Location /admin Limit 7f
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdFindBest&#58; Location / Limit 7f
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdFindBest&#58; best = /admin
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdAuthorize&#58; con->uri="/admin/?op=stop-printer&printer_name=printer1", con->best=0x809ff50&#40;/admin&#41;
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdAuthorize&#58; Authorization="Basic d2FsY2hlcjprbmFwcCEx"
D &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdAuthorize&#58; username="testuser"
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdIsAuthorized&#58; con->uri="/admin/?op=stop-printer&printer_name=printer1", con->best=0x809ff50&#40;/admin&#41;
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdIsAuthorized&#58; level=AUTH_USER, type=AUTH_NONE, satisfy=AUTH_SATISFY_ALL, num_names=1
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdIsAuthorized&#58; auth=AUTH_ALLOW...
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdIsAuthorized&#58; username="testuser"
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdIsAuthorized&#58; Checking user membership...
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdCheckGroup&#40;username="testuser", user=0xb7d4ad14, groupname="lpadmin"&#41;
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; get_md5_password&#40;username="testuser", group="lpadmin", passwd=0xbfaeb2cb&#41;
d &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdReadClient&#58; Unauthorized request for /admin/?op=stop-printer&printer_name=printer1...
D &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdSendError&#58; 19 code=401 &#40;Unauthorized&#41;
D &#91;08/Jul/2008&#58;14&#58;19&#58;10 +0200&#93; cupsdCloseClient&#58; 19
Hab auch versucht bei allen anderen Bereichen die Gruppe ux_cups_printadmin hinzuzufügen aber er verlangt trotzdem immer wieder dei Gruppe lpadmin. Noch eine Idee oder vl eine Beispielskonfiguration!?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Die Gruppe heißt auch tatsächlich UX_CUPS_PRINTADMIN? In Grossbuchstaben?

Außerdem brauchst diese Gruppe nicht sowohl als SystemGroup als als bei Require user einzutragen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

davidw
Posts: 3
Joined: 07. Jul 2008 8:32

#5 Post by davidw »

Ja die Gruppe heißt so:

Code: Select all

id testuser
uid=1234&#40;testuser&#41; gid=100&#40;users&#41; Gruppen=100&#40;users&#41;,24&#40;cdrom&#41;,56&#40;UX_CVS&#41;,30186&#40;UX_CVSADMIN&#41;,30187&#40;UX_CVS_LINUX&#41;,30320&#40;UX_CUPS_PRINTADMIN&#41;
Hab jetz die Gruppe von SystemGroup entfernt und nochmals getestet aber im log kommt auch wieder die gleiche Fehlermeldung - er besteht einfach auf die Gruppe lpadmin.

Post Reply