Page 2 of 2

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

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

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

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

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

Posted: Fri Mar 17, 2023 9:45 am
by Kekke
Ok :)

Då blev resultatet så här:

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

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

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

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

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

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

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

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

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

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

Posted: Fri Mar 17, 2023 9:45 am
by patrikg
Du kör inte apache/php i något jail/chroot eller liknande ??

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

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

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

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

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

Posted: Fri Mar 17, 2023 9:45 am
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å :)

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

Posted: Fri Mar 17, 2023 9:45 am
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! :)

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

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