Patrick wrote:

> On Thu, Mar 29, 2001 at 05:52:18PM +0200, Edouard G. Parmelan took time to 
> write:
> > Visiblement, le caract�re suid/guid des Shell-Script est ignor�.
> > Comme ce n'est pas le noyau, c'est un probl�me avec le shell sh.
> 
> Ce n'est pas un probl�me, c'est tout � fait intentionnel, et c'est
> bien le noyau qui fait cela.

Je savais que NCR MP-RAS le faisait, mais je ne savais pas pour Linux.

Et effectiement, en regardant mieux les sources de exec.c et de
binfmt_script.c, je vois maintenant o� c'est fait, mais c'est un peu
masqu�:

dans fs/exec.c:

do_execve()
  prepare_binprm() [ e_uid initialis� � current->euid puis e_uid chang� si SUID 
]
  search_binary_handler() [ trouve binfmt_script.c do_load_script() ]

dans fs/binfmt_script.c:

do_load_script()
  extrait l'interpr�teur
  prepare_binprm() [ donc e_uid sera initialis� avec les droits de 
l'interpr�teur ]

J'ai �t� confus� avec Perl qui peut faire du suid/guid, mais c'est un
Perl sp�cial suidperl qui est suid-root et fait ensuite le m�me travail
que le noyau.
-- 
Edouard G. Parmelan
http://egp.free.fr


Répondre à