February 13, 200718 yr 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é ?
February 14, 200718 yr tu l'own par root et tu le suid chown root monscript chmod a+x monscript chmod +s monscript
February 14, 200718 yr Salut Sinon il y a ça : http://www.gnome.org/projects/NetworkManager/ Il existe aussi une version pour kde . a+
February 14, 200718 yr Author Ç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. Edited February 14, 200718 yr by ggbce
February 14, 200718 yr 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...
February 14, 200718 yr 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).
February 14, 200718 yr Author Merci du renseignement ! Je vais combiner un peu de toutes vos réponses ensemble qui va surement me donner un résultat foncitonnel
February 16, 200718 yr 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.
Archived
This topic is now archived and is closed to further replies.