Rozdil mezi pravy 711 a 701
Michal Krause
michal na krause.cz
Pondělí Listopad 13 15:07:31 CET 2000
On 13/11/2000, Martin Mačok wrote:
> > 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;
> > }
>
> Problem je v tom, ze takto po zavolani setgid pod rootem zustane proces
> bezet jeste _i_ ve skupine 0, tudiz u tech prav root/root 701 spadne do
> te 0 u skupiny a tedy na vlezeno do toho adresare nema pravo. Je to
> potreba osetrit tak, aby v te skupine 0 nezustal.
Jak? (staci natuknout).
> Mam ted trochu naspech a nechci tady usit nejake chybne reseni, ale po
> kouknuti se do /proc/pid a s pomoci Pavla Machka :) to bylo vysvetleno
> a overeno ...
Kde v /proc? Jedine, kde je zjevne [ug]id je "soubor" status a v nem mam
pri tom testu opet jenom spravne hodnoty:
Uid: 500 500 500 500
Gid: 100 100 100 100
> P.S. man setfsuid a man setfsgid
Na to jsem prisel uz vcera - nepomuze to. Navic, v manualove strance se
rika, ze:
"Normally, the value of fsuid will shadow the value of the effective
user ID. In fact, whenever the effective user ID is changed, fsuid
will also be changed to new value of effective user ID."
a
"An explict call to setfsuid is usually only used by programs such as
the Linux NFS server that need to change what user ID is used for file
access without a corresponding change in the real and effective user
IDs."
A k tomu vsemu je to jeste neportabilni.
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