ALs user mit crontab su-Rechte bekommen??
Ich habe in der Crontab mit backup2l ein täglich wiederkehrendes Backup eingerichtet. Ich kann das Programm als User über die Kommandozeile anwerfen. Als root kann ich das nicht, da sagt die bash: "Command not found". Nun gibt mir Cron aber nach dem Startversuch von backup2l die Mitteilung, dass auch hier das "Command not found". Heisst das nun, dass die von mir als User definierte Aufgabe unter Cron vom Root gestartet wird? Interessant - ich wills gleich mal mit fdisk versuchen ... Oder wird das nix? Meine eigentliche Frage ist aber umgekehrt: Wie kann ich cron erzählen, dass die von user guido definierte Aufgabe einen Prozess startet, deren Eigentümer user guido ist? Das Handbuch zu Kcron (nichts weiter als ein paar Sätze zu den Menüeinträgen) und man crontab (drei Optionen erklärt) hilft mir hier nicht weiter. Oder gucke ich da falsch? Danke! Guido PS: Ich frage hier viel und kann doch selbst wenig zur Liste beitragen. Das tut mir leid, aber nach nur einem halben Jahr Erfahrung mit Linux glaube ich nur mit Trivialwissen aufwarten zu können. Triviale Fragen, scheint mir, gibts hier aber kaum ...
Ich habe in der Crontab mit backup2l ein täglich wiederkehrendes Backup eingerichtet. Ich kann das Programm als User über die Kommandozeile anwerfen. Als root kann ich das nicht, da sagt die bash: "Command not found".
Nun gibt mir Cron aber nach dem Startversuch von backup2l die Mitteilung, dass auch hier das "Command not found". Heisst das nun, dass die von mir als User definierte Aufgabe unter Cron vom Root gestartet wird? Interessant - ich wills gleich mal mit fdisk versuchen ... Oder wird das nix?
Meine eigentliche Frage ist aber umgekehrt: Wie kann ich cron erzählen, dass die von user guido definierte Aufgabe einen Prozess startet, deren Eigentümer user guido ist?
Das Handbuch zu Kcron (nichts weiter als ein paar Sätze zu den Menüeinträgen) und man crontab (drei Optionen erklärt) hilft mir hier nicht weiter. Oder gucke ich da falsch?
Danke!
Guido
Ich hatte dasselbe Probleme mit cron-jobs als root und gebe deshalb immer die Pfade der Processe die cron starten soll komplett an. Du bekommt den kompletten Pfad zur einem Programm, dass Du auf der Konsole ausführen kannst auch dort. Gib mal 'which backup2l' oder 'where backup2l' ein. Natürlich ohne die Anstriche :-) Das trägst Du dann in die crontab des Users ein und zwar wie folgt: 'crontab -e' öffnet Dir ein vi (das ist ein Text-Editor für die Konsole) Du gibtst dann folgendes ein (erst die Taste 'i' drücken für den Input-Modus): 10,20,34 * * * 1-5 /usr/local/bin/foo (dies startet montag bis freitag, immer um 10 Minuten, 20 Minuten und vier Minuten nach halb den Job foo) dann Escape drücken, einen Doppelpunkt, das Zeichen 'w' und das Zeichen 'q' eingeben, dann 'Enter' drücken. Fertig! ':' steht für einen Befehl den vi ausführen soll z.B. 'w' für write oder 'q' für quit. noch ein Beispiel (jeden Tag um 23:59 Uhr 'foo' starten): 59 23 * * * /usr/local/bin/foo noch ein Beispiel (an Sylvester um 23:59 Uhr 'foo' starten): 59 23 12 31 * /usr/local/bin/foo Tue Dir ruhig mal den Texteditor vi auf der Konsole an. Falls mal kein X da ist, ist der sehr nützlich. Gibt es auf jedem Unix/Linux-System. Gruss, N. ESchricht
Hallo, Am Tue, 22 Mar 2005, N. Eschricht schrieb:
Users ein und zwar wie folgt: 'crontab -e' öffnet Dir ein vi (das ist ein Text-Editor für die Konsole)
'vi' ist (besonders fuer Umsteiger) doch etwas stoerrisch, aber 'crontab -e' verwendet vi nur im aeussersten Notfall. Ist aber die Umgebungsvariable 'VISUAL' und/oder 'EDITOR' gesetzt wird das dort definierte Programm verwendet. Der so definierte Editor solle aber auf jeden Fall (auch) fuer die Konsole tauglich sein. Also z.B.: export EDITOR='joe' oder export EDITOR='mcedit' Man sollte generell mindestens EDITOR definieren (in seiner ~/.bashrc). -dnh, bei mir zeigen EDITOR und VISUAL aber auf xemacs/gnuclient ;) Aber auch mit vi komm ich klar genug um einfache Dinge zu erledigen... :) --
Genauso könntest Du einen Grafiker in den Farbraum schicken. Was mich daran erinnert, dass Maler zwar von Farb_tönen_, Musiker aber von Klang_farben_ reden. [Michael Fesser, Markus Kottenhahn in <darw/>]
Am Dienstag, 22. März 2005 00:20 schrieb N. Eschricht:
Meine eigentliche Frage ist aber umgekehrt: Wie kann ich cron erzählen, dass die von user guido definierte Aufgabe einen Prozess startet, deren Eigentümer user guido ist?
Ich hatte dasselbe Probleme mit cron-jobs als root und gebe deshalb immer die Pfade der Processe die cron starten soll komplett an. Du bekommt den kompletten Pfad zur einem Programm, dass Du auf der Konsole ausführen kannst auch dort.
Danke, dieser Hinweis, dass es ein Pfadproblem sein könnte, hat mich auf die richtige Spur gebracht. vi kenne ich übrigens und habe den Editor auch während der Installation von Linux auf meinem Subnotebook extensiv brauchen (müssen). Für die Alltagsaufgaben nehme ich lieber kwrite. Guido
Guido Pinkernell schrieb:
Ich habe in der Crontab mit backup2l ein täglich wiederkehrendes Backup eingerichtet. Ich kann das Programm als User über die Kommandozeile anwerfen. Als root kann ich das nicht, da sagt die bash: "Command not found".
Nun gibt mir Cron aber nach dem Startversuch von backup2l die Mitteilung, dass auch hier das "Command not found". Heisst das nun, dass die von mir als User definierte Aufgabe unter Cron vom Root gestartet wird? Interessant - ich wills gleich mal mit fdisk versuchen ... Oder wird das nix?
Cron führt die Jobs in der Crontab eines Benutzers auch unter der Kennung dieses Benutzers aus. Was cron hier fehlt, ist die Umgebung Deiner Login-Shell. D.h., Du solltest cron eine passende Umgebung am Anfang der crontab mitgeben. Schreibe dort z.B. rein: PATH=$PATH:/usr/local/bin, wenn Dein backup2l in /usr/local/bin liegt. Martin
Am Dienstag, 22. März 2005 00:24 schrieb Martin Schmitz:
Guido Pinkernell schrieb:
Ich habe in der Crontab mit backup2l ein täglich wiederkehrendes Backup eingerichtet. Ich kann das Programm als User über die Kommandozeile anwerfen. Als root kann ich das nicht, da sagt die bash: "Command not found".
Nun gibt mir Cron aber nach dem Startversuch von backup2l die Mitteilung, dass auch hier das "Command not found". Heisst das nun, dass die von mir als User definierte Aufgabe unter Cron vom Root gestartet wird? Interessant - ich wills gleich mal mit fdisk versuchen ... Oder wird das nix?
Cron führt die Jobs in der Crontab eines Benutzers auch unter der Kennung dieses Benutzers aus. Was cron hier fehlt, ist die Umgebung Deiner Login-Shell. D.h., Du solltest cron eine passende Umgebung am Anfang der crontab mitgeben. Schreibe dort z.B. rein: PATH=$PATH:/usr/local/bin, wenn Dein backup2l in /usr/local/bin liegt.
Genau das wars, danke. Nur wo die Crontab des Benutzers ist habe ich mittels > Dateien suchen (KDE) nicht ermitteln können. Daher habe ichs mit Kcron gemacht. Guido
On 2005-03-21 23:44:47 +0100, Guido Pinkernell wrote:
Meine eigentliche Frage ist aber umgekehrt: Wie kann ich cron erzählen, dass die von user guido definierte Aufgabe einen Prozess startet, deren Eigentümer user guido ist?
man 5 crontab Sieh Dir mal /etc/crontab an.
Das Handbuch zu Kcron (nichts weiter als ein paar Sätze zu den Menüeinträgen) und man crontab (drei Optionen erklärt) hilft mir hier nicht weiter. Oder gucke ich da falsch?
Ja. man man Gruß Martin -- Martin Schröder, ms@artcom-gmbh.de ArtCom GmbH, Lise-Meitner-Str 5, 28359 Bremen, Germany Voice +49 421 20419-44 / Fax +49 421 20419-10 http://www.artcom-gmbh.de
Am Dienstag, 22. März 2005 00:34 schrieb Martin Schröder:
On 2005-03-21 23:44:47 +0100, Guido Pinkernell wrote:
Meine eigentliche Frage ist aber umgekehrt: Wie kann ich cron erzählen, dass die von user guido definierte Aufgabe einen Prozess startet, deren Eigentümer user guido ist?
man 5 crontab
Da stehts: "Each user has his own crontab". Nur wo die meine ist? Ich habe es mit Kcron gelöst.
Sieh Dir mal /etc/crontab an.
Hm, habe da auch keinen Hinweis gefunden. Aber egal, es läuft jetzt.
Das Handbuch zu Kcron (nichts weiter als ein paar Sätze zu den Menüeinträgen) und man crontab (drei Optionen erklärt) hilft mir hier nicht weiter. Oder gucke ich da falsch?
Ja. man man
Ein Handbuch fürs Handbuch... ;) Ist mir neu. Danke für den Hinweis. Guido
Hallo Guido, hallo Leute, Am Mittwoch, 23. März 2005 08:49 schrieb Guido Pinkernell:
Am Dienstag, 22. März 2005 00:34 schrieb Martin Schröder:
On 2005-03-21 23:44:47 +0100, Guido Pinkernell wrote:
Meine eigentliche Frage ist aber umgekehrt: Wie kann ich cron erzählen, dass die von user guido definierte Aufgabe einen Prozess startet, deren Eigentümer user guido ist?
man 5 crontab
Da stehts: "Each user has his own crontab". Nur wo die meine ist? Ich habe es mit Kcron gelöst.
Das ist auch der richtige Ansatz. Statt Kcron kannst Du übrigens auch crontab -e verwenden. Zwecks Backup: Die User-Crontabs liegen in /var/spool/cron/tabs/ - allerdings soll man immer die o. g. Tools zur Bearbeitung verwenden. Niemals eine Datei in /var/spool/cron/tabs/ direkt ändern! Gruß Christian Boltz -- linux:~ # nmap localhost bash: nmap: command not found linux:~ # nmap geht nicht [Marcel Stein in suse-linux]
On 2005-03-23 08:49:14 +0100, Guido Pinkernell wrote:
Am Dienstag, 22. März 2005 00:34 schrieb Martin Schröder:
On 2005-03-21 23:44:47 +0100, Guido Pinkernell wrote:
Meine eigentliche Frage ist aber umgekehrt: Wie kann ich cron erzählen, dass die von user guido definierte Aufgabe einen Prozess startet, deren Eigentümer user guido ist?
man 5 crontab
Da stehts: "Each user has his own crontab". Nur wo die meine ist? Ich habe es mit Kcron gelöst.
"Each line has five time and date fields, followed by a user name if this is the system crontab file, followed by a command." Ist aber wirklich gut versteckt. Gruß Martin -- http://www.tm.oneiros.de
Am Montag, 21. März 2005 23:44 schrieb Guido Pinkernell:
Ich habe in der Crontab mit backup2l ein täglich wiederkehrendes Backup eingerichtet. Ich kann das Programm als User über die Kommandozeile anwerfen. Als root kann ich das nicht, da sagt die bash: "Command not found".
Nun gibt mir Cron aber nach dem Startversuch von backup2l die Mitteilung, dass auch hier das "Command not found".
Danke für die vielen Hinweise. Ich konnte mit Eurer Hilfe das Problem wie folgt lösen: Ich musste für den User die Umgebungsvariable PATH neu definieren. Zwar ist die in der crontab gesetzt, diese Definition gilt aber nicht für die von mir (User) definierten Aufgaben. Deshalb die Fehlermeldung. Es gibt keine crontab im home-Verzeichnis des Users. Wo die Settings gespeichert werden ist mir daher rätselhaft. Die /etc/crontab ist es jedenfalls nicht. Ich habe daher die Path-Definition mittels Kcron (als User gestartet) vorgenommen. Jetzt läufts. Nochmals Danke! Guido
participants (7)
-
Christian Boltz
-
David Haller
-
Guido Pinkernell
-
Martin Schmitz
-
Martin Schröder
-
Martin Schröder
-
N. Eschricht