[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [DDL-ML] Alles als root? Neee.



Harald Barth <haba@pdc.kth.se> schrieb:

Hallo Harald!

> Kurzfassung: erddcd funktioniert genauso gut auch ohne root.

So weit ich es verstanden habe: leider nein! Meine Aussagen beziehen sich
dabei auf die Implementation der S88-Schnittstelle. Die entsprechende
Kommunikation wird über einen Parallelport abgewickelt, dessen einzelne
Datenbits zur Bussteuerung geschrieben und die Statusbits zur
Informationsgewinnung gelesen werden müssen.

1. Die aktuelle offizielle Release: Der Zugriff wird über das /dev/port
vorgenommen. Auch dieses device kannst Du wahrscheinlich mit entsprechenden
Rechten für einen Benutzer ausstatten. Aber der hat dann auch gleich Zugriff
auf alle IO-Adressen (Platte, ...). Die Systemsicherheit dürfte damit
gegenüber erddcd als root-user auch nicht steigen.

2. momentane beta Version: Die aktuellen Kernelversionen (2.2.17, genauer
gesagt ab 2.2.0) sehen für den Zugriff auf die parallele Schnittstelle das
parport-device vor. Damit werden auch die neuen Funktionen an der Parallelen
Schnittstelle unterstützt (daisy-chain, splitting - also mehrere Geräte
(z.B. Scanner, ZIP-Drive, ...) an einem Parallelport). Um dies nützen zu
können, muss man aber einen Treiber schreiben - und dazu fehlen mir die
Linux-Kentnisse. Wenn Du es kannst - bitte sehr. Die einfache Möglichkeit
einen user-level-Treiber zu programmieren wird erst ab Kernel 2.4.0
standardmäßig vorhanden sein - das bis dahin benötigte Kernelpatch möchte
ich dem Modellbahnbegeisterten (und vielleicht sonst schon Computergeplagten
oder Linux-Anfänger) nicht zumuten.
Ich habe deshalb in dieser Neuimplementation noch auf den direkten Zugriff
auf die Hardware gebaut, allerdings verwende ich das Kommando ioperm(...).
Und das wird nur als root erfolgreich ausgeführt, anderenfalls wird der
S88-Bus nach einer Mitteilung an den syslogd deaktiviert.
(Anmerkung: a) Grund für den Wechsel des Zugriffes ist eine deutlich erhöhte
Geschwindigkeit.
b) Torsten: Ich hab schon ein bißchen Doku zur Neuimplementation geschrieben

(LaTeX) - jetzt muss ich nur noch schaffen, dass normkonformes HTML daraus
wird.)

3. zukünftige Versionen:
Da wäre natürlich der user-level-Treiber das A und O. Oder jemand schreibt
noch einen vollwertigen Treiber, über den die Kommunikation dann abgewickelt
werden kann (/dev/s88). Dann sollte erddcd wirklich als nicht-root laufen.
Nur, wie ist das mit den 8255-Rückmeldekarten? Die laufen zumindest momentan
auch noch über /dev/port

Also, das ganze ist wie immer nicht ganz so einfach, wie es einem auf den
ersten Blick oft scheint. (Selbsterfahrung :-)

Grüße nach Schweden

Martin
  ##         ##     Martin Wolf
 ####   #    ##     München, Germany
##  ## ###  ##      <martin@familiewolf.de>
##   ### ####         http://www.familiewolf.de