wrapper-skript

28/10/2008 - 12:23 von Jakobus Schuerz | Report spam
Hi!

Weil es mir immer noch nicht ganz klar ist, schildere ich noch einmal
mein Problem und hoffe dass ihr mir helfen könnt.

Ich habe einen ganzen Satz an Skripten geschrieben, welche aber alle
unter einem einzigen User laufen sollen, egal wer sie startet.

Die grunsàtzliche Abfolge ist so:
Verschiedene Mitarbeiter laden Files über ein Webinterface auf den
Server. (Kann das leider nicht mit scp oder àhnlichem Lösen, da die
Restriktionen dieser Firma sehr streng bis paranoid ausgelegt sind. Die
Daten müssen aber zu mir auf den Server -> Webinterface, uploader mit
php realisiert).

Mittels incrond überwache ich das upload-Verzeichnis auf neu
eingetroffene Files.
Dazu hab ich ein Skript geschrieben, welches mir als root sofort den
Besitzer und die Gruppe àndert und die Dateirechte auf nicht ausführbar.
Dann kopiert dieses Skript das Uploadfile in ein Verzeichnis
"Quarantaene" und prüft ob es ein tgz, zip oder rar-File ist und packt
es ggfs. aus.
Dann prüft das Skript, ob die ausgepackten Daten auch der Konvention
entsprechen. (Zwei Files mit Messergebnissen und ein Log-File welche
ausgepackt in einem Unterverzeichnis landen). Entspricht es nicht,
werden die Daten in ein Verzeichnis mit nur Leserecht verschoben und ich
bekomm ein Mail zugesendet, damit ich mir ansehen kann, was da los ist.
Das Skript, welches als root ausgeführt wird, ist damit zuende. Weiter
geht es als "normaler" User.
Soweit so gut. Das funktioniert auch prima.

Jetzt kommt der Schritt, wo es bei mir hapert.
Es sind ca 20 Skripte, welche die Messdaten verarbeiten. Diese Skripte
schreiben Ergebnis-Files, Logfiles usw. und diese Files landen in
verschiedenen Verzeichnissen, die z.T. neu angelegt werden, und müssen
zu Textfiles etwas dazuschreiben.
Und am allereinfachsten wàr es, wenn sàmtliche Auswertungen (die z.T.
auch von Hand angestoßen werden) immer vom selben Benutzer durchgeführt
würden, denn dann gibt es keine Probleme mit Dateirechten. Sobald einmal
- und sei es nur irrtümlich - die Skripte als anderer User ausgeführt
werden, kann der manchmal nicht schreiben, oder lesen, oder ausführen,
und die Skripte hakeln.

Der gesamte Skriptsatz wird durch zwei verschiedene Startskripte
ausgelöst. Eines für automatische Auswertungen, oder eines für manuelle
Auswertungen (Das für automatische Auswertungen verwendet intern das für
manuelle Auswertungen)

Wenn ich jetzt jeweils ein Wrapper-Skript für die beiden Startskripte
schreibe, welche nicht viel mehr beinhalten als:
sudo -u auswertungsuserid startskript1
bzw.
sudo -u auswertungsuserid startskript2

dann werde ich nach dem Passwort für "auswertungsuserid" gefragt. Und
das möchte ich aber vermeiden.

Für die automatische Auswertung starte ich das Startskript über einen
incronjob als auswertungsuser. Das ist somit kein Problem.

Es soll noch die Möglichkeit dazukommen, über das Webinterface auch
spezielle Auswertungen anzustoßen. Das bedeutet aber, dass der User
www-data damit die Auswertungen anstoßen müsste, und damit kann ich das
Passwort gar nicht abfragen...

Ich hoffe, ich hab mein Problem halbwegs verstàndlich darlegen können.
Wenn jemand eine gute Idee hat, bin ich sehr sehr dankbar!

lg jakob
The UNIX way of Sex:
gunzip-strip-touch-finger-mount-fsck-more-yes-umount-sleep
 

Lesen sie die antworten

#1 Sascha Hüdepohl
28/10/2008 - 13:12 | Warnen spam
Jakobus Schuerz schrieb:

Wenn ich jetzt jeweils ein Wrapper-Skript für die beiden Startskripte
schreibe, welche nicht viel mehr beinhalten als:
sudo -u auswertungsuserid startskript1
bzw.
sudo -u auswertungsuserid startskript2

dann werde ich nach dem Passwort für "auswertungsuserid" gefragt. Und
das möchte ich aber vermeiden.



sudo làßt sich so einrichten, daß bestimmte Befehle ohne Passwort
abfage ausgeführt werden können.

Beispiel:

,-[ /etc/sudoers ]
|
| # Cmnd alias specification
| Cmnd_Alias QUOTA = /usr/bin/quota -v [A-z]*
|
| www-data SERVER=(OP) NOPASSWD:QUOTA
|
`-


So darf der httpd den Befehl /usr/bin/quota ausführen.

HTH
Sascha

Ähnliche fragen