hi I have problem with understanding setuid and setgid
in system I have following users:
$id -a marek
uid=1001(marek) gid=1001(marek) groups=1001(marek),1002(uzivatelia)
$id -a cepi
uid=1000(cepi) gid=1000(cepi) groups=1000(cepi),4(adm),20(dialout),24(cdrom),46(plugdev),104(lpadmin),115(admin),120(sambashare),123(ftp),1002(uzivatelia)
$id -a tux
uid=1002(tux) gid=1003(tux) groups=1003(tux)
1st.
I have following simple script, for which I set up suid.
#!/bin/bash
if [ "$(id -u)" != "1001" ]; then
echo "This script must be run as marek" 1>&2
#exit 1
fi
ls -l /home/marek
echo $EUID
chmod u+s /tmp/setuid_script.sh
$ ls -l /tmp/setuid_script.sh
-rwSr-xr-x 1 marek marek 227 2010-03-19 20:58 /tmp/setuid_script.sh
Please consider following rights on /home/marek which is called in script
(chmod 700)
$ls -l /home/
total 16
drwxr-xr-x 60 cepi cepi 4096 2010-03-19 22:32 cepi
drwx------ 2 ftp ftp 4096 2010-03-19 19:52 ftp
drwx------ 2 marek marek 4096 2010-03-19 22:35 marek
drwxr-xr-x 2 tux tux 4096 2010-03-19 23:00 tux
Now when I run script
as user tux
$ /tmp/setuid_script.sh
This script must be run as root
ls: cannot open directory /home/marek: Permission denied
1002
as user cepi
/tmp/setuid_script.sh
This script must be run as root
ls: cannot open directory /home/marek: Permission denied
1000
Why script is not running with marek's privileges and don't display contents of marek's home ?
2nd Why I am not possible to set guid for particular file ?
as marek
$chmod g+s /tmp/setuid_script.sh
$ ls -l /tmp/setuid_script.sh
-rw-r-xr-x 1 marek marek 227 2010-03-19 20:58 /tmp/setuid_script.sh
Thank you