Hallo, On Dec 11 16:28 Dieter Kroemer wrote (shortened):
Nachdem Schüler öfter mal Blödsinn ausdrucken oder einen Druckauftrag mit 100-Seiten herausgeben, muss die Druckerwarteschlange auch vom anwesenden Lehrer gelöscht werden können. Die Druckaufträge werden anscheinend in /var/spool/cups gespeichert. Jetzt hätte ich gerne einen Befehl oder ein Script, das der Gruppe teachers erlaubt beim ausführen dieses Scripts sämtliche vorhandene Druckaufträge löscht. Allerdings besitzt der Ordner /var/spool/cups ja die Rechte 700 und die Owner lp.sys.
Da scheint mir der grundsätzliche Gedankengang dahinter mehr als problematisch zu sein. 1. Grundsätzlich kann es beliebige Probleme geben, wenn man einem laufenden Prozess (hier dem cupsd) von aussen seine Daten ändert (hier Dateien im Spoolverzeichnis löscht). 2. Für einen aktiv im Druck befindlichen Druckauftrag ist es normalerweise zwecklos, die zugehörigen Dateien im Spoolverzeichnis zu löchen, um den Druckauftrag abzubrechen, denn die Daten können schon ganz oder zum allergrössten Teil in den verschiedenen Stufen der Filterung stecken. Daher bitte keine solche üblen Hacks machen (sonst heisst es hinterher wieder, dass das Drucksystem nicht funktioniert), sondern die Befehle nehmen, die dafür vorgesehen sind, mit dem Druckdienst zu kommunizieren (hier "lpstat -o" und "cancel"). Siehe das Administrationshandbuch und die CUPS-Dokumentation. Nur der Benutzer "root" darf beliebige Druckaufträge löschen. Ein Script kann aber nicht mit Setuid "root" laufen (das wird einfach ignoriert). Auch hier gibt es verschiedene übliche Wege, das trotzdem zu erreichen (z.B. "sudo"). Gruss, Johannes Meixner -- SUSE LINUX AG, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/