Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme nach "Umzug"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Probleme nach "Umzug"

    Hallo Forum,

    ich habe vor kurzem einen kleinen Umzug von Pi Rev B auf meinen neuen Pi 3 vollzogen. Davor hab ich mir natürlich die Daten gesichert. Soweit hat auch alles gut geklappt, das einzige Problem ist jetzt, das mein Funk script nicht per Openhab ausgeführt wird (Laut Log wird es ausgeführt, jedoch schalten die Steckdosen nicht)

    Wenn ich das Script manuell per Terminal starte funktioniert es ohne Probleme. Auch als User Pi z.B. (User Openhab konnte ich nicht testen da ich kein PW setzen kann, warum auch immer.)

    Ordner und Unterordner sind auf Benutzer Openhab.

    Was mich aber wundert, mein IR script, das im gleichen Ordner liegt funktioniert ohne Probleme auch über Openhab.

    Hat jemand vielleicht eine Idee?

    Danke und schönes WE

    #2
    Das sind ja nun eine ganze Menge Fragen (zwischen den Zeilen)

    Erstmal die Randbedingungen:
    1. Welches Betriebssystem? (und welche Version, Updatestand usw.)
    2. Welches Java?
    3. Wie wurde openHAB installiert? Welche Version?)
    4. Was beinhaltet das Script?

    Die ersten 3 Fragen wären natürlich sowohl für die alte wie auch die neue Plattform zu beantworten. Eine Shell für den User openhab kannst Du normalerweise erzwingen, indem Du sudo -u openhab /bin/bash aufrufst. eventuell sind Umgebungsvariablen nicht gesetzt, dann sieht das Prompt vielleicht komisch aus, die Tastatur verhält sich anders usw., macht aber erstmal nichts.
    Wie sehen die Rechte für das Script aus? (auch auf dem alten und dem neuen System)

    Kommentar


      #3
      Hallo,

      Betriebssystem auf beiden Raspian, installiert über den offiziellen Weg auf den Benutzer openhab. (Sollte die Version 1.8 sein, weiß aber nicht wo ich das prüfen kann)

      Java = 1.8.0_65

      Script z.B. "an.sh"

      #!/bin/bash
      sudo /usr/local/bin/send 11001 2 1

      ist wie folgt in openhab eingebunden:

      Switch HIFI_WZ "TV / HIFI" (WZ) { exec=">[ON:/etc/openhab/configurations/scripts/an.sh] >[OFF:/etc/openhab/configurations/scripts/aus.sh]"}

      Wenn ich das Script jetzt aber im Terminal aufrufe mit " /etc/openhab/configurations/scripts/an.sh " wird die Steckdose geschalten. Berechtigung wurde auch für die Ordner und Unterordner freigegeben...


      Danke nochmal

      Kommentar


        #4
        Die Version vom laufenden openHAB bekommst Du ganz leicht raus, indem du in der bash
        Code:
        cat ./logs/openhab.log | grep CoreActivator
        eingibst (aus dem runtime-Verzeichnis). Ist in einem der funktionierenden Scripte auch sudo drin? Evtl. musst Du den User openhab noch zur Gruppe sudo hinzufügen:
        Code:
        adduser openhab sudo
        Oder Du sorst dafür, dass send ohne sudo funktioniert (das wäre die bessere Variante) Je nachdem, wie der Funk angebunden ist, muss dafür openhab z.B. zur Gruppe dailout gehören (serielle Schnittstelle).
        Zuletzt geändert von udo1toni; 29.05.2016, 10:33.

        Kommentar


          #5
          Zitat von udo1toni Beitrag anzeigen
          Ist in einem der funktionierenden Scripte auch sudo drin? Evtl. musst Du den User openhab noch zur Gruppe sudo hinzufügen:
          Code:
          adduser openhab sudo
          Oder Du sorst dafür, dass send ohne sudo funktioniert (das wäre die bessere Variante) Je nachdem, wie der Funk angebunden ist, muss dafür openhab z.B. zur Gruppe dailout gehören (serielle Schnittstelle).
          Ich glaube hier sind wir (oder du ^^) auf dem richtigen Weg... in meinem Infrarot Script ist kein "sudo" vorhanden. Habe mal das "Sudo" aus dem Funk Script genommen, dann meckert WiringPi (must be root).

          User openhab habe ich mit dem o.g. Code zur Gruppe sudo hinzugefügt, allerdings klappt es immer noch nicht.

          Was mich auch wundert, wenn ich im Terminal unter openhab angemeldet bin (hab jetzt doch ein pw vergeben können) und das o.g. script aufrufe, fragt mich das System nach dem pw von Benutzer openhab.

          Ich glaube das beste für mich wäre echt, wenn ich den Befehl send ohne sudo ausführen kann.

          Funk ist einfach über GPIO angebunden, wenn du das meinst.

          Danke für die Hilfe Udo1Toni
          Zuletzt geändert von Maki84; 29.05.2016, 13:21.

          Kommentar


            #6
            bin nach folgender Anleitung vorgegangen, jetzt klappt alles wieder:

            Setz die Berechtigungen passend : sudo chmod 755 send
            Ändere den Besitzer auf root : sudo chown root send
            Setz das s-Bit bei send : sudo chmod u+s send

            Jetzt kann jeder Benutzer send ausführen ohne irgendwelche Krämpfe mit sudo.

            Danke für die Hilfe
            Zuletzt geändert von Maki84; 29.05.2016, 17:45.

            Kommentar


              #7
              Ja. Sticky-Bit sollte natürlich auch mit Vorsicht genossen werden, denn die Software läuft dann trotzdem mit root-Rechten (nur ohne sudo zu verwenden).
              Du hättest mit visudo auch die Konfiguration anpassen können, dass sudo keine Passwortabfrage macht (für send). Auch das führt aber zu einem Programm mit root-Rechten.
              Die Frage ist, ob wirklich zwingend root-Rechte für die Anwendung vonnöten sind, oder ob es nicht ausreichen könnte, an anderer Stelle die Zugriffsrechte für die gpio-Steuerung anzupassen. Da ich bisher dergleichen nicht machen musste, hab ich keine Ahung, wo überall geschraubt werden muss, damit das auf dem pi ohne root funktioniert.

              Kommentar


                #8
                Nachtrag: Auf die Schnelle: http://raspberrypi.stackexchange.com...unning-as-root

                Also 1. sicherstellen, dass die aktuelle Version von Raspian installiert ist.
                2. sudo chown root.gpio /dev/mem (oder memgpio? vorher schauen, welches device das richtige ist) um das device der Gruppe gpio zuzuordnen (die sollte zu dem Zeitpunkt schon existieren, falls also eine Fehlermeldung kommt, die gruppe anlegen)
                3. sudo chmod g+rw /dev/mem (oder memgpio? s.o.) um der Gruppe gpio Schreib/Leserechte einzuräumen.
                4. adduser openhab gpio um den user openhab der Gruppe gpio hinzuzufügen.
                5. Sticky Bit für send löschen.
                6. alles neu starten und send zukünftig auch ohne Sticky Bit erfolgreich vom user openhab nutzen lassen

                Du musst das nicht durchexerzieren, mir geht es hier nur um Vollständigkeit, falls mal jemand über diesen Thread stolpert, der mit su-Rechten auch Bauschweh bekommt

                Kommentar

                Lädt...
                X