HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

http://karpero.mine.nu/ha

Moderators: tom_rosenback, Daniel, Telldus

Kekke
Posts: 14
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Kekke » Thu Jan 18, 2018 11:08 am

Hur kopplar jag in denna kod så att den exekveras när jag kör via webformuläret?

När jag kör koden vid prompt (som anv. apache och med /bin/bash) dvs, "php tdtool-test.php", så funkar allt.
Den listar alla devices och sensorer och stänger sedan av device 1.

tom_rosenback
Posts: 778
Joined: Thu Jan 18, 2018 11:08 am
Contact:

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by tom_rosenback » Thu Jan 18, 2018 11:08 am

Kekke wrote:Hur kopplar jag in denna kod så att den exekveras när jag kör via webformuläret?

När jag kör koden vid prompt (som anv. apache och med /bin/bash) dvs, "php tdtool-test.php", så funkar allt.
Den listar alla devices och sensorer och stänger sedan av device 1.
Har du satt den i roten av HA är det bara att surfa till den med browsern.
//Tom

Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

Kekke
Posts: 14
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Kekke » Thu Jan 18, 2018 11:08 am

Ok :)

Då blev resultatet så här:

Array
(
)
6Array
(
[0] => Turning off group 1, - Could not connect to the Telldus Service
)
6

Daniel
Posts: 315
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Daniel » Thu Jan 18, 2018 11:08 am

Känns som att detta skulle kunna bero på en av två saker:

1. Någonting i själva Apache som stoppar. Någon säkerhetsinställning? Kollat Apache-loggarna?

2. Någonting i PHP som stoppar. Vete tusan vad dock. Eftersom det verkar funka när du kör via cli men inte via Apache, kan du jämföra /etc/php5/apache2/php.ini med /etc/php5/cli/php.ini och se om du hittar någon relevant skillnad?

/Daniel
Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

patrikg
Posts: 120
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm/Sweden

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by patrikg » Thu Jan 18, 2018 11:08 am

Skriv ihop ett php script som kör "whoami" för att ta reda på vilken user som exekverar tdtool.
Sedan kan man juh också undra vilken user som kör telldusd. Själva demonen.

Code: Select all

ps -C telldusd u

Kekke
Posts: 14
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Kekke » Thu Jan 18, 2018 11:08 am

Daniel: Det finns bara en php.ini och den ligger i /etc (jag kör php-5.6.19).
Apache-loggarna visar inga som helst fel, endast att jag har accessat tdtool-test.php (i access.log).

Patrik: Ovanstående skript rapporterar att det är användaren "apache" som anropar det.
telldusd kör som root men vid prompt så fungerar det att anropa tdtool med vilken användare som helst utan problem.
Problemet uppstår endast när det görs via Apache/php.

Jag kan också med ps se att skriptet anropas och processen ligger kvar i c:a 30 sekunder innan den returnerar:

apache 16803 25168 0 14:13 ? 00:00:00 sh -c tdtool --off 1 2>&1
apache 16804 16803 0 14:13 ? 00:00:00 tdtool --off 1

Och sedan visas felmeddelandet i webbrowsern:
Array
(
[0] => Turning off group 1, - Could not connect to the Telldus Service
)
6

Jag ska prova med strace för att se om den berättar mer om vad som händer.

Kekke
Posts: 14
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Kekke » Thu Jan 18, 2018 11:08 am

Det ser ut som tidigare dvs, när anropet av tdtool görs via Apache/php så kan den inte "connecta" till socket:en /tmp/TelldusClient:

[75] => socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0) = 6
[76] => connect(6, {sa_family=AF_LOCAL, sun_path="/tmp/TelldusClient"}, 20) = -1 ENOENT (No such file or directory)
[77] => nanosleep({0, 500000000}, NULL) = 0
[78] => close(6) = 0

Detta upprepas 58 ggr innan tdtool ger upp. Det hjälper inte heller att sätta anv. apache som ägare till denna socket:

# ls -la /tmp/TelldusClient
srwxrwxrwx 1 apache plugdev 0 Apr 6 09:26 /tmp/TelldusClient

Att suid:a tdtool hjälper inte heller.
Vad kan hindra socket-connect just via Apache/php?

patrikg
Posts: 120
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm/Sweden

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by patrikg » Thu Jan 18, 2018 11:08 am

Du kör inte apache/php i något jail/chroot eller liknande ??

Kekke
Posts: 14
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Kekke » Thu Jan 18, 2018 11:08 am

Nej, och den hittar ju och exekverar /usr/local/bin/tdtool vilket inte skulle funka med chroot.
Jag har även testat att använda sudo för att anropa tdtool som root men får samma fel.
Även testat att lägga anropet i ett sh-script och anropa detta via Apache/php men inget hjälper.

Selinux är deaktiverat så den bör inte spöka.

Nu börjar ideerna ta slut ...

patrikg
Posts: 120
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm/Sweden

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by patrikg » Thu Jan 18, 2018 11:08 am

Du kanske skall kolla med php.ini och googla på open_basedir string.
Kan det vara att den inte kommer åt /tmp katalogen.
Testa att exekvera något som skapar en fil där eller liknande.
http://www.cyberciti.biz/faq/linux-unix ... functions/

Samt hur är det satt i tellstick.conf när det gäller user och group ??

user = "nobody"
group = "plugdev"
ignoreControllerConfirmation = "false"

Börjar väl sina för förslag på felställen även i skallen på mig..*ler*

Kekke
Posts: 14
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Kekke » Thu Jan 18, 2018 11:08 am

Strax innan männen i vita rockar skulle hämta mig så hittade jag till slut orsaken!

systemd-baserade tjänster har möjlighet att använda en privat /tmp-katalog vilket var fallet för php-fpm.

Efter att ha ändrat "PrivateTmp=true" till "PrivateTmp=false" i /usr/lib/systemd/system/php-fpm.service
samt startat om php-fpm samt Apache så funkar det att tända/släcka lampor mm i Houseplan igen.

Ialla fall så vill jag tack för alla förslag och goda råd som jag har fått!
Nu har man lärt sig nåt nytt idag också :)

tom_rosenback
Posts: 778
Joined: Thu Jan 18, 2018 11:08 am
Contact:

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by tom_rosenback » Thu Jan 18, 2018 11:08 am

Kekke wrote:Strax innan männen i vita rockar skulle hämta mig så hittade jag till slut orsaken!

systemd-baserade tjänster har möjlighet att använda en privat /tmp-katalog vilket var fallet för php-fpm.

Efter att ha ändrat "PrivateTmp=true" till "PrivateTmp=false" i /usr/lib/systemd/system/php-fpm.service
samt startat om php-fpm samt Apache så funkar det att tända/släcka lampor mm i Houseplan igen.

Ialla fall så vill jag tack för alla förslag och goda råd som jag har fått!
Nu har man lärt sig nåt nytt idag också :)
Skam den som ger sig! :)
//Tom

Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

Daniel
Posts: 315
Joined: Thu Jan 18, 2018 11:08 am

Re: HA 3.2 Kan inte tända/släcka lampor manuellt i Houseplan

Post by Daniel » Thu Jan 18, 2018 11:08 am

Kekke wrote:Ialla fall så vill jag tack för alla förslag och goda råd som jag har fått!
Nu har man lärt sig nåt nytt idag också :)
Haha... Tror inte du var den ende som lärde sig något. Själv hade jag aldrig ens hört talas om php-fpm innan :D

/Daniel
Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

Post Reply