Execution script bash depuis utilisateur lambda

Bonjour,

J’ai développé un script qui nécessite les droits du compte root pour pouvoir parfaitement être exécuté (accès a des répertoires spéciaux etc.)

Comment pourrais le rendre exécutable pour un utilisateur lambda qui n’a pas ces droits ?

Merci

En dehors d’utiliser “sudo”, je ne vois aucune autre possibilité.

Certaines commandes système nécessite les droits root pour être executée, comme ping, su, crontab, etc …

Il est tout a fait possible de faire de même avec un script, mais c’est à mon avis très dangeureux (si un user peut modifier ce script, il se retrouvera root).

Sans te donner te réponse toute faîte, regarde du côté des permissions étendu (SUID/SGID, sticky bit).
Dans ton cas, le SUID est une solution … dangeureuse.

regarde la:
tofe.org/suid.php3

Comme l’a dit ricardo, sudo est pratiquement la seule solution qui répond à ton besoin en embarquant un sécurité digne de ce nom.

@+

Merci à vous !

EDIT
Au lieu d’éditer mon premier post, je vais le reformuler, pour que ce soit plus clair:

Il existe 2 façons (peut-être plus) d’exécuter un script avec les droits roots.
La première consiste à utiliser sudo. Cette méthode répond sans problème à la problématique et est sécurisé.

La deuxième quant à elle (droit étendu SUID/SGID), est utilisée la plupart du temps de façon inadéquate. La taire ne sert à rien, il faut savoir qu’elle existe, mais qu’elle est dangeureuse et donc à proscrire.

Au cas ou tu n’aurais pas envie de lire tout le lien, le point important concernant les SUID:
[…] Leçon Sept – Ne pas utiliser les shell scripts.
Même aprés tout notre travail; il est quasiment impossible de créer des shell scripts sécurisés. (C’est impossible sur la plupart des systèmes) . A cause de cela certain systèmes (par exemple Linux) n’autorisent pas le SUID pour les shell scripts. Si vous avez besoin de la fonctionalité des SUID, il y à trois possibilités plus sécurisées. Un wrapper écrit en C, un Perl script, ou l’utilisation d’un programme comme sudo. Si vous débutez en programmation sécurisée, je vous recommande sudo ou un Perl script. Les Perl scripts SUID ont une protections incorporée afin d’éviter les erreurs décrites dans cet article. Pour plus d’informations sur la programmation sécurisée des programmes SUID, Voyez le livre Practical UNIX & Internet Security (O’Reilly & Associates), ou le site: seclab.cs.ucdavis.edu/~bishop/ \ secprog.html.

[quote=“Harty_Show”]Certaines commandes système nécessite les droits root pour être executée, comme ping, su, crontab, etc …
Il est tout a fait possible de faire de même avec un script[/quote]
Pas sous Linux qui ne tient pas compte du bit SUID sur les scripts, comme la documentation que tu cites le rappelle.

Le même problème se pose avec un binaire exécutable, donc ce n’est pas une raison suffisante.

J’ai fait le test, car dans la doc, il est stipulé qu’il “n’autorise pas”, j’en avais donc conclus qu’il était impossible de positionner les droits.
Le système autorise le positionnement du SUID, mais comme tu le dis, ne le prend pas en compte lors de l’execution.