(gelöst) /dev/lp0, Rechte

Einrichten des Druckers und des Drucksystems, Scannerkonfiguration und Software zum Scannen und Faxen.
Antworten
guennid

(gelöst) /dev/lp0, Rechte

Beitrag von guennid » 31.03.2016 21:48:03

Ich habe hier einen Rechner als Druckserver mit devuan ohne udev. Auf /dev/lp0 darf nur root/root lesend und schreibend zugreifen. Installiere ich udev, dann ändert sich das in root/lp. Muss ich da jetzt ein script schreiben, damit alle User in der Gruppe lp auf dem neu eingerichteten aber ziemlich alten Parallel-Laser drucken können oder gibt es eine elegantere Lösung?

Grüße, Günther
Zuletzt geändert von guennid am 02.04.2016 15:56:38, insgesamt 1-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: /dev/lp0, Rechte

Beitrag von rendegast » 31.03.2016 23:45:18

Sollte das nicht von MAKEDEV, Debianmakedev erledigt werden?
Ist natürlich auch ein Skript.


Das postinst des Pakets richtet ein
/etc/rc.boot/makedev
ein, welches sich nach Ausführung (-> MAKEDEV) selbst löscht.
Sieht nach einer Art Initialisierung einmalig bei einem Systemstart aus.
(Frage ist, durch was? In meiner initrd / init.d/ ist da nichts.
Ich habe in der Richtung mal etwas an init.d/rc.local angelehntes selbstgemacht.)

Sollte sich durch 'dpkg-reconfigure makedev' nochmal einrichten lassen.
Zuletzt geändert von rendegast am 01.04.2016 03:47:22, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: /dev/lp0, Rechte

Beitrag von NAB » 01.04.2016 01:33:11

Ein Script, das /dev/lp0 von root:root auf root:lp ändert, wäre sehr übersichtlich.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

guennid

Re: /dev/lp0, Rechte

Beitrag von guennid » 01.04.2016 08:39:44

@NAB
Läuft schon. :wink:

rendegasts Tipp ist vielleicht schöner - wenn ich ihn kapiert und umgesetzt habe. :wink:

Grüße, Günther

guennid

Re: /dev/lp0, Rechte

Beitrag von guennid » 01.04.2016 11:19:14

@rendegast

Debianmakedev nachinstalliert
ein Verzeichnis /etc/rc.boot/ existiert nicht
reboot: dito, Rechte für lp0 root:root

Code: Alles auswählen

dpkg-reconfigure makedev
liefert weder Dialoge noch Bildschirmmeldungen. Änderungen an den Rechten von /dev/lp0 konnte ich nicht feststellen.
ein händisches

Code: Alles auswählen

MAKEDEV -v lp
erzeugte dann zusätzlich zum existierenden lp0 lp1und lp2, alle mit den gewünschten Rechten [root:lp].

Einen Unterschied, ob ich jetzt MAKEDEV in /etc/rc.local in geeigneter Form eintrage oder mein eigenes script mit chgrp und chmod sehe ich z.Z. nicht.

Grüße, Günther

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: /dev/lp0, Rechte

Beitrag von rendegast » 01.04.2016 12:16:03

guennid hat geschrieben: ein Verzeichnis /etc/rc.boot/ existiert nicht
reboot: dito, Rechte für lp0 root:root

dpkg-reconfigure makedev
liefert weder Dialoge noch Bildschirmmeldungen. Änderungen an den Rechten von /dev/lp0 konnte ich nicht feststellen.
Im postinst

Code: Alles auswählen

if [ -n "$LIST" ]; then
        cat > /etc/rc.boot/makedev << EOF
Das cat funktioniert nur bei schon vorhandenem Verzeichnis.
Da es keinen Fehler gibt (#!/bin/sh -e), dürfte das vorher erzeugte $LIST wohl leer sein.
Und es würden auch nur tty[a-ep-z]0 pty[a-ep-z]0 darin stehen
wohl irgendwelche Spezial-tty.


Die einfachste Lösung für dieses eine Problem bleibt ein

Code: Alles auswählen

chown root:lp /dev/lp*
irgendwo im Bootprozeß.



MAKEDEV würde auf meinem System durch das udev-Skript eingebunden

Code: Alles auswählen

# grep -i makedev /etc/init.d/* -C2
/etc/init.d/udev-}
/etc/init.d/udev-
/etc/init.d/udev:create_dev_makedev() {
/etc/init.d/udev:  if [ -e /sbin/MAKEDEV ]; then
/etc/init.d/udev:    ln -sf /sbin/MAKEDEV /dev/MAKEDEV
/etc/init.d/udev-  else
/etc/init.d/udev:    ln -sf /bin/true /dev/MAKEDEV
/etc/init.d/udev-  fi
/etc/init.d/udev-}
--
/etc/init.d/udev-    fi
/etc/init.d/udev-
/etc/init.d/udev:    create_dev_makedev
/etc/init.d/udev-
/etc/init.d/udev-    # wait for the udevd childs to finish
Ohne udev resp. dieses Skript müßte dieses

Code: Alles auswählen

 ln -sf /sbin/MAKEDEV /dev/MAKEDEV
wohl anders eingebaut werden.
Ob /dev/MAKEDEV aber eine Sache nur für den "klassischen" udev (nicht systemd-udevd) ist?






Wie ist es denn, wenn Du lp entlädst

Code: Alles auswählen

modprobe -vr lp parport_pc ppdev
danach

Code: Alles auswählen

/sbin/MAKEDEV -v lp

modprobe -v lp parport_pc
Das gäbe einen Anhalt, wann 'MAKEDEV [lp]' im Bootprozeß gesetzt werden müßte.

MAKEDEV scheint aber auch nur dumm eine Anzahl /dev/lp* zu setzen,
ohne daß diese ein physisches Gegenstück hätten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

katzenfan
Beiträge: 579
Registriert: 19.04.2008 22:59:51

Re: /dev/lp0, Rechte

Beitrag von katzenfan » 01.04.2016 13:58:54

Ist das ein Drucker, dem vor dem Drucken seine Firmware zuzusenden ist? dann könnte auf die passende "RUN"-Datei von HP zurückgegriffen werden.

guennid

Re: /dev/lp0, Rechte

Beitrag von guennid » 02.04.2016 15:40:51

rendegast hat geschrieben:Wie ist es denn, wenn Du lp entlädst

Code: Alles auswählen

modprobe -vr lp parport_pc ppdev
danach

Code: Alles auswählen

/sbin/MAKEDEV -v lp
modprobe -v lp parport_pc
Das gäbe einen Anhalt, wann 'MAKEDEV [lp]' im Bootprozeß gesetzt werden müßte.
Ist doch überflüssig, entscheidend ist, dass der Drucker am Ende des Bootens zur Verfügung steht. Also : /etc/rc.local Womit wir wieder bei der Frage wären, wie lange systemd das noch mitmachen würde, wenn's denn benutzt würde. :wink:

Code: Alles auswählen

chown root:lp /dev/lp*
dort eingetragen führt übrigens nicht zum gewünschten Ergebnis. Ich habe diesen Zweizeiler geschrieben und dort eingetragen:

Code: Alles auswählen

chgrp lp /dev/lp0
chmod g=rw /dev/lp0
Der tut.

Danke für deine Tipps!

Grüße, Günther

Antworten