Eric.Santonacci@??? wrote:
>
> Le jeu, 13 jan 2000, vous avez écrit :
> > > J'ai en revanche toujours un petit pb avec un script bash de mon crû,
> > > qui doit détruire et recréer des liens sur des fichiers en étant root...
> > > Je ai mis mon script (appartenant à root) en set-uid,
> > > mais si je l'exécute depuis un utilisateur quelconque,
> > > j'ai des erreurs de permissions...
> > > comment faire ?
> >
> > Pour des raisons de sécurité, un script ne peut pas être suid-root
> > (sinon, s'il plante, il laisse à l'utilisateur un shell avec les droits
> > root)
>
> Les scripts Perl sont une exception je crois.
>
J'ai ecrit un certain nombre de scripts en suid (en Bourne-Shell) sans
avoir de problemes d'executuion : il suffit de verifier que le disque
su lequel sont stockes les scripts est autorise pour les scripts suid :
tu lances la command 'mount', et tu regardes si le disque a un parametre
a 'setuid' ou a 'nosuid'
C'est effectivement tres dangereux d'ecrire des scripts suid pour
root...
Le danger ne vient pas seulement d'une interruption, mais egalement
tout ce qui recupere des information 'a l'exterieur' du script (par
exemple
en lancant une commande) !
Les scripts perl ne different pas des scripts en shell quant a
l'autorisation
ou pas d'etre lances (d'ailleurs, on encapsule souvent le perl dans
un script sh pour eviter les problemes de longueur de path apres #!).
Par contre, Perl possede un mecanisme interne de verification
d'entachement
des variables tres bien fait, qui refuse d'excuter un script s'il
n'est pas "sûr" au sens de Perl. Ainsi, ecrire des scripts suid en Perl
est bien plus securisant que d'utiliser du shell ou du C...
Sebastien