Wichtig:	Da es h"aufig erw"unscht ist, printop mit SUID ROOT
		laufen zu lassen (damit damit auch die Queues gestoppt
		werden k"onnen etc.), gibt es in printop einen ent-
		sprechenden Sicherheitsmechanismus. Bitte unter
		Konfiguration die Erkl"arung zu confSUID lesen!

Voraussetzung:	Da das Progr"ammchen ein tcl/tk-Script ist, m"ussen
		nat"urlich tcl und tk auf dem System installiert
		sein. Und da das ganze mit Fensterchen unter
		X-Windows l"auft, mu"s nat"urlich ein X-Server
		und Display zur Verf"ugung stehen. Ansonsten
		sollte es keine Schwierigkeiten geben. Getestet
		wurde das Programm auf einem PC386 unter Linux
		und diversen Sun-Workstations (S/W, Graustufen
		und Farbe; Solaris und Sun-Os; Sparc-ELC, Sparc-5
		und Sparc-10) und lief dort tadellos (wie zu
		erwarten war ;-)

Installation:	Da habe ich mir doch richtig M"uhe gegeben. Die
		einzige n"otige Arbeit bei der Installation dieses
		Progr"ammchens ist eine "Anderung ganz am Anfang des
		Scripts. Da wird der Variablen "printop_path" der
		Pfadname des Verzeichnisses zugewiesen, in dem sich
		das "printop" befindet. Dies ist n"otig, damit
		printop die System-Default-Dateien "printop.cfg"
		und "printop.cmd" finden kann, die in diesem Verzeichnis
		stehen sollten. Und weiter gehts mit der Konfiguration...

Konfiguration:	Geh"ort nat"urlich auch zur Installation dazu.
		Es gibt also besagte Default-Dateien "printop.cfg" und
		"printop.cmd". In "printop.cmd" werden die Kommandos
		konfiguriert, die printop aufruft, um mit den Druckern
		zu kommunizieren. Hier muessen also die richtigen
		Pfadnamen fuer lpq, lpc usw. eingetragen werden. In
		der Datei "printop.cfg" kann man den Default-Drucker
		ausw"ahlen und die ganzen Men"u-Eintr"age nach eigenen
		Vorlieben gestalten. F"ur beide Dateien gilt:
			- Leerzeilen werden "ubergangen.
			- Kommentare werden durch ein # am Zeilenanfang
			  gekennzeichnet.

	In "printop.cmd" gibt es folgende Befehle:

	set	Format: set parameter wert
		Damit wird parameter der Wert wert zugewiesen. M"ogliche
		Parameter sind: confLPC, confLPRM, confLPQ, confRSH
		und confSUID.

		confLPC: hierin steht das Kommando, mit dem "lpc" gestartet
			wird. Normalerweise wird hier ein Eintrag wie:
			"set confLPC lpc" gen"ugen, in unserem Rechen-
			zentrum mu"s man "opcom lpc" aufrufen, um die f"ur
			die LPC-Kommandos n"otigen Rechte zu erhalten (es
			sei denn, man ist ohnehin schon root). Also ist bei
			uns der vollst"andige Wert f"ur conf_lpc
			"/usr/local/etc/opcom lpc", eine Zeile in der 
			"printop.cmd" wird also

			set	confLPC		/usr/local/etc/opcom lpc

	 		lauten.

		confLPRM: hier wird der Aufruf von "lprm" angegeben.
			H"aufig k"onnte hier "set confLPRM lprm" gen"ugen,
			will man aber auch Druckjobs entfernen, die
			nicht die eigenen sind, so mu"s wohl etwas her-
			halten, was einem die Rechte dazu verschafft, wenn
			man printop nicht SUID root startet. In unserem
			Fachbereich ist also

			set	confLPRM	/usr/local/etc/opcom lprm

			die Konfigurationszeile.

		confLPQ: hier wird der Aufruf von "lpq" angegeben. Die
			Rechte um lpq auszuf"uhren sollte jeder Benutzer
			haben, also ist der Eintrag in "printop.cmd":

			set	confLPQ	lpq

		confRSH: Hier wird der Aufruf f"ur die Remote-Shell
			angegeben. Diese wird dann mit den Parametern
			Host Command (in dieser Reihenfolge) aufgerufen,
			wie das f"ur "rsh" als Remote-Shell so "ublich
			ist. Also z.B.

			set	confRSH	  rsh
			
		confSUID: Hier kann man (der superuser) angeben, ob printop
			mit suid root l"auft. Hat confSUID den Wert 1, so
			wertet printop den Inhalt der Datei "~/.printop.cmd"
			nicht aus (jeder User k"onnte sonst ja irgendwelche
			Programme mit SUID ROOT ausf"uhren lassen!). Bei
			einem Wert von 0 wird die "~/.printop.cmd" ausge-
			wertet. DANN DARF PRINTOP NIEMALS MIT SUID ROOT
			GESTARTET WERDEN!


	In der "printop.cfg" gibt es folgende Befehle:

	printer	Format: printer button pattern ?path?
		oder	printer menu name pattern ?path?
		Damit wird das Drucker-Auswahl-Men"u konfiguriert. 

		"printer startup" gibt printop den Namen des Default-Druckers
		an (also den Namen der Queue, die beim Start von printop
		angezeigt wird. Hier sollte auf jeden Fall ein g"ultiger
		Druckername des Systems stehen, sonst stellt printop fest,
		da"s es den Drucker nicht gibt und beendet sich mit einer
		Fehlermeldung. Eintr"age w"aren also z.B.

			printer	startup	lp

		oder aber auch

			printer	startup	d116_lw

		Ersterer fast "uberall in der Unix-Welt, letzterer wohl nur
		in unserem Fachbereich.

		"printer button <pattern> <path>" f"ugt Kn"opfe f"ur Drucker
		in das Men"u ein. Es wird f"ur jeden Drucker aus der
		/etc/printcap, auf den das Suchmuster pattern pa"st, ein
		Knopf in das Men"u eingef"ugt. Durch Angabe eines Pfades
		k"onnen die Kn"opfe auch in Untermen"us, die durch "printer
		menu [...]" eingerichtet wurden, eingef"ugt werden.

		"printer menu <label> <name> <path>" f"ugt ein Untermen"u ein.
		Dieses bekommt die Beschriftung "label" und ist erst einmal
		ein leeres Untermen"u. Kn"opfe f"ur Drucker k"onnen dann
		mit einem "printer button ..." Kommando hier eingef"ugt
		werden. Durch Angabe eines Pfades k"onnen Untermen"us
		auch in Untermen"us eingerichtet werden.

		Ein Pfad besteht einfach aus dem Hintereinanderschreiben
		der Namen der "ubergeordneten Men"us, getrennt jeweils durch
		einen Punkt. Will man also ein Untermen"u im Untermen"u
		"gebaeude_b" einrichten, so w"are der Pfad
		"gebaeude_b". Ein Pfad "Laserdrucker.HP" verweist auf das Unter-
		men"u HP im Untermen"u Laserdrucker. Die Trennung von Label
		(also dem, was in der Men"u-Zeile steht) und Name (dem Namen
		des Knopfes) war n"otig, weil in den Namen bei Tk keine
		Leerzeichen oder Punkte usw. auftauchen d"urfen, aber der
		Text, mit dem die Men"u-Eintr"age beschriftet sind, darf
		enthalten was man will. Irgendwelche besseren Vorschl"age
		(aber bitte nur Leute mit Ahnung von der Sache)?

User-Konfiguration: Ist nat"urlich auch m"oglich, auch wenn damit
		wieder mehr Fehler als N"utzlichkeiten verzapft
		werden ("Das printop geht bei mir "uberhaupt nicht!").
		Gibt es eine Datei "~/.printop.cfg", so wird das Drucker-
		Men"u nach dieser Datei erstellt, die Systemdatei
		"printop.cfg" wird dann nicht ber"ucksichtigt.
		Auch die Kommandos k"onnen f"ur jeden User einzeln
		spezifiziert werden (welchen Sinn das auch immer
		machen soll). Dies geht nur, wenn in der Systemdatei
		"printop.cmd" confSUID auf 0 gesetzt wird. Dann n"amlich
		liest printop auch noch die Datei "~/.printop.cmd"
		ein und wertet sie aus.

Thats all folks...



Copyright: siehe Datei COPYRIGHT.

Wenn Du irgendwelche Verbesserungsvorschl"age oder Ideen hast, kannst Du
mich erreichen unter:

        gellert@informatik.uni-hamburg.de


Wenn Du dieses Programm magst und benutzt (so ab und an oder auch jeden
Tag), dann schick mir doch eine Postkarte. Nur so eine mit "Hallo. Nettes
Programm. Dankesch"on. ?NAME? ?ADRESSE?" oder etwas "ahnlichem. Oder sei
endlos kreativ... Schicke die Postkarte an:

                Olaf Gellert
                Verstcken 9
                22297 Hamburg
                Germany

Ich liebe es, Postkarten zu bekommen...

