Hallo Liste. Ich würde gerne ein Skript, welches in cron.weekly liegt und folglich von root ausgeführt wird, unter anderem Namen ausführen. Folgendes geht aus der Konsole heraus gestartet nicht: #!/bin/bash su andereruser whoami [...Restskript...] Denn su bringt mir eine Shell des anderen Users, und erst wenn ich die beende, wird whoami ausgeführt, dann natürlich wieder mit dem Ergebnis "root". Wie löst man das? Ich habe schon in man su nachgelesen, aber da finde ich nichts hilfreiches. Natürlich könnte ich auch su -c anderesskript andereruser machen, aber dann sind es schon zwei Skripten, und das gefällt mir nicht. Das muß doch auch eleganter gehen. Danke. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 8. März 2007 10:45 schrieb Andre Tann:
Hallo Liste.
Ich würde gerne ein Skript, welches in cron.weekly liegt und folglich von root ausgeführt wird, unter anderem Namen ausführen.
Folgendes geht aus der Konsole heraus gestartet nicht:
#!/bin/bash su andereruser whoami [...Restskript...]
Denn su bringt mir eine Shell des anderen Users, und erst wenn ich die beende, wird whoami ausgeführt, dann natürlich wieder mit dem Ergebnis "root".
Wie löst man das? Ich habe schon in man su nachgelesen, aber da finde ich nichts hilfreiches.
Natürlich könnte ich auch
su -c anderesskript andereruser
machen, aber dann sind es schon zwei Skripten, und das gefällt mir nicht. Das muß doch auch eleganter gehen.
Hallo! Wie wärs wenn Du das script mit 'sudo' aufrufst? man sudo Gruß Burkhard -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Burkhard Schichtel, Donnerstag, 8. März 2007 10:48:
Wie wärs wenn Du das script mit 'sudo' aufrufst?
Das ist schlecht. Es soll einfach in cron.weekly liegen, und dort von cron gefunden werden. Das hat dann aber natürlich zur Folge, daß es mit root-Rechten läuft. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Andre Tann schrieb:
Burkhard Schichtel, Donnerstag, 8. März 2007 10:48:
Wie wärs wenn Du das script mit 'sudo' aufrufst?
Das ist schlecht. Es soll einfach in cron.weekly liegen, und dort von cron gefunden werden. Das hat dann aber natürlich zur Folge, daß es mit root-Rechten läuft.
Für den anderen user eine eigene crontab einrichten, in der Du das Skript einträgst? Christian ___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Christian Pelz, Donnerstag, 8. März 2007 11:57:
Für den anderen user eine eigene crontab einrichten, in der Du das Skript einträgst?
Das geht natürlich auch, hat aber den Nachteil, daß es dann jede Woche zur selben Zeit ausgeführt wird. Auf meiner Maschine liegen ziemlich viele Skripten in cron.weekly, die alle eine hohe Netzwerklast verursachen. Die werden dann schön der Reihe nach abgearbeitet, ohne daß sie sich gegenseitig stören. Würde ich sie über einen normalen crontab-Eintrag starten, so könnte es passieren, daß mehr als eines gleichzeitig läuft, und die Skripte sich so gegenseitig die Bandbreite wegnehmen. Klar, auch das könnte man wieder umgehen. Aber trotzdem muß es doch einem Skript möglich sein, root-Rechte abzugeben und als ein anderer User weiterzulaufen. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Moin moin, wie waers denn mit 'setuid' ?? gruss max
Christian Pelz, Donnerstag, 8. März 2007 11:57:
Für den anderen user eine eigene crontab einrichten, in der Du das Skript einträgst?
Das geht natürlich auch, hat aber den Nachteil, daß es dann jede Woche zur selben Zeit ausgeführt wird.
Auf meiner Maschine liegen ziemlich viele Skripten in cron.weekly, die alle eine hohe Netzwerklast verursachen. Die werden dann schön der Reihe nach abgearbeitet, ohne daß sie sich gegenseitig stören. Würde ich sie über einen normalen crontab-Eintrag starten, so könnte es passieren, daß mehr als eines gleichzeitig läuft, und die Skripte sich so gegenseitig die Bandbreite wegnehmen. Klar, auch das könnte man wieder umgehen. Aber trotzdem muß es doch einem Skript möglich sein, root-Rechte abzugeben und als ein anderer User weiterzulaufen.
-- Andre Tann
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Markus Heinze, Donnerstag, 8. März 2007 14:46:
wie waers denn mit 'setuid' ??
Das wird doch bei Skripten nicht beachtet, IIRC, oder? -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
moin moin,
Markus Heinze, Donnerstag, 8. März 2007 14:46:
wie waers denn mit 'setuid' ??
Das wird doch bei Skripten nicht beachtet, IIRC, oder?
Also meine Perl Scripts laufen damit problemlos. gruss max
-- Andre Tann
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Markus Heinze, Donnerstag, 8. März 2007 15:49:
Also meine Perl Scripts laufen damit problemlos.
Perl schon, Shell nicht. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Thursday 08 March 2007, Andre Tann wrote:
Klar, auch das könnte man wieder umgehen. Aber trotzdem muß es doch einem Skript möglich sein, root-Rechte abzugeben und als ein anderer User weiterzulaufen.
Nicht so, wie Du Dir das vorstellst, aber man kann Dein Beispiel anpassen: su -c anderesskript andereruser funktioniert natürlich, und statt "anderesskript" kannst Du auch "Dich selber" wieder aufrufen, aber a) entweder mit einem Parameter oder b) mit einer Abfrage, welcher User Du bist, um dann die entsprechende Aktion als User auszuführen. Vorschlag: #!/bin/sh if [ "$1" == "holemail" ]; then fetchmail ... exit 0 fi ... su -c "$0 holemail" andereruser ... Ciao, / / .o. /--/ ..o / / ANS ooo
Hallo, Am Don, 08 Mär 2007, Andre Tann schrieb:
Ich würde gerne ein Skript, welches in cron.weekly liegt und folglich von root ausgeführt wird, unter anderem Namen ausführen.
Folgendes geht aus der Konsole heraus gestartet nicht:
#!/bin/bash su andereruser whoami [...Restskript...]
Denn su bringt mir eine Shell des anderen Users, und erst wenn ich die beende, wird whoami ausgeführt, dann natürlich wieder mit dem Ergebnis "root".
Das Script in cron.weekly muss für den Zieluser lesbar sein (ggfs. auch ausführbar, kommt auch auf cron an). Und schreibe das script so um: ==== #!/bin/bash if test `id -u` = 0; then sudo -u ZIELUSER bash "$0" "$@" ### ODER: # su ZIELUSER -c "$0" "$@" exit $? fi # Rest vom script: echo "Running rest of script as: "; id -un ==== Es kann sein, dass das script nicht gefunden wird (ich weiss nicht, wie cron die scripte aufruft, zur Not kann man statt $0 dann eben den Scriptnamen verwenden. -dnh -- Q: What do you call it when you really *do* get different results every time you do the same thing? A: Windows -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Servus David und Hans, David Haller, Donnerstag, 8. März 2007 18:22:
Das Script in cron.weekly muss für den Zieluser lesbar sein (ggfs. auch ausführbar, kommt auch auf cron an).
Und schreibe das script so um: [...]
Also derselbe Gedanke wie Hans ihn hatte. OK, so kriege ich das umgesetzt. Danke und Gruß. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (6)
-
Andre Tann
-
Burkhard Schichtel
-
Christian Pelz
-
David Haller
-
Hans Meine
-
Markus Heinze