Michael Schröpl: (FORUM) gute Nachricht schlechte Nachricht und Frage

Beitrag lesen

wenn ich das richtig verstehe, müssen die Skripte, mit denen die Datenbank aktualisiert werden soll unter root laufen? Warum können die dann nicht einfach unter suidperl laufen (also erste Zeile im Skript: #!/usr/bin/suidperl ...)? Wenn der Dateieigentümer der Skripte 'root' ist und das 's-Bit' mit chmod +s datei.pl gesetzt ist, können diese Skripte dann von jedem user gestartet werden und laufen mit root-Rechten.
Oder war das jetzt zu einfach gedacht?

Ich fürchte, dieser Teil des Problems könnte plattformspezifisch sein. Die Frage ist letztlich, wer im Betriebssystem das s-Bit wie auswertet.

Bei einem Programm (binary) ist es einfach: Die Programmdatei hat das s-Bit, oder sie hat es nicht. Da kann der Programmlader nicht viel falsch machen.

Anders ist es bei einem Skript. Da hat der Lader die Möglichkeit, ein s-Bit der Skript-Datei auszuwerten - er könnte aber genauso ein s-Bit des Interpreters nehmen, der selbst ggf. ein Programm ist - oder vielleicht auch wieder ein Skript, in dem ebenfalls ein Interpreter eingetragen ist ... und so weiter.

Ich erinnere mich daran, daß in IBM AIX 3.1 (Anfang der 90er) das s-Bit bei Shell-Skripts noch funktionierte. Aber beim Wechsel auf AIX 3.2. hat der Hersteller dieses Feature ausgebaut! (Ich  glaube, weil irgendwelche Sicherheitsbedenken bestanden, gnlpfts ...)
Und ich, der ich meine gesamte Prozeß-Steuerung naiverweise mit s-Bit-shell-Skripten realisiert hatte, mußte mir ein kleines C-Programm schreiben, welches den ihm übergebenen Parameter prüft und ggf. als Kommando ausführt - denn ein C-Programm darf natürlich weiterhin ein s-Bit haben ...

Nicht, daß ich irgend eine Ahnung von mSQL hätte und deshalb abschätzen könnte, wo das Problem wirklich liegt.