[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: