Zmena real GID programu (shellu)
Pavel Kankovsky
peak na kerberos.troja.mff.cuni.cz
Pondělí Říjen 6 20:18:37 CEST 1997
aha... uz je cas, aby vam to nekdo vysvetlil :)
opravneni procesu (credentials) se skladaji (v Linuxu) z nasledujiciho:
skutecny vlastnik (uid), efektivni vlastnik (euid), "uschovany vlastnik"
(saved uid, suid), vlastnik pro ucely pristupu k filesystemu (fsuid), totez
ctyrmo pro skupinu (gid, egid, sgid, fsgid) a navic "pomocne skupiny"
(supplemental group ids)
zacnu od prostredka :)
fsuid/fsgid je specialita Linuxu, kterou pouzivaji (udajne) ruzne NFS
servery a podobne potvory, aby mely jednodussi zivot; nastavuji se
volanim setfsuid() a setfsgid(); normalne jejich hodnota kopiruje
euid a egid
uid,euid/gid,egid maji ocekavanou unixovou semantiku, suid/sgid je pro SysV
kompatibilitu--ovlivnuji volani setuid() a setgid(), pro BSD kompatibilitu
jsou zde volani setreuid() a setregid(); vsechna maji spolecne to, ze
volajici bud musi byt root (euid==0) nebo musi byt nastavovany uid/gid
uz nekde nastaveny
"pomocne skupiny" jsou prakticky nemenne--daji se ovlivnovat pouze
volanim setgroups(), ktere muze delat pouze root a typicky ho provadi
login nebo su - a pouzivaji se pouze pro pristup k filesystemu
zaver: newgrp setuid potrebuje, protoze jinak by nebyl schopen obecne
zmenit skupinu volanim setgid() (nebo setregid(), ja nevim, co presne dela)
ovsem obcas je jednodussi si k tomuto ucelu udelat maly setgid program
(je-li ta skupina v supplemental groups), ktery execne shell
--Pavel Kankovsky aka Peak (troja.mff.cuni.cz network administration)
Další informace o konferenci Linux