Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/12/2007, à 18:23

romano.07

[Résolu] problème avec setuid

Bonjour,

Afin de permettre à  tout les utilisateurs de mon pc de relancer les services réseau, j'ai fait le script restart_reseau.sh ci dessous :

echo redemarrage \du réseau :
/etc/init.d/networking restart
echo resultat : $?

Comme il faut etre root pour executer networking, j'ai rajouté le droit setuid au script, qui appartient à  root :

romain@rom-desk:~/Desktop$ ls -l
-rwsrwsrwx 1 root   root       502 2007-12-05 17:50 restart_reseau.sh

Par contre, je ne comprends pas trop pourquoi ca ne fonctionne pas :
Si je lance le script avec l'utilisateur root, ca fonctionne :

root@rom-desk:~/Desktop$ ./restart_reseau.sh
redemarrage du réseau :
 * Reconfiguring network interfaces...                                                                                       * Stopping the Firestarter firewall...
   ...done.
...etc.....
 * Starting the Firestarter firewall...
   ...done.
                                                                                                                     [ OK ]
resultat : 0

mais si je le lance sous un autre utilisateur, il me dit qu'il n'a pas les droits, comme si le setuid n'était pas pris en compte :

romain@rom-desk:~/Desktop$ ./restart_reseau.sh 
redemarrage du réseau :
open: Permission denied
 * Reconfiguring network interfaces...                                                                                      ifdown: failed to open statefile /var/run/network/ifstate: Permission denied
ifup: failed to open statefile /var/run/network/ifstate: Permission denied
open: Permission denied
                                                                                                                     [fail]
resultat : 0

Je ne comprends pas trop pourquoi mon script ne se lance pas en root. Est que quelqu'un aurait une idée?

Question subsidiaire, pourquoi est ce que le $? me retourne un code 0 dans le second cas, alors qu'on a une erreur d'authentification?

Merci!

Romain

Dernière modification par romano.07 (Le 06/12/2007, à 18:19)

Hors ligne

#2 Le 05/12/2007, à 18:33

figaro

Re : [Résolu] problème avec setuid

Qu'est-ce que  tu veux dire par "j'ai rajouté le droit setuid au script" ?


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne

#3 Le 05/12/2007, à 18:43

romano.07

Re : [Résolu] problème avec setuid

J'ai fais :

sudo chmod +s restart_reseau.sh

Hors ligne

#4 Le 05/12/2007, à 19:27

figaro

Re : [Résolu] problème avec setuid

Oui mais là  tu as mis le setuid sur ton script pas sur le script networking qui donc ne s'exécute pas puisque tu n'es pas root. sad CQFD.

Dernière modification par figaro (Le 05/12/2007, à 19:30)


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne

#5 Le 06/12/2007, à 18:14

romano.07

Re : [Résolu] problème avec setuid

En fait c'est un peu plus compliquer que ca! ca ne marche pas non plus en mettant le setuid sur le script networking. En recherchant un peu plus sur internet, j'ai compris pourquoi : le setuid est ignoré lorsque l'executable est un script, à  priori pour des raisons de sécurité. C'est par exemple expliqué sur un autre forum :
http://www.candiulb.be/forum/index.php?showtopic=26995

Par contre le setuid fonctionne bien sur les binaires executables (comme par exemple un programme c compilé).

Hors ligne

#6 Le 06/12/2007, à 18:41

figaro

Re : [Résolu] problème avec setuid

Plus que prudents les gars du kernel !  smile

Il faut dire qu'il ne m'est jamais venu à  l'idée de mettre un setuid sur un script.

Dernière modification par figaro (Le 06/12/2007, à 18:42)


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne