Die Einstellungsfunktion für das Skript ist nicht wirksam. Es ist die ähnliche Situation, als würde man nicht setuid
am Skript arbeiten. Ähnlich wie im letzteren Fall handelt es sich um die Implementierung des execve
Umgangs mit Shebang und die dahinter stehenden Sicherheitsgründe (Details siehe: Setuid für Shell-Skripte zulassen ).
Ich denke, Sie haben diese Möglichkeiten
Stellen Sie die Funktionen auf dem Interpreter selbst ein (eigentlich eher eine Kopie davon).
- Sie haben hier das Problem, dass jeder, der es ausführen kann, mit diesen erhöhten Funktionen ausgeführt wird (in der Lage sein, ein beliebiges Skript auszuführen oder es interaktiv zu starten).
Schreiben Sie eine ausführbare Wrapper-Datei mit einer fest codierten Logik zum Ausführen Ihres Skripts und legen Sie die gewünschten Funktionen für diese ausführbare Datei fest
- Stellen Sie sicher, dass niemand das Skript ändern oder entfernen / ersetzen kann
- nach wie vor , indem Sie
chroot
eine solche Wrapper könnte mißbrauchen
In beiden Fällen müssten Sie sicherstellen, dass die festgelegten Funktionen überleben, execve
indem Sie das inheritable
Flag setzen. Sie können pam_cap
Distributed with auch verwenden libcap
, um die gewünschten Funktionen durch Konfiguration nur für ausgewählte Benutzer zu aktivieren.
Und im Allgemeinen möchten Sie sicherstellen, dass niemand das Verhalten Ihres Dolmetschers ändern kann, indem Sie die Umgebung ändern, z. PYTHON_PATH
oder etwas ähnliches.