USB Drucker an lokalen Maschinen

drucken

#1

Guten Tag,

seit der Verwendung von xenial916 als Image, können wir hier in der Schule leider keine lokalen USB Drucker an diesem Image betreiben.

Die Drucker lassen sich, sofern Treiber vorhanden sind installieren und es wird sogar die Testseite aus CUPS heraus ausgedruckt(Drucker nur per CUPS installierbar).

Leider funktioniert der Drucker aber nicht wenn man an der gleichen Maschine bspw aus LibreOffice heraus drucken möchte. Der Drucker wird dort einfach nicht angezeigt.

Entweder fehlt ein Packet, oder es handelt sich um ein Rechte Problem.

Wenn man als lokaler User den Drucker wie gewohnt installieren möchte, dann kann man in den Systemeinstellungen leider den + Button zum Hinzufügen nicht drücken (deshalb die Vermutung es fehlt ein Packet). Auch als linuxadmin kann man dort den + Button nicht drücken.

Über Hinweise wären wir sehr dankbar.

MfG
i.A. Fritz-Karsen Schule


#2

Hallo Frank,

leider kann ich Dir zunächst nur bestätigen, dass sich mein mit KDE-Neon
aufgemotztes xenial916 genau so wie Deines verhält. Auf den ersten Blick
sehe ich nicht, ob ein Paket fehlt. Bei mir werden auch die
Druckerwarteschlangen auf dem Server nicht angezeigt.

Eventuell müssen weitere Skripte aus linuxmuster-client-extras (mit
lmlcc?) eingebunden werden.
http://www.linuxmuster.net/wiki/entwicklung:linuxclient:linuxmuster-client-extras

Gruß Jürgen


#3

Hallo,

ein kurzer Gedanke zu dem Problem: der Netzwerknutzer kann den Drucker wahrscheinlich nicht installieren, weil er nicht zu der Gruppe lpadmin gehört.
Aber: ich denke das Problem ist noch ein anderes: anscheinend nimmt LibreOffice immer den Server als Druckerdienstleister und nicht den lokalen cups, der eigentlich als “Proxy” dienen sollte.
Ich kann nur vermuten, dass sich das Verhalten bei LibreOffice und wohl auch Firefox geändert hat.
Da sollte man mal nach schauen.

LG

Holger


#4

Hallo,

Dieses Verhalten gab es auch schon vor Ubuntu 16.04 Xenial. Ich erlebe dies auch auf meinem Ubuntu 14.04 (LinuxMint 17.0) so, dass OpenOffice keine lokalen Drucker in seinem Druckdialog anzeigt. Das haben auch schon andere hier berichtet.

Warum das so ist und wie man das ändern kann, weiß ich leider nicht, würde mich aber interessieren.

Gruß
Stefan


Netzwerkdrucker cups-lokal ? ipp://server.local:631 ?
#5

Hallo zusammen,

ich habe mir das Problem nun den ganzen Morgen angeschaut auf einem
xenial925.cloop

Bisher habe ich es aber leider noch nicht geschafft einen lokalen
Drucker zu installieren: auch nicht als linuxadmin.
Das könnte aber auch an virtualbox und dem durchgereichten USB liegen.
per lsusb sehe ich den Drucker udn er wird auch beim Einstecken
automatisch installiert mit einem Fehler "cant claim device …"
Das habe ich beheben können durch anpassen der Rechte der “Datei”
/dev/usb/lp0 wie hier beschrieben:

https://wiki.ubuntu.com/DebuggingPrintingProblems

Check whether the device files for the printer get created and the
ownerships (“root lp”) and permissions (non-HP: “crw-rw-r–”, HP:
“crw-rw-r–+”) correctly set:
$ ls -l /dev/usb/lp* /dev/bus/usb//

Außerdem habe ich das Paket libusb-dev nachinstalliert, weil sonst beim
Anschließen des Druckers in der /var/log/syslog ein Fehler kommt " no
corresponding CUPS device found"
Auch das ist weg, aber ich kann noch immer keienn lokalen Drucker
hinzufügen.

Einmal habe ich alle cups Pakete deinstalliert und wieder installiert:
hat auch nix gebracht.

Auf einem realen Client war auch nix zu machen…

Sorry: noch keine Lösung gefunden.

Vielelicht hätte das hier es gebracht: es war aber keine Zeit mehr:


Just found a solution that worked for me after seeing this.
https://wiki.archlinux.org/index.php...de_permissions
I created a custom udev rule in a file
/etc/udev/rules.d/10-usbprinter.rules containing
Quote:
ATTR{idVendor}==“04f9”, ATTR{idProduct}==“0169”, MODE:=“0660”, GROUP:="lp"
After rebooting, I now have printing and scanning working with my
Brother DCP-110C.
To get the idVendor and idProduct values look at the output of 'lsusb’
It works whether usblp is blacklisted or not.


Quelle:
http://www.linuxquestions.org/questions/slackware-14/usb-printer-no-longer-recognized-with-cups-1-5-3-a-4175413462/

LG

Holger


#6

Hallo,

der Thread ist zwar schon älter aber da er so ungelöst im Raum hängt, will ich mich hier mal reinhängen, eventuell habe ich eine Lösung gefunden.

Die Ausgangssituation ist bei mir dieselbe wie in der ersten Mail beschrieben, wir benutzen auch eine xenial.cloop als Image (ob es jetzt die Version 916 ist weiß ich nicht mehr) und bei uns konnte man die lokalen Drucker unter Cups installieren und eine Testseite ausdrucken, unter LO usw. erschienen sie nicht, der +Button fehlte auch.

Geholfen hat es in der Datei /etc/cups/client.conf auf dem Client die Zeile
ServerName 10.16.1.1 durch ServerName localhost zu ersetzen. In dieser Datei wird der Cupsserver festgelegt (Man könnte laut Handbuch die Datei wohl auch einfach löschen, da localhost der Standard ist)

Dann ist der lokale Cups Server wieder ansprechbar und die lokalen Drucker erscheinen dann auch unter LibreOffice etc.

Ich spiele mit dem universellen Postsyncscript auf den Rechnern, die lokale Drucker haben sollen, eine entsprechende client.conf ein.

Vielleicjht hilft es weiter.

Quelle: Cups Software Administrators Manual http://lab.demog.berkeley.edu/Docs/Refs/cups-sysadmin.pdf

Viele Grüße
Friedrich


#7

Hallo zusammen,

ich habe jetzt auch mal ein wenig herumprobiert, leider ohne eine Lösung zu finden.

Zur Dokumentation hier mal die bisherigen Schritte.

Mit einem vom Stick gestarteten Standard-Ubuntu kann ich einen per USB angeschlossenen Drucker hinzufügen und auch darauf drucken:

ubuntu@ubuntu:~$ id
uid=999(ubuntu) gid=999(ubuntu) Gruppen=999(ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
ubuntu@ubuntu:~$ lsusb
Bus 002 Device 007: ID 03f0:5c17 Hewlett-Packard LaserJet P2055 series
ubuntu@ubuntu:~$ ls -la /dev/usb/lp0 
crw-rw---- 1 root lp 180, 0 Jun 28 13:58 /dev/usb/lp0

Bildschirmfoto%20vom%202018-06-28%2013-59-22

Mit dem Xenial.cloop klappt das nicht. (wartung ist ein lokaler Benutzer) Die Rechte und Gruppen sehen zwar ganz gut aus:

wartung@r203-lap99:~$ id
uid=1002(wartung) gid=1002(wartung) Gruppen=1002(wartung),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),120(scanner),122(lpadmin),127(sambashare),131(vboxusers)
wartung@r203-lap99:~$ lsusb
Bus 001 Device 011: ID 03f0:5c17 Hewlett-Packard LaserJet P2055 series
wartung@r203-lap99:~$ ls -la /dev/usb/lp0 
crw-rw---- 1 root lp 180, 0 Jun 28 16:05 /dev/usb/lp0

Der Drucker erscheint aber nicht im Dialog (Update: Als ich es soeben noch ein drittes Mal probiert habe, um den Screenshot zu erstellen, hat es dann doch geklappt, der Drucker wurde aufgelistet und konnte wie oben hinzugefügt werden. Mit dem Live-Ubuntu wurde allerdings der Treiber automatisch gefunden, im Xenial-Image musste ich ihn nochmal von Hand bestätigen.)

Mit etwas ratlosen Grüßen, warum es jetzt doch klappt…

Andreas

Nachtrag zum Nachtrag: Möglicherweise habe ich vor dem dritten Versuch bereits das hier eingetragen.

Ich werde das nochmal in Ruhe und mit einem frisch synchronisierten System testen.


Xenial916: Lokaler Drucker (USB) kann nicht hinzugefügt werden
#8

Das ist wohl tatsächlich die Lösung.

Ich habe folgende drei Möglichkeiten ausprobiert:

  1. 10.16.1.1 durch localhost in /etc/cups/client.conf ersetzt,
  2. /etc/cups/client.conf gelöscht und
  3. /etc/cups/client.conf per Postsync durch eine leere Datei überschreiben lassen.

In allen drei Fällen erscheint der Drucker genau so wie in meinen anderen Screenshots und kann vom Benutzer hinzugefügt werden. Allerdings muss dabei an zwei Stellen das Passwort von linuxadmin eingegeben werden.

Viele Grüße

Andreas


#9

Hallo Andreas,

Danke für die Hinweise, die sehr hilfreich sein könnten. Um zu einsatzfähigen lokalen Druckern zu kommen, stellen sich mir noch einige Fragen:

  1. Benutzerfreundlichkeit:

Also kann ein normaler Benutzer, der das linuxadmin-Passwort nicht kennt, keinen lokalen Drucker hinzufügen. Das sind an unserer Schule außer mir alle. Wie könnte man das denen ermöglichen ohne das Passwort rauszugeben? Geht da vielleicht was mit /etc/sudoers.d ?

  1. Lokalen Drucker fest zuweisen:
    Wie könnte man als Admin einen lokalen Drucker einem Client fest zuweisen, so dass die Benutzer den Drucker nicht nach jedem gesyncten Start selbst tun müssen?

  2. Netzwerkdrucker und lokale Drucker an einem Client:
    Wenn man den Cups-Server in /etc/cups/client.conf auf localhost statt 10.16.1.1 einstellt, kann man denn dann auch zusätzlich zu den lokalen Druckern auch noch die Netzwerkdrucker von dem Client aus verwenden. Oder muss man sich entscheiden?

Gruß
Stefan


#10

Hallo Stefan,

In allen drei Fällen erscheint der Drucker genau so wie in meinen
anderen Screenshots und kann vom Benutzer hinzugefügt werden.
Allerdings muss dabei an zwei Stellen das Passwort von |linuxadmin|
eingegeben werden.

Also kann ein normaler Benutzer, der das linuxadmin-Passwort nicht
kennt, keinen lokalen Drucker hinzufügen. Das sind an unserer Schule
außer mir alle. Wie könnte man das denen ermöglichen ohne das Passwort
rauszugeben? Geht da vielleicht was mit /etc/sudoers.d ?

ich denke, es sollte reichen, wenn die Domänennutzer in der Gruppe lpadm
sind.

  1. Lokalen Drucker fest zuweisen:
    Wie könnte man als Admin einen lokalen Drucker einem Client fest
    zuweisen, so dass die Benutzer den Drucker nicht nach jedem
    gesyncten Start selbst tun müssen?

ich habe bei älteren Images (12.04 war das) den lokalen Drucker einer
Fachschaft einfach mit ins Image aufgenommen: der funktionierte
natürlich nur an dem Rechner, an dem der USB Drucker auch eingesteckt war.
Serverdrucker waren trotzdem noch da.

Netzwerkdrucker und lokale Drucker an einem Client:
Wenn man den Cups-Server in /etc/cups/client.conf auf localhost
statt 10.16.1.1 einstellt, kann man denn dann auch zusätzlich zu den
lokalen Druckern auch noch die Netzwerkdrucker von dem Client aus
verwenden. Oder muss man sich entscheiden?

… das ist die Frage, die ich mir auch stelle.
Vielelicht verliert man dann das automatische Drucker verteilen durch
den Server: dann müssen eben alle ins Image

LG

Holger


#11

Das reicht wohl nicht, denn das sind sie bei mir (wohl standardmäßig via /etc/security/group.conf), aber trotzdem musste noch das linuxadmin-Passwort eingegeben werden. Die Meldungen sahen so aus:

Bildschirmfoto%20vom%202018-07-03%2000-09-14

Vielleicht kann man da irgendwo im lokalen cups noch andere Berechtigungen vergeben…

Die Netzwerkdrucker waren trotzdem noch verfügbar, lediglich der am Server gesetzte Standarddrucker (bei uns der PDF-Printer) wird nicht übernommen.

Andreas


#12

Hallo Holger,

HULC 14.04 ist ja nun bereits vor einem Dreivierteljahr bei uns beerdigt
worden, aber so weit ich mich erinnere, ist es für lokale Drucker
entscheidend, dass auf dem Client cups selbst und nicht nur cups-client
installiert ist.
Das Skript, welches aus den Druckerwarteschlangen auf dem Server anhand
des Rechnernamens den Standarddrucker setzt, nimmt den lokalen Drucker,
wenn es einen findet.
Ein Benutzereingriff war nur bei LPT-Druckern erforderlich.

Gruß Jürgen


#13

Halo Stefan,

habe noch ein wenig recherchiert und herausgefunden, wie man allen Benutzern das Hinzufügen von Druckern über die Systemeinstellungen erlauben kann. Das geht mit polkit.

Man muss z.B. in /etc/polkit-1/localauthority/50-local.d eine Datei mit der Endung .pkla (z.B. 10-cups.pkla) und folgendem Inhalt erstellen:

[CUPS Configuration]
Identity=unix-user:*
Action=org.opensuse.cupspkhelper.mechanism.*
ResultAny=no
ResultInactive=no
ResultActive=yes

Die Einstellungen der Rechte in /etc/cups/cupsd.conf wirken sich wohl nur auf den Zugriff via cups-Webinterface aus. Dort wird fürs Hinzufügen etc. von Druckern verlangt, dass der Benutzer Mitglied in lpadmin ist:

  # All administration operations require an administrator to authenticate...
  <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>

(SYSTEM wird dabei in cups-files.conf definiert.)

Viele Grüße

Andreas


#14

Hallo Andreas,

die erforderliche Gruppe in /etc/security/group.conf heißt lpadmin.

Was passiert, wenn Du in dem Fenster einfach das Benutzerkennwort noch
einmal eingibst - die angeforderte Berechtigung hat der ja aufgrund des
Eintrags oben.

Kann sein, dass noch etwas in /etc/sudoers zun tun ist. Wenn niemand
anders auf einem Client nachsehen kann, wo es läuft, könnte ich auf
Anfrage bei mir noch einmal einen HULC 14.04 installieren …

Gruß Jürgen


#15

Hallo Jürgen,

danke, aber bei uns geht’s um 16.04. Und das Problem lässt sich per polkit lösen (siehe mein letzter Post)

Viele Grüße

Andreas