S'il s'agissait d'un binaire normal, vous pouvez définir setuid en exécutant
# chmod u+s /path/to/binary
Malheureusement, les scripts ne peuvent pas être configurés. (Eh bien, vous pouvez, mais c'est ignoré). La raison en est que la première ligne du script indique au système d'exploitation sous quel interpréteur exécuter le script. Par exemple, si vous aviez un script avec:
#!/bin/bash
Vous finiriez par courir
/bin/bash /path/to/script
Évidemment, vous auriez besoin que l'interpréteur soit setuid, ce qui signifierait alors que tous les scripts seraient setuid. Ce serait mauvais.
Vous pouvez le faire avec sudo en mettant ce qui suit dans votre fichier / etc / sudoers en exécutant visudo.
ALL ALL=NOPASSWD: /path/to/script
Et maintenant, tout utilisateur peut exécuter
$ sudo /path/to/script
Cela leur permet d'exécuter le script sans taper leur mot de passe.
Il existe une alternative qui ne nécessite pas sudo dans la commande, qui nécessite la création d'un petit binaire setuided qui exécute votre script, mais chaque binaire setuid supplémentaire ajoute un autre problème de sécurité potentiel.