ggbce Posté(e) le 13 février 2007 Partager Posté(e) le 13 février 2007 Je suis entrain d'écrire un petit script en bash qui me permet facilement de sélectionner l'interface réseau (eth0) ou sans-fil (wlan0) et si le wlan0 est choisit, de choisir dans une liste pré-définie le réseau SSID à me connecter. On sait pour pour changer la configuration que l'on doit faire un redémarrage du service networking, dhclient et des ifconfig. Pour faire fonctionner mon petit script bash en étant root ça fonctionne super bien !!! Mais lorsque je suis avec un utilisateur standard ça ne fonctionne pas... faute de droits non accordés. J'ai essayé d'ajouter certaines actions dans /etc/sudoers à mes usagers, mais je me rends compte que la liste risque d'être assez longue et qu'encore là le processus d'arrêt de la carte sans-fil ne semble pas vouloir se faire. Mon script fait ceci: 1- sélection de etho ou wlan0 Si c'est eth0: A- Copie du fichier /etc/network/interfaces.eth0 vers /etc/network/interfaces B- ifconfig wlan0 down, ifconfig eth0 up et dhclient eth0 Si c'est wlan0: A- Sélection du réseau SSID B- Copie du fichier /etc/network/interfaces.SSIDchoisit vers /etc/network/interfaces C- ifconfig eth0 down, ifconfig wlan0 up D- /etc/init.d/networking restart ---------------------------------------------- Avez-vous une suggestion qui me permettrait un fonctionnement sans droit particulié ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 14 février 2007 Partager Posté(e) le 14 février 2007 tu l'own par root et tu le suid chown root monscript chmod a+x monscript chmod +s monscript Lien vers le commentaire Partager sur d’autres sites More sharing options...
zoto Posté(e) le 14 février 2007 Partager Posté(e) le 14 février 2007 Salut Sinon il y a ça : http://www.gnome.org/projects/NetworkManager/ Il existe aussi une version pour kde . a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 14 février 2007 Auteur Partager Posté(e) le 14 février 2007 Ça peut pas marcher Lorinc, et c'était bien évident que le script était exécutable pour l'usager en question également. Mais le script exécute des commandes non-permises par un utilisateur standard (comme ifconfig, redémarrage d'un service, écrasement d'un fichier système, etc.) donc le script en lui-même s'exécute... mais pas son contenu. Je cherche donc d'une certaine manière une façon que lorsque le script s'exécute, que cette action (et ses sous-actions) soit réalisé par root (0). Si je pouvais faire un su - + mot de passe pré-enregistré de manière sécuritaire quie se tape tout seul afin que le tout s'exécute ça serait super. J'ai essayé d'ajouter l'utilisateur dans /etc/sudoers pour les programmes à exécuter, maisuand pour la commande /etc/init.d/networking, le problème que j'avais était durant son exécution. Pour redémarrer, le service doit faire appel aux I/O des interfaces réseaux... et j'obtiens une erreur "IOSCIOxxx qqchose du genre" mais en root pas de problème. ---------------- C'est quoi votre méthode vous pour autoriser vos télé-travailleurs (portable) à sélectionner les réseaux SSID sans donner de mots de passe root à ces usagers ? ----------------- Zoto, le gestionnaire réseau de Gnome ou KDE exige de taper le mot de passe root pour faire ces modifications. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 14 février 2007 Partager Posté(e) le 14 février 2007 bah, je maintiens qu'un suid... tu te fais un petit programme comme ça : #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int main(int argc, char ** argv) { char * eth = "eth"; const char * wlan = "wlan"; if(argc != 2) { printf("usage : netconfig [eth|wlan]\n"); exit(0); } if(strncmp(argv[1], eth,strlen(eth) ) == 0 && strlen(argv[1]) == 3) { printf("switching to ethernet...\n"); // ensemble de commandes } else if(strncmp(argv[1], wlan, strlen(wlan)) == 0 && strlen(argv[1]) == 4) { printf("switching to wifi...\n"); //ensemble de commandes } else { printf("usage : netconfig [eth|wlan]\n"); } return 0; } tu le suid root, et il ne te reste plus qu'a écrire la copie de fichiers, etc, etc... Lien vers le commentaire Partager sur d’autres sites More sharing options...
saintshakajin Posté(e) le 14 février 2007 Partager Posté(e) le 14 février 2007 ggbce, pas nécessairement, il suffit de te mettre dans le groupe plugdev et c'est bon, plus besoin de tapper un mot de passe root avec NetworkManager (d'ailleurs c'est son but). Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 14 février 2007 Auteur Partager Posté(e) le 14 février 2007 Merci du renseignement ! Je vais combiner un peu de toutes vos réponses ensemble qui va surement me donner un résultat foncitonnel Lien vers le commentaire Partager sur d’autres sites More sharing options...
lapin_de_troie Posté(e) le 16 février 2007 Partager Posté(e) le 16 février 2007 deux trucs : ça dépend de ta distrib : - sous ubuntu tu peux modifier le fichier sudoers par visudo pour qu'il autorise certaines commandes sans demander de mot de passe - sous archlinux il y a un groupe il me semble pour que l'utilisateur puisse gérer les interface réseau Sinon il y a aussi networkManager, testé sous Gnome avec beaucoup d'intérêt, notamment pour les réseaux Wifi. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.