Su in einem Shellscript

Moin,

ich wundere mich gerade wie ich einem Shell-Skript vorübergehend beibringen kann, als ein anderer user zu agieren.

Es klappt wunderprächtig, ftp damit zu automatisieren:

ftp -ni host.domain.de 

Mit einem einfachen "su $user" funktioniert das aber nicht und ich habe bis jetzt auch nichts Passendes finden können, was das dafür leistet. Wie würde man das dann bewerkstelligen?

Man könnte sicher auch den Weg über passende Rechteeinstellungen über die Gruppenzugehörigkeit gehen... oder ich installiere mir sudo.

Beste Grüße,
Ingo

Mit einem einfachen „su $user“ funktioniert das aber nicht und
ich habe bis jetzt auch nichts Passendes finden können, was
das dafür leistet. Wie würde man das dann bewerkstelligen?

Wie du schon gesagt hast, per sudo oder passenden Rechten. su an sich hat keine eigene Abfrage für das Passwort sondern lässt die Eingabe von einer externen Lib machen, die direkt auf der Konsole arbeitet. Dadurch funktioniert ein einfaches Rumspielen an stdin nicht.

danke.
Moin,

Wie du schon gesagt hast, per sudo oder passenden Rechten. su
an sich hat keine eigene Abfrage für das Passwort sondern
lässt die Eingabe von einer externen Lib machen, die direkt
auf der Konsole arbeitet. Dadurch funktioniert ein einfaches
Rumspielen an stdin nicht.

Schade. Aber dann muß ich wohl tatsächlich eine der beiden anderen Möglichkeiten wählen… hmpf.

Gruß,
Ingo

Hallo,

ich wundere mich gerade wie ich einem Shell-Skript
vorübergehend beibringen kann, als ein anderer user zu
agieren

Mit einem einfachen „su $user“ funktioniert das aber nicht und
ich habe bis jetzt auch nichts Passendes finden können, was
das dafür leistet. Wie würde man das dann bewerkstelligen?

Man könnte sowas mit „expect“ machen. Das halte ich aber für eher schlechten Stil.

oder ich installiere mir sudo.

Das wäre auch mein Rat.

Gruß,

Sebastian

Hallo alle zusammen,
an den Artikel von Ingo würde ich mich gerne „dranhängen“, da ich nach einer komfortablen Lösung suche wie
‚apt‘ (unter SuSE) mit den Parametern ‚update‘ und ‚upgrade‘ sinnvoll in ein Shellscript gepackt wird und bei
Aufruf als normaler User automatisch eine „ROOT“-Abfrage mittels ‚su‘ durchführt. Problem hierbei ist, daß ‚su‘
offensichtlich eine Shell in der Shell öffnet und somit alle weiteren Programmaufrufe erst NACH Beendigung der
Root-Shell fortsetzt. Was leider nicht in meinem Sinne ist :wink: da ja alle ‚apt‘-Aufrufe als ‚root‘ erfolgen
sollen. Andererseits möchte ich das Shellskript nicht mit suid-Bit als ‚root‘ versehen. Gibt es nicht
vielleicht doch eine Möglichkeit der Übergabe der Programmaufrufe in die Root-Shell, die dann über ‚exit‘
wieder beendet wird?
Gruß Andreas