root a suid root

Martin MaD Douda martin na douda.net
Pátek Srpen 4 07:44:42 CEST 2000


V tomhle pripade se suid vubec neprojevi, takze se budete muset
kouknout na permissions.

Kouknete se do zdrojaku kernelu: fs/exec.c, funkce prepare_binprm().
Ten to vyhodnocuje pri execu takhle:

if (mode & S_ISUID) {
  bprm->e_uid = inode->i_uid; //Tady se suiduje
  if (bprm_e_uid != current->e_uid) //podminka tade NENI splnena
    id_change=1; //takze NEDOCHAZI ke zmene uid




				Martin



P.S.: Tato zprava obsahuje kod sireny pod GNU/GPL a tedy sama muze byt
sirena pod GNU/GPL :-)




On Fri, 4 Aug 2000, xmail listy wrote:

> Mam dotaz:
> 
> kdyz uzivatel root spusti program SUID root, dá se to zjistit?
> jde mi o to jestli program zjisti ze je SUID, kdyz ho spusti uzivatel, na ktery to ma byt suidnuto. samozrejme to muzu zjisti podle permisions toho souboru jestli je SUID, ale ja se ptam jestli se to da zjistit z UID, EUID, ... (proste bez filesystem operaci)
> UID i EUID bude prece 0 - takze nevim jestli se to da jistit.
> 
> ten program, o ktere mluvim pisu v C.

--------------------------------------------------------------------------------
                        Martin "MaD" Douda
WEB:http://martin.douda.net/                 EMAIL:martin na douda.net
SMS:mad na gate.mobil.cz (up to 160 characters) PHONE:+420603752779
PGP:ID=0x6FE43023 Fingerprint:E495 11DA EF6E 0DD6 965A 54F3 888E CC9E 6FE4 3023
--------------------------------------------------------------------------------
A bug in the code is worth two in the documentation.



Další informace o konferenci Linux