shell scripte und s bit

Post Reply
Message
Author
imagine
Posts: 74
Joined: 19. Nov 2000 13:57

shell scripte und s bit

#1 Post by imagine »

hi
wenn ich jetzt ein shell script habe und mochte, dass bei einem aufruf durch jemanden aus der gruppe users ausgefuehrt wird, als wuerde root es ausfuehren(ohne editiermoeglichkeit des scriptes natuerlich)
muss ich dann das s bit wo setzen??
-rwxr-sr-x 1 root users funktioniert auf jeden fall nicht... wie mache ich es dann
joerg

Jochen

Re: shell scripte und s bit

#2 Post by Jochen »

Das ist kein Bug, sondern ein Feature.

Erstmal zur "Syntax": Wenn die Identität des Users wechseln soll, musst Du das Set-User-ID-Bit setzen:<pre>chmod u+s myexecutable</pre>
Oben hast Du das Set-Group-ID-Bit gesetzt, damit hätte (prinzipiell) jeder das Programm als Angehöriger der Gruppe "Users" ausführen dürfen, auch wenn er sonst gar nicht in der Gruppe vertreten ist.

Und jetzt die Semantik: SUID/SGID-Bits auf Shellskripten funktionieren nicht. Und das ist sehr gut so! Es ist sehr schwierig (bis unmöglich), Shellskripte so hinzubügeln, dass sie wirklich nicht durch Anwender überlistet werden können. Daher hat man irgendwann mal in die Shells eingebaut, dass die S[UG]ID-Bits nicht mehr beachtet werden. Nur auf ganz alten UNIX-Varianten findet man noch mal unsichere Shells.

Wenn <i>wirklich</i> nix anderes möglich ist, kann man ein einfaches C-Programm als Wrapper schreiben, der nix anderes macht als das Skript zu starten. Aber mein Tip ist ganz klar - lass es sein.

Post Reply