OVH Cloud OVH Cloud

Problèmes avec le bit SUID

1 réponse
Avatar
Thomas Baruchel
Bonjour,

je n'ai jamais vraiment joué avec le bit suid auparavant, mais ayant
installé un système Unix sur le portable de ma femme (à la place de
Windows), j'ai cherché à lui rendre les choses les plus simples
possibles, d'où mon intérêt récent pour le bit suid.

J'ai écrit un shell script effectuant quelques opérations liées au
matériel que seul root peut faire. Le propriétaire du script est root ;
son groupe est 'operator' (le groupe qui me semble le plus adéquat
sous FreeBSD) ; le groupe a des droits en exécution (pas de problème
de ce côté, elle peut exécuter le script) ; le bit suid est mis.
Mais manifestement le script est exécuté sous son UID à elle.
Les accès au matériel provoquent l'affichage d'erreurs de permissions
(pas le droit de faire ceci ou cela). Ai-je oublié quelque chose ?

Je peux évidemment donner un exemple plus détaillé, mais je ne crois pas
que le problème soit dans le script, cependant, prenons par exemple

#!/bin/sh
true > /dev/da0

(peu importe que sous d'autres systèmes /dev/da0 ne soit pas identique ;
je cherche ici à forcer le système à détecter les partitions du
périphérique da0 dans certains cas où le périphérique est connu mais
pas les partitions --- il s'agit d'un lecteur de carte mémoire).

Je n'ai rien fait de plus que lui donner un propriétaire (root), un
groupe (operator) et le bit SUID. Quelque chose m'a-t-il échappé ?

Cordialement,

--
Thomas Baruchel

1 réponse

Avatar
Vincent Bernat
OoO En cette matinée pluvieuse du dimanche 28 août 2005, vers 10:30,
Thomas Baruchel disait:

J'ai écrit un shell script effectuant quelques opérations liées au
matériel que seul root peut faire. Le propriétaire du script est root ;
son groupe est 'operator' (le groupe qui me semble le plus adéquat
sous FreeBSD) ; le groupe a des droits en exécution (pas de problème
de ce côté, elle peut exécuter le script) ; le bit suid est mis.
Mais manifestement le script est exécuté sous son UID à elle.
Les accès au matériel provoquent l'affichage d'erreurs de permissions
(pas le droit de faire ceci ou cela). Ai-je oublié quelque chose ?


Sous FreeBSD, comme sous beaucoup d'autres Unix, il n'est pas
possible, pour des raisons de sécurité, de placer un script
suid. Utilise plutôt sudo (ou calife).
--
panic ("No CPUs found. System halted.n");
2.4.3 linux/arch/parisc/kernel/setup.c