Printserver

Hat man erst mal einen SAMBA-Fileserver eingerichtet, möchte man auch die Drucker über diesen steuern; besonders bei Netzwerkdruckern wird man die erweiterten Möglichkeiten wie History der gedruckten Dokumente, Druckerstatus, usw. Nutzen.

Und das schönste: Mittlerweile ist die Einrichtung mit SAMBA & CUPS kein Problem mehr!

Inhalt

Voraussetzungen

  • Konfigurierter SAMBA-Server
  • CUPS
  • Netzwerkdrucker

Hinweis: Das Tutorial geht zwar von einem debian-System aus, man kann aber statt der „apt-get“ aufrufe auch einfach das Paket von RPM installieren.

Besonderheiten bei HP-Druckern

An dieser Stelle möchte ich noch anmerken, dass HP-Drucker besonders gut geignet sind um in Linux zu integrieren; dies vor allem wegen der Bestrebungen von HP mit HPLIP ihre Drucker Linux tauglich zu machen.

Software installieren

Zuerst benötigt man cups:

apt-get install cupsys

Und bei HP-Druckern zusätzlich die HPLIP:
Hinweis: Obwohl HPLIP als Debian Paket vorhanden ist, ist auch in etch tetsing nur eine veraltete Version drin, weshalb es zu empfhelen ist die HPLIP mnauel zu installieren; sehr gute Hinweise damit findet man auf der HPLIP-Seite.

Wers direkt installieren möchte:

apt-get install hplip

Vorbereiten

Nun kann man die Verzeichnisse erstellen:

mkdir /var/spool/samba
chmod 777 /var/spool/samba

mkdir -p /etc/samba/drivers/W32X86/3/
mkdir -p /etc/samba/drivers/COLOR/
chmod -R 755 /etc/samba/drivers

SAMBA Konfigurieren

Nun die /etc/samba/smb.conf mit folgenden Zeilen erweitern:

[global]
  printing = cups
  printcap name = cups
[printers]
  path = /var/spool/samba
  browsable = no
  guest ok = yes
  writeable = no
  printable = yes
  printer admin = root, @ntadmin
 
  [print$]
  path = /etc/samba/drivers
  browsable = yes
  guest ok = no
  read only = yes
  write list = root, @ntadmin

CUPS Konfigurieren

Nun muss man noch /etc/cups/cupsd.conf anpassen:

Die IP-Adressen müssen natürlich angepasst werden:
10.1.1.3 ist bei mir der Fileserver und 10.1.1.10 meine Workstation.

### Global
 
LogLevel warning
SystemGroup lpadmin
Printcap /var/run/cups/printcap
 
Listen localhost:631
Listen 10.1.1.3:631
Listen /var/run/cups/cups.sock
 
Browsing On
BrowseOrder allow,deny
BrowseAllow @LOCAL @ALL
 
 
### Security
 
DefaultAuthType Basic
 
# Restrict access to the server...
<Location />
  Order allow,deny
  Allow localhost
  Allow 10.1.1.10
</Location>
 
# Restrict access to the admin pages...
<Location /admin>
  Encryption Required
  Order allow,deny
  Allow localhost
  Allow 10.1.1.10
</Location>
 
# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow localhost
  Allow 10.1.1.10
</Location>
 
 
 
 
### Policies
 
# Set the default printer/job policies...
<Policy default>
  # Job-related operations must be done by the owner 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>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
 
  # All administration operations require an adminstrator to authenticate...
  <Limit Pause-Printer Resume-Printer Set-Printer-Attributes 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 CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>
    AuthType Basic
    Require user @SYSTEM
    Order deny,allow
  </Limit>
 
  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
 
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

Drucker einbinden

Nachdem nun samba und CUPS mit

/etc/init.d/smbd restart

,

/etc/init.d/nmbd restart

und

/etc/init.d/cupsys restart

neugestartet wurden kann man nun einen Drucker einbinden.

Dies geth entweder über die Drucker-Admin Seite unter: http://fileserver-ip:631/ oder direkt auf der Kommandozeile:

lpadmin -p drvtest -E -P /usr/share/cups/model/HP/Deskjet_940C-cdj970.ppd.gz

-Wobei die „*.ppd.gz“ Anagbe der Druckertreiber ist.

Treiber-Automatik einrichten

Nun hätte man es gerne, wenn der Treiber beim hinzufügen des Druckers automatisch installiert würde; sogar dies lässt sich einfach bewerkstelligen.

Zuvor muss man jedoch CUPS darauf vorbereiten, dass es nun nicht mehr nur Postscript-Daten, sondern zusätzlich bereits für den jeweiligen Drucker aufbereitete Rohdaten verarbeiten können soll. Dazu ist jeweils eine Änderung in den beiden Dateien /etc/cups/mime.convs sowie /etc/cups/mime.types notwendig. Ziemlich am Ende dieser Dateien findet sich eine auskommentierte Zeile, die man durch Entfernen des Kommentarzeichens aktiviert:

#Diese Zeile aktivieren, damit CUPS auch Rohdaten verarbeitet
spacer_1px
application/octet-stream        application/vnd.cups-raw        0       -

Nun noch samba und cups neustarten.

Für den nächsten Schritt sollte man sich von der Windows-Workstation abmelden und sich als root an der Domäne anmelden.

Nun zum Verzeichnis „Drucker und Faxgeräte“ navigieren. Es ist wichtig, dass man wirklich in dieses Verzeichnis wechselt und nicht den Drucker auswählt, der einem bereits in der Ressourcen-Übersicht für den Samba-Server präsentiert wird.

Hier ruft man per Klick mit der rechten Maustaste das Kontextmenü des zuvor eingerichteten Druckers ab und wählt den Punkt „Eigenschaften“. -Die darauf erfolgenden Fehlermeldungen sind normal und kein Grund zur Sorge.

Auf die nun folgende Frage, ob man die nicht vorhandenen Treiber für den gewählten Drucker installieren möchte, unbedingt mit „Nein“ antworten. Das erscheint zwar unlogisch, ist aber die einzige Möglichkeit, für diesen Drucker den in Windows integrierten Wizard zum Upload der Treiber auf den Server zu aktivieren. Dieser verbirgt sich auf der Karteikarte „Erweitert“ hinter der Schaltfläche „Neuer Treiber“.

Da wir für unser Beispiel einen HP-Deskjet 940 verwendet haben, wählen wir den passenden Treiber aus der nun dargestellten Übersicht aus. Ein Klick auf die Schaltfläche „Weiter“ startet die Installation des Treibers. Diese erfolgt nun aber nicht etwa lokal, sondern auf dem Samba-Server, wie der Pfad für das Ziel der Kopieraktion unschwer erkennen lässt.

Damit sind aber erst die Treiber für Windows NT, 2000 und XP auf den Server übertragen. Um auch für Windows 95, 98 und ME die notwendigen Dateien auf dem Server zur Verfügung zu stellen, auf die Karteikarte „Freigabe“ wechseln. Unter Windows XP kann es sein, dass man dort zunächst die Freigabefunktion aktivieren muss, bevor man an die Schaltfläche „Zusätzliche Treiber“ herankommt.

Nun markiert man hier die Option „Windows 95, 98 und ME“ und quittiert die Wahl mit einem Klick auf den Button „Weiter“. Windows fragt nun nach dem Speicherort der zu transferierenden Treiberdateien. Diese muss man sich in der Regel von der Website des Druckerherstellers besorgen und hoffen, dass dieser entweder direkt entpackbare Archive anbietet oder die meist anzutreffende Installationsroutine lediglich ein Verzeichnis mit den Treibern erzeugt, anstatt diese gleich auf dem Rechner einzurichten. Nach einer weiteren Bestätigung startet der Dateitransfer, diesmal in das Verzeichnis auf dem Samba-Server, aus dem die 16-Bit-Versionen von Windows ihre Treiber erwarten.

Damit ist das Einrichten der Treiber beendet. Sobald sich nun ein Windows-Client auf einem Rechner mit Intel-Architektur am Samba-Server anmeldet, erhält er automatisch die passenden Treiber gleich von dort installiert.

Printer Admins definieren

Wie unter einem Windows Server kann ein Benutzer das Recht bekommen Drucker zu administrieren; dies schliesst z.B. das ändern der automatisch konfigurierten Treiber mit ein.
Dieses Recht kann man sich mit „net rpc“ erteilen:

 net rpc rights grant 'MEINE.DOMAIN.TLDusername' SePrintOperatorPrivilege

Abschluss

Damit wäre nun alles eingerichtet. Drucker administrieren kann man fortan über das Webinterface unter: http://fileserver:631/

Related Links

  • Linux als Printserver: Gutes, aber leider etwas altes Tutorial, dass schritt für schritt erklärt wie man Linux zum Printserver macht
  • Drucken mit CUPS [PDF]: Kostenloses Kapitel des Linux Kochbuches von Oreilly – Lesenswert

Related Downloads

  • CUPS: Ein modernes Printing System für Unix und Linux
  • HPLIP: HPLIP ist ein Projekt von HP mit dem sie zusammen mit der Linux Community
  • linuxprinting.org: Linux-Treiber Quelle für unzählige Drucker

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert