Re: Shell-Script suid [était: pon quick]
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
Reply to: