Salut, habe eine Frage bzg. eines kleinen Bash-Scriptes, das folgende Aufgabe erledigen soll: 1. Wechsle in den root-Modus (su) 2. Update der Antivir-Dateien (antivir --update) 3. Wechsel in den Benutzer-Modus (exit) Hier nun mein erster Ansatz: #!/bin/bash # # Update von Ativir # echo "Wechsel in den root-Modus"; su; echo "Es wird nun das Antivir-Update aufgerufen"; antivir --update; echo "Wechsel in den User-Modus"; exit; Das Problem, der geneigte Leser hat es bereits erkannt, liegt darin, das zwar su ausgefuehrt wird und ich somit in den root-Modus komme, allerdings der Rest des Scriptes fuer mich dann nicht mehr erreichbar ist. Ich bin nun root und nix lauft. Wechsel ich wieder in den Benuzter-Modus mit exit, wird versucht das Update auszufuehren, was aber auf Grund der fehlenden Rechte scheitern muss. Wie kann ich nun antivir --update und den Rest als root ausfuehren? Gerade faellt mir noch ein, dass man ja auch die Moeglichkeit in Betracht ziehen muss, dass das root-Passwort nicht simmt. Reicht es dann, statt des ";" ein "&&" zu setzen oder gibt es da was besseres "IF ... THEN ... ELSE.." etc.? Dank fuer eure Hilfe, ich stehe heute wohl irgendwie auf meiner beruehmten Leitung MfG Bernd -- WhAT YoU HaCk iS WhAT YoU GeT
Bernd Langehegermann wrote:
habe eine Frage bzg. eines kleinen Bash-Scriptes, das folgende Aufgabe erledigen soll:
1. Wechsle in den root-Modus (su) 2. Update der Antivir-Dateien (antivir --update) 3. Wechsel in den Benutzer-Modus (exit)
Hier nun mein erster Ansatz:
#!/bin/bash # # Update von Ativir # echo "Wechsel in den root-Modus"; su; echo "Es wird nun das Antivir-Update aufgerufen"; antivir --update; echo "Wechsel in den User-Modus"; exit;
Das Problem, der geneigte Leser hat es bereits erkannt, liegt darin, das zwar su ausgefuehrt wird und ich somit in den root-Modus komme, allerdings der Rest des Scriptes fuer mich dann nicht mehr erreichbar ist. Ich bin nun root und nix lauft. Wechsel ich wieder in den Benuzter-Modus mit exit, wird versucht das Update auszufuehren, was aber auf Grund der fehlenden Rechte scheitern muss.
Wie kann ich nun antivir --update und den Rest als root ausfuehren?
Was spricht gegen ein su -c 'antivir --update'? Th.
Die, 23 Sep 2003 Bernd Langehegermann wrote:
Bernd Langehegermann wrote:
habe eine Frage bzg. eines kleinen Bash-Scriptes, das folgende Aufgabe erledigen soll:
1. Wechsle in den root-Modus (su) 2. Update der Antivir-Dateien (antivir --update) 3. Wechsel in den Benutzer-Modus (exit)
Was spricht gegen ein su -c 'antivir --update'?
Danke, das war der Zaunpfahl! Mein verbesserungswuerdiger Ansatz sieht jetzt wie folgt aus: #!/bin/bash # # Update von Ativir # echo "Wechsel in den R00T-Modus"; echo "und Update von Amavis-Antivir!"; su -c 'antivir --update' && exit; echo "Wechsel in den User-Modus"; Nochmals Danke Bernd -- WhAT YoU HaCk iS WhAT YoU GeT
Bernd Langehegermann schrieb:
#!/bin/bash # # Update von Ativir # echo "Wechsel in den R00T-Modus"; echo "und Update von Amavis-Antivir!"; su -c 'antivir --update' && exit; echo "Wechsel in den User-Modus";
1. Die Strichpunkte kannst Du Dir sparen, da Du ja nach jedem Befehl einen Zeilenumbruch hast. 2. Das "&& exit" musst Du Dir sparen, denn nach Beendigung des su- Befehls bist Du automatisch wieder User, nicht mehr Root. Der Be- fehl startet keine interaktive Shell sondern uebergibt nur das Kommando, das auszufuehren ist. 3. Die echo-Befehle machen nun eigenlich keinen Sinn mehr... Im Prinzip ist ein Skript fuer so etws nicht noetig. Definiere ein- fach einen alias wie z.B. alias upvir="su -c 'antivir --update'" dann musst Du in Zukunft als User nur noch "upvir" eingeben und gut ist. Gruesse, Thomson
On Dienstag, 23. September 2003 13:11, Bernd Langehegermann wrote:
Salut,
Salut ;-)
habe eine Frage bzg. eines kleinen Bash-Scriptes, das folgende Aufgabe erledigen soll:
1. Wechsle in den root-Modus (su) 2. Update der Antivir-Dateien (antivir --update) 3. Wechsel in den Benutzer-Modus (exit)
Hier nun mein erster Ansatz:
#!/bin/bash # # Update von Ativir # echo "Wechsel in den root-Modus"; su; echo "Es wird nun das Antivir-Update aufgerufen"; antivir --update; echo "Wechsel in den User-Modus"; exit;
Das Problem, der geneigte Leser hat es bereits erkannt, liegt darin, das zwar su ausgefuehrt wird und ich somit in den root-Modus komme, allerdings der Rest des Scriptes fuer mich dann nicht mehr erreichbar ist. Ich bin nun root und nix lauft. Wechsel ich wieder in den Benuzter-Modus mit exit, wird versucht das Update auszufuehren, was aber auf Grund der fehlenden Rechte scheitern muss.
Wie kann ich nun antivir --update und den Rest als root ausfuehren?
Kleiner Denkanstoss: probiere es mal mit sudo.
Gerade faellt mir noch ein, dass man ja auch die Moeglichkeit in Betracht ziehen muss, dass das root-Passwort nicht simmt. Reicht es dann, statt des ";" ein "&&" zu setzen oder gibt es da was besseres "IF ... THEN ... ELSE.." etc.?
Wäre von sudo de facto gelöst.
Dank fuer eure Hilfe, ich stehe heute wohl irgendwie auf meiner beruehmten Leitung
Hoffe es hilft MfG, Gerd
MfG
Bernd
-- WhAT YoU HaCk iS WhAT YoU GeT
-- ------------------------------------------------------------------------ gmichalk@freegates.be \\_// (. .) Powered by SuSE Linux 8.2 -------------------------------------oOOo-oOOo--------------------------
Hallo, Bernd Langehegermann <illuminatus@muenster.de>
habe eine Frage bzg. eines kleinen Bash-Scriptes, das folgende Aufgabe erledigen soll:
1. Wechsle in den root-Modus (su) 2. Update der Antivir-Dateien (antivir --update) 3. Wechsel in den Benutzer-Modus (exit)
sudo wurde schon genannt, Wenn ich ein Script als Root ausführen möchte ohne "dauernd" sudo tippen zu müssen mach ich einfach: ------------------ #!/bin/sh if [ x"$UID" != x"0" ] then sudo $0 $* exit fi # und hier der Rest des Scriptes ------------------ nun muß man nur noch in /etc/sudoers den Namen des Scriptes angeben und das Ganze ohne Passwort erlauben. Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 9204871 Fax: +49(721) 24874 Juergen.Vollmer@[informatik-vollmer.de|alumni.uni-karlsruhe.de|acm.org] www.informatik-vollmer.de
participants (4)
-
Bernd Langehegermann
-
Dr. Jürgen Vollmer
-
Gerd-Christian Michalke
-
Thomas Hertweck