[Macintosh] Executer des requêtes http sur un mac

Si vos signaux X10 ne passent plus. Si votre liaison 1-wire est brouillée, je vous propose cette section pour exposer vos investigations, et pour partager des solutions avec les autres membres du site.

[Macintosh] Executer des requêtes http sur un mac

Messagede Theduck38 » 04 Nov 2013, 09:28

Bonjour,

Je souhaiterais pouvoir envoyer depuis ma box Vera des requêtes http vers mon mac... pour l'instant ma problématique se limite à être capable de le mettre en veille via une commande sur mon téléphone (Homewave) donc en gros en basculant un virtual switch sur la vera.

Je ne connais pas grand chose au monde unix, je m'adresse donc aux experts dans ce domaine :)

Voilà où j'en suis :

La commande sous Mac pour mettre en veille s'écrit
- pmset sleepnow
ou
- shutdown -h now

J'ai donc créé un fichier bash sous la forme suivante :
Code: Tout sélectionner
#!/bin/bash
#dodo.cgi
echo "Content-type: text/html"
echo ""
echo "<html><head><title>Bash as CGI"
echo "</title></head><body>"
echo "<h1>Hello </h1>"
echo "Today is $(date)"
echo "<BR>"
echo "<BR>"
echo "Preparing to sleep !"
echo "<BR>"
pmset sleepnow
echo "..."
echo "</body></html>"

Je l'ai ensuite sauvé sous forme de page html dans "/Library/WebServer/CGI-Executables"...

Si je mets en route le partage web du mac, et que j'accède via le réseau local (vera) à "http://192.168.xx.xx/cgi-bin/dodo.cgi", normalement le script est exécuté.

Sauf que.... :(

La commande pmset ou shutdown doit être exécutée par un root via sudo. J'ai donc voulu modifier le fichier des sudoers pour que n'importe quel utilisateur puisse accéder à cette commande; sans succès hélas. J'ai trouvé un tutoriel sur le sujet qui indique de rajouter soit :
- %users ALL = /usr/bin/pmset
ou
- %users ALL = /sbin/shutdown
J'ai essayé pas mal de variantes du type 'monlongin' ALL = (ALL) /usr/bin/pmset ou %everyone...etc... sans arriver à lancer directement une commande de veille sans sudo... le système me renvoie toujours "NOT super-user".
Par ailleurs, je n'ai pas la moindre idée de quel utilisateur je dois configurer si la commande est lancée dans un fichier cgi via le WebServer...

J'ai aussi essayé d'appeler un autre script (situé ailleurs dans mon ordi pour des raisons évidentes de sécurité) à partir de mon cgi, avec dedans :
echo xxxxx | sudo -S pmset sleepnow
Le problème est que cela marche si je le lance du terminal mais pas à partir du script cgi... la console renvoie trois tentatives infructueuses de MdP !

Au final j'ai modifié les droits de 'pmset' avec la commande :
cd usr/bin
sudo chmod +s pmset

... ça fonctionne; mais je ne trouve pas le moyen très élégant car si je veux plus tard faire des bash plus complexes, je me retrouverai dans la même problématique à devoir changer les droits sur une ou plusieurs fonctions du système. Par ailleurs, en cas de réparation des droits ou de mise à jour de MacOS, il faudra refaire la manip.

Quelqu'un aurait il une solution plus élégante à me proposer ?
-- TD38 --
http://www.meteo.lecoin.info
Informatique : Mac Pro / OSX10.6.8 - Raspberry Pi et Pi2 / Raspbian - NAS Synology DS413
Contrôleurs : Micasaverde Vera3 (arrêtée) - Rfxcom Rfxtrx433 - Telco Duwi 64459 --- Jeedom sur serveur custom
Sécurité : Foscam FI8910W - Vision Security ZP-3102(x2) - Fibaro FGMS-001(x2) - Fibaro FGSD-002(x6)
Mesures : Oregon BTHR918 / THGR810(x5) / THN132N / THGN800 / WGR800 / PCR800 / UVN800 - AeonLabs 4in1(x2) - Owl CM180(x2) - Fibaro FGBS.001
Actionneurs : Duwi 05436(x8) - Prises ARC Diagral(x3) - Everspring AN157 - Fibaro FGD.211 - Chacon DI-O 54795 (beaucoup) / 54786 - Fibaro Wall Plug
Interfaces : Une tablette Chuwi Hi10 - Un Karotz sous OpenKarotz - SqeezePlay sur Rpi
Onduleurs : Eaton 650 et 1200 + APC UPS PRO 550 et 900
Avatar de l’utilisateur
Theduck38
Dieu de domotique
 
Messages: 997
Inscription: 18 Avr 2013, 05:03
Localisation: Près de Grenoble

Re: [Macintosh] Executer des requêtes http sur un mac

Messagede Theduck38 » 11 Nov 2013, 10:02

Un petit update : j'ai fini par cloner l'instruction "pmset" dans un dossier quelconque, et changer ses droits avec un "chmod +s". Cette méthode est du coup applicable à n'importe quelle instruction et évite de bricoler les droits des fonctions système.
-- TD38 --
http://www.meteo.lecoin.info
Informatique : Mac Pro / OSX10.6.8 - Raspberry Pi et Pi2 / Raspbian - NAS Synology DS413
Contrôleurs : Micasaverde Vera3 (arrêtée) - Rfxcom Rfxtrx433 - Telco Duwi 64459 --- Jeedom sur serveur custom
Sécurité : Foscam FI8910W - Vision Security ZP-3102(x2) - Fibaro FGMS-001(x2) - Fibaro FGSD-002(x6)
Mesures : Oregon BTHR918 / THGR810(x5) / THN132N / THGN800 / WGR800 / PCR800 / UVN800 - AeonLabs 4in1(x2) - Owl CM180(x2) - Fibaro FGBS.001
Actionneurs : Duwi 05436(x8) - Prises ARC Diagral(x3) - Everspring AN157 - Fibaro FGD.211 - Chacon DI-O 54795 (beaucoup) / 54786 - Fibaro Wall Plug
Interfaces : Une tablette Chuwi Hi10 - Un Karotz sous OpenKarotz - SqeezePlay sur Rpi
Onduleurs : Eaton 650 et 1200 + APC UPS PRO 550 et 900
Avatar de l’utilisateur
Theduck38
Dieu de domotique
 
Messages: 997
Inscription: 18 Avr 2013, 05:03
Localisation: Près de Grenoble


Retourner vers Parasites, Perturbations électriques !

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

Copyright © 2011 - Touteladomotique.com - Tous droits réservés
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique