• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

CUPS und Druckerfreigaben

Morfio

Well-Known Member
Themenstarter #1
Hallo zusammen,

ich würde gerne einen CUPS-Druckerserver aufsetzen. Ich habe dafür CUPS auf einem Server installiert, einen Drucker eingerichtet und diese freigegeben sowie die Druckerfreigabe (Pinter sharing) aktiviert.

Auf dem Client gibt es aber die Option "Show printers from other systems" nicht mehr (nur im deutschen Interface (Zeige Drucker von anderen Systemen), welches aber keine Auswirkung hat, denn der Haken bleibt nicht drin und CUPS sagt beim Speichern, dass er nicht neustartet, da sich an der Konfiguration nichts getan hat.

Hat einer vielleicht eine Idee, wie man das hinbekommen kann?

Viele Grüße

Morfio
 

spectre210

Well-Known Member
#4
Also, wie ist dein Weg. Du gehst auf http://<deine_ip>:631, dann auf Manage Printers/Verwalte Drucker -> <Drucker Name> -> 2te Combobox, wo Administration vorgewählt ist, mit Auswahl Modify Printer/ Druckereinstellung -> Optionen setzen -> Bis zum Punkt "Sharing: Sharing this Printers/Freigabe: Freigabe des Druckers ", wo du das Häkchen setzt -> weiter Optionen -> Modify/Bestätigung der Veränderungen -> Message: "Printer was succesfull modified/..."

Welcher der oben genannten Schritten funktioniert nicht?
 

Morfio

Well-Known Member
Themenstarter #5
Alle oben genannten Schritte funktionieren. Der Client dann zeigt aber keine vom Server freigegebenen Drucker an. Da fehlt in der Konfigurationsseite (HTML) auch dieses "Show printers from other systems", sprich, man wird vermutlich irgendwas händisch in die Konfigurationsdatei schreiben müssen. Eine /usr/local/etc/cups/client.conf hatte ich auch bereits angelegt.
 

Morfio

Well-Known Member
Themenstarter #7
Nein, es fehlt "Show printers from other systems" im Client. Es gibt einen physikalischen Server. Darauf ist Cups installiert und ein Drucker ist darauf eingerichtet. Dann gibt es einen physikalischen Client, auf dem auch Cups installiert ist. Ich möchte, dass das Cups des Clients sich mit dem des Servers verbindet und mir vom Server auf den Client dessen Drucker anzeigt und ich sie nutzen kann.
 

spectre210

Well-Known Member
#8
Ich glaube, dass ich es verstanden habe. Du willst unter dem Clienten einen Shared Printer vom Server hinzufügen. Wenn du dann unter http://localhost/admin [Client] -> Add Printer gehst, findest du deinen freigegebenen Drucker nicht.
Ich bin mir jetzt nicht sicher, aber den Punkt "Show printers from other systems" kenne ich so nicht. Wenn CUPS den Drucker über das Netzwerk findet, wird er einfach aufgelistet, ansonsten gibt es noch die hier beschriebene Möglichkeit, die Netzwerkadresse des Drucker direkt einzugeben [IPP Adresse].
 

Morfio

Well-Known Member
Themenstarter #9
Fast. Ich möchte, dass im Client-CUPS alle Drucker nutzbar sind, die im Server-CUPS angelegt sind. Ich habe hier ein Netzwerk mit etlichen FreeBSD-Clients und will nicht überall die Drucker einrichten oder die Konfiguration durch kopieren. Damals mit Linux hatte das so funktioniert.
 

hessijens

Well-Known Member
#10
Reicht es nicht mehr am Client einfach eine Datei /usr/local/etc/cups/client.conf mit folgendem Inhalt zu erstellen?
Code:
ServerName (Servername bzw. IP Adresse)
 

spectre210

Well-Known Member
#14
Zuerst muss die falsch konfigurierte Komponente ermittelt werden. Wir wissen nicht, ob es der Server oder Client ist. Versuch mal einen Drucker einzeln hinzuzufügen, damit erkennbar ist, ob der Server auch wirklich shared.
Achso, Posts von client.conf und cupsd.conf wären auch ganz hilfreich.
Habe noch diese Anleitung gefunden.
 

Morfio

Well-Known Member
Themenstarter #15
Zuerst muss die falsch konfigurierte Komponente ermittelt werden. Wir wissen nicht, ob es der Server oder Client ist. Versuch mal einen Drucker einzeln hinzuzufügen, damit erkennbar ist, ob der Server auch wirklich shared.
Vom Cups-Client aus wird der Cups-Server definitiv nicht angezeigt.

cupsd.conf Client:

Code:
LogLevel warn
# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups.sock
# Disable printer sharing.
Browsing On
DefaultAuthType Basic
WebInterface Yes
<Location />
  # Restrict access to the server...
  Order allow,deny
</Location>
<Location /admin>
  Order allow,deny
</Location>
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>
<Policy default>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny,allow
  </Limit>
  <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 Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
<Policy authenticated>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>
  <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 Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
cupsd.conf Server

Code:
LogLevel warn
# Allow remote access
Port 631
Listen /var/run/cups.sock
# Share local printers on the local network.
Browsing On
BrowseLocalProtocols
DefaultAuthType Basic
WebInterface Yes
<Location />
  # Allow shared printing...
  Order allow,deny
  Allow @LOCAL
</Location>
<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>
<Policy default>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny,allow
  </Limit>
  <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 Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
<Policy authenticated>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>
  <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 Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
client.conf auf Client (wobei "cups" auch korrekt aufgelöst wird)

Code:
ServerName cups
 

spectre210

Well-Known Member
#16
Dann leigt es wahrscheinlich am Server. In deine cupsd.conf [Server] (die cupsd vom Client ist unwichtig) muss trotzdem noch die Anweisung:
Code:
Listen /var/run/cups/cups.sock
rein, die andere Listen Direktive kann bleiben.
Versuch dann mal auf deinem Clienten die Adresse http://cups:631 zu erreichen.

Edit
Ignoriere die Listen Anweisung, die habe ich bei dir übersehen, aber versuche mal die Adresse http://cups:631 vom Clienten zu erreichen.
 

spectre210

Well-Known Member
#18
Also, ich habe noch ein paar Tests bei mir durchgeführt. Jetzt verstehe ich was du willst.
Versuche mal auf deinem Clienten den Befehl:
Code:
lpstat -a
Dieser sollte alle Drucker deines Servers auflisten. Wenn nicht, stimmt irgendetwas mit der Sharing Einstellung nicht [Firewall?, egal ist erst der 2. Schritt].
Es gibt in CUPS zwei Möglichkeiten, um entfernte Drucker zu verwalten:
1. Man druckt mit seinem eigenen loaklen Server [Client] und richtet dabei einzeln die Drucker über ipp ein, den Schritt, den du nicht haben möchtest
2. man nutzt nur die client.conf, gibt die Serveradresse ein und man kann mit lp oder graphischen Programmen drucken, dazu müssen aber die Drucker nicht extra eingerichtet werden, noch muss ein Server auf dem Clienten [cupsd auf client] laufen. Dass heißt, dass die Drucker nie auf dem client-seitigen CUPS Server angezeigt werden.
 

Morfio

Well-Known Member
Themenstarter #19
Funktioniert. Ich hatte immer nur nachgesehen, ob im CUPS-Webinterface vom Client die Drucker auftauchen. Aber mit lpstat -a wird der Drucker angezeigt und ich kann aus dem Firefox auch damit drucken.

Vielen Dank!