Setuid/setgid : je n'obtiens pas les droits root

Bonjour à tous

J’ai créé le script suivant :

#!/bin/sh echo 1 > /sys/devices/platform/dock.0/undock
et ses droits sont les suivants :

Notez bien le “s” à la fois pour l’utilisateur et le groupe.

Maintenant lorsque je lance la commande suivante, en étant loggué sous “cluxter” qui ne fait pas partie du groupe “root”, voici ce que j’obtiens :

cluxter@portable-b:~/Bureau$ sh /home/cluxter/Bureau/Undock /home/cluxter/Bureau/Undock: 2: cannot create /sys/devices/platform/dock.0/undock: Permission denied

Et voici quels sont les droits du fichier “/sys/devices/platform/dock.0/undock” :

Je ne comprends pas ce qu’il se passe. Normalement le setuid/setgid devrait permettre au script de prendre l’identité de root, non ?

A noter que le script fonctionne très bien lorsque je le lance en étant loggué sous root.

Merci de votre aide !

fr.wikipedia.org/wiki/Droits_Uni … type_sushi
Apparemment, le suid fonctionne sur les binaires, mais pas sur les scripts.

En revanche, tu peux utiliser sudo…

Super, merci pour l’info !!

Je pense que ce que je vais plutôt faire, c’est modifier le groupe du fichier “/sys/devices/platform/dock.0/undock” en le mettant dans le groupe “cluxter” par exemple, comme ça j’aurai les droits pour écrire dedans sans être root, et là plus de problème.

Ou alors je crée un binaire qui se charge de faire le boulot et que je peux appeler ainsi en espace utilisateur. Mais là faudrait que je sache comment créer simplement et rapidement un binaire, et je ne sais pas…

Petite précision :

[quote]Le paquet “super” permet aux utilisateurs spécifiés d’exécuter des scripts (ou
d’autres commandes) comme s’ils étaient root ou peut changer l’identifiant
d’usager et/ou de groupe selon la commande avant de l’exécuter. Il est
destiné à être une alternative sécurisée pour écrire des scripts setuid
root.[/quote]

Donc en cas de besoin c’est faisable simplement :slightly_smiling: