Hallo liebes Forum ;-)
Ich verzweifle gerade an der Verwendung des Set-UID Bits, das funktioniert einfach nicht so, wie ich verstanden habe, dass es funktionieren sollte. Folgendes Szenario:
vps@debian:~/bin$ chmod 4755 *
vps@debian:~/bin$ ls -la
total 16
drwxr-xr-x 2 vps vps 4096 2007-03-07 23:06 .
drwxr-xr-x 8 vps vps 4096 2007-03-07 23:06 ..
-rwsr-xr-x 1 vps vps 840 2007-03-07 22:50 post-update
-rwsr-xr-x 1 vps vps 283 2007-03-07 23:06 pre-update
Der User vps hat also zwei Scripte, die *jeder* User auf dem System ausführen können dürfen soll, und zwar unter der Userkennung des Users vps. Die Scripte sind im Prinzip sehr simpel, exemplarisch hier ein Teil von pre-update:
#!/bin/bash
whoami
rm -rf /home/vps/tmp/*
Rufe ich das Script nun jedoch als entsprechender anderer User auf, passiert nur folgendes:
driehle@debian:/home/vps/bin$ ./pre-update
driehle
rm: cannot lstat `/home/vps/tmp/*': Permission denied
Führe ich das Script direkt als User vps aus, so klappt alles problemlos. Es liegt also irgendwie daran, dass Set-UID nicht funktioniert, was vermutlich daran liegt, dass ich irgendetwas falsch mache ;-)
Woran liegt es also, dass der effektiv das Script ausführende User nicht vps ist? Bei Programmen wie passwd funktioniert das doch auch, und die Rechte für mein Script sind genauso gesetzt wie die Rechte für passwd.
Viele Grüße,
~ Dennis.