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

http://karpero.mine.nu/ha

Moderators: Daniel, tom_rosenback, Telldus

Kekke
Posts: 15
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Kekke »

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: 779
Joined: Fri Mar 17, 2023 9:45 am
Contact:

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

Post by tom_rosenback »

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: 15
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Kekke »

Ok :)

Då blev resultatet så här:

Array
(
)
6Array
(
[0] => Turning off group 1, - Could not connect to the Telldus Service
)
6
Daniel
Posts: 317
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Daniel »

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: 122
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm/Sweden

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

Post by patrikg »

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: 15
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Kekke »

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: 15
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Kekke »

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: 122
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm/Sweden

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

Post by patrikg »

Du kör inte apache/php i något jail/chroot eller liknande ??
Kekke
Posts: 15
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Kekke »

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: 122
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm/Sweden

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

Post by patrikg »

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: 15
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Kekke »

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: 779
Joined: Fri Mar 17, 2023 9:45 am
Contact:

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

Post by tom_rosenback »

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: 317
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Daniel »

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