Rozdil mezi pravy 711 a 701

Michal Krause michal na krause.cz
Pondělí Listopad 13 09:34:10 CET 2000


On 13/11/2000, Martin Mačok wrote:

> > Takze jeste jednou a srozumitelne (doufam). Mam program, ktery se
> > spousti prvotne pod rootem a po zjisteni pozadovane identity se prepne
> > na uzivatele zavolanim setgid() a setuid(), pricemz jsem zkousel i
> > setregid() a setreuid() se stejnym vysledkem. Tudiz, pokud se nemylim,
> > nemel by byt zadny *id shodny s rootem, ktery vlastni (jakozto uzivatel
> > i skupina) adresar /home. Nebo snad ano?
> 
> Nejjednoduseji si to overite tak, ze si zjistite, jaky je uid/gid
> (euid/egid) v momente, kdy leze do adresare /home v obou pripadech ...

To je prave to divne. Udelal jsem si maly programek:

int main(int argc, char **argv)
{
        setgid(100);
        setuid(500);
        if (chdir("/home/mike/test/mike") != 0)
                perror("chdir");
        printf("%d/%d %d/%d\n", getuid(), getgid(), geteuid(), getegid());
        return 0;
}

a prava jsem nastavil takto:

[root na mike projects]# ls -ld test
drwx-----x    3 root     root         1024 lis 13 09:23 test
[root na mike projects]# ls -ld test/mike/
drwxr-xr-x    2 mike     users        1024 lis 13 09:23 test/mike/

Program v tomto pripade vypise:

dir: Přístup odmítnut
500/100 500/100

Pridam-li testu exec pro skupinu, program funguje.

> [btw kolik uz jsem videl unixovych administratoru, kteri tento princip
> neznaji :) ]

Clovek se porad uci :) 

S pozdravem
--
Michal Krause                                                       /\
ICQ: 7665279            Informace (nejenom) ze sveta Linuxu      /\/  \
email: michal na krause.cz _______ http://www.root.cz/ _______ NAVRCHOLU.cz

                           Penguino  veritas


Další informace o konferenci Linux