Script als root ausführen

S

Schwedeii

Tripel-As
Moin, ich bin neu hier, hab aber schon ein bissel mit der SuSE rumgedoktert.
Folgendes Problem will ich lösen:
Meiner gutsten hab ich Linux aufgeschwatzt. mit Erfolg. Sie arbeitet auch ganz gut damit, nur gibt es da ein Problem:
Es gibt Druckaufträge, in denen mal Papier fehlt oder eine andere Panne passiert. Der Druckauftrag muss abgebrochen werden. Leider geht das nicht ohne weiteres, wenn die Dateien erst mal im Spooler von cups liegen.
Also, dachte ich mir, nicht faul, schreibste mal'n Script. Früher oder später ist man sowieso damit dran.
So sollte es aussehen:

#! /bin/bash
cd /var/spool/cups
rm -R *

Kurz und schmerzlos, und genauso kurt und schmerzlos hat mir das Script dann gemeldet, dass es keine Dateien löschen kann (nur lp Rechte gesetzt) und fing an, ganz munter die Dateien im Heimatverzeichnis zu löschen. :think:

Fatzit: -so geht es nicht. Das Problem mit dem Heimatordner löse ich indem ich einfach rm -R /var/spool/cups/* einstze, aber da kann ich immer noch nicht die Dateien im cups-Ordner löschen, weil ich dafür root-Rechte benötige, aber meine Gutste diese mit Sicherheit nicht bekommt. Weiß da jemand eine Lösung?
 
Hmm, hab schon mal ein bissel rumgegoogelt, aber bis jetzt ohne den richtigen Erfolg. Wie es aussieht, ist alles in Englisch, und wenn es um so ein heikles Thema geht(ausführungen unter root) sollte man schon wissen, was man tut.
Gibt es da irgendwo ein sudo Howto auf Deutsch?
 
ja, wenn dein system deutsch ist, einfach "man sudo".
 
naja, SuSE von Novell is wohl nicht deutsch. Was sich schon bemerkbar macht, wenn man den Konqueror mit der Adresse # füttert
 
naja, SuSE von Novell is wohl nicht deutsch. Was sich schon bemerkbar macht, wenn man den Konqueror mit der Adresse # füttert

Lol .

Also erst mal war Suse ursprünglich eine Deutsche Firma bevor Novell sich Suse gekauft hat , da könnte man Vermuten das a bisll Deutsch in Suse vorkommen kann.

Weiter gibt es in fast jeder Distribution sowas wie Sprachpackete , ganz besonderst in Suse und vor allem gibts die auch in Deutsch.

Nebenbei gibts, das kannst du jetzt als Anfänger noch nicht wissen, ein Packet das manpages-de heißt , da sollte es auch unter Suse geben und macht wie der Name schon sagt deine Manpages ein bischen Deutscher.

Und wenn du was über sudo wissen willst dann schau mal auf den Ubuntuseiten rein . Die machen viel mit sudo und vor allem haben die gute Deutsche Dokus.

Solange du nur nach sudo schaust sollte sich dass Distributions unabhängig verwenden lassen.

Gruß Sono
 
JA, von Ubuntu habe ich gehört, hab's besucht und...
Ja sudo wird viel verwendet. So viel, dass bei howto oder doku in Verbindung mit sudo auch tausende von links angezeigt werden, in denen sudo zwar verwendet, aber nicht dokumentiert wird. Wie soll ich die Suche denn noch eingrenzen, wenn ich nicht weiss, wo ich anfangen soll?

Nachtrag:
Hab erst mal eine Lösung gefunden. Unter SuSE-KDE kann ein Befehl unter einem anderen User ausgeführt werden. Damit klappt's, wenn man die Konsole benutzt.
Meine Frage: gibt es da eine Möglichkeit, das Passwort für diese eine Aktion automatisch mit zu übergeben?
 
Zuletzt bearbeitet:
Kann man bei CUPS nicht mit lprm Auftraege aus der Warteschlange entfernen? Oder geht das am Problem voellig vorbei?
 
Nein, eigentlich nicht, nur:
Da kommt die Meldung:
Unable to chancel job(s)

Kurios: Selbst nach dem leeren von /var/spool/cups und /var/spool/cups/tmp druckt der Drucker fleissig weiter, bis ich einen reboot durch führe. Was soll das denn?
 
Wahrscheinlich hat der Drucker einen lokalen Speicher, in dem er die Aufträge zwischenspeichert.
 
Dann müsste der aber leer sein, wenn ich dem Ding den Stecker abziehe und ca. 10 Sekunden warte. Fehlanzeige. Schon probiert.
 
gib einfach in der konsole ein:
Code:
# kdesu rm -Rf /var/spool/cups/*
Dann kommt ne Box mit Passwortdialog

und ansonsten stoppe den Cups dienst einfach und starte ihn neu:

Code:
# kdesu "/etc/init.d/cupsd stop && /etc/init.d/cupsd start"

(zumindest bei Gentoo, wo genau die Suse init Dateien liegen weiß ich nciht)
 
Zuletzt bearbeitet:
gib einfach in der konsole ein:

Code:
# kdesu rm -Rf /var/spool/cups/*Dann kommt ne Box mit Passwortdialog
Das hab ich bereits mit dem Script hingekriegt. Vor allem liegt im cups-Spooler-Ordner ein Ordner tmp, der muss erhalten bleiben, sonst druckt gar nix mehr. So ist ein dreizeiler aus dem Script geworden.

kdesu "/etc/init.d/cupsd stop && /etc/init.d/cupsd start
Dank dieses Hinweises hab ich jetzt ein funktionsfähiges Script:

lprm:

#!/bin/bash
/etc/init.d/cups stop
cd /var/spool/cups
rm /var/spool/cups/*
rm /var/spool/cups/tmp/*
/etc/init.d/cups start


Zur Erklärung:
Die erste Zeile sollte klar sein.
In der zweiten Zeile wird der Daemon cupsd angehalten. Dies erfolgt aber nicht direkt, cupsd befindet sich unter /usr/sbin bei der SuSE, sondern durch ein entsprechendes Script Namens cups, das unter /etc/init.d zu finden ist.
Die dritte Zeile wechselt zum Spooler-Verzeichnis von cups. In der vierten und fünften wird dieses Verzeichnis geleert, der Ordner tmp muss aber bestehen bleiben.
In der sechsten Zeile wird cupsd wieder gestartet. Nun nur noch abwarten, bis der Drucker stehen bleibt. Drucker zur Sicherheit ausschalten (es befinden sich oft Datenreste im Speicher desselben) und nach ca 1 Min wieder einschalten.
Der Rechner ist genau so wie vorher. Das gilt aber nur für die SuSE. Die entsprechenden Pfade und feinheiten muss jeder, je nach Distribution, selbst herausfinden.
 
Zuletzt bearbeitet:

Ähnliche Themen

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Debian squeeze, Webmin, Samba Freigaben

HP PSC 2175 - CUPS druckt nicht

(force) create mode greift erst nach Bearbeiten der Rechte vom Client aus

xargs beschränkt? Script funktioniert nicht...

Zurück
Oben