Listing aus Forum in eine Linux-Datei übernehmen

Begonnen von is2late, 30 April 2020, 15:32:30

Vorheriges Thema - Nächstes Thema

Otto123

ZitatSowohl arp-scan als auch hping3 haben aber Parameter!
Bedeutet das, mir fehlen Parameter?
Ich versuchte es Dir zu erklären:
ZitatInhalt der sudoers Datei
Die durch Komma getrennten Werte in der Datei haben folgende Bedeutung und benötigen immer den vollen Pfad!

/usr/sbin -> für alles im Verzeichnis
/usr/sbin/service * -> für alle Parameter
/usr/sbin/service apache2 * -> für alle weiteren Parameter
/usr/sbin/service apache2 reload -> genau nur hierfür

Der Aufruf in FHEM muss dann genau dem Schema entsprechen:
"sudo /usr/sbin/service apache2 reload"
Das ist doch eigentlich verständlich oder?
Wenn Du nur /usr/sbin/hping3 aufrufen würdest, dann würde Dein Eintrag stimmen.
Du rufst aber (im Script) "/usr/sbin/hping3 mit Tante Frieda" auf.
Also musst Du entweder /usr/sbin/hping3 mit Tante Frieda in die Datei schreiben, oder anstatt mit Tante Frieda ein *

@Werner Das  Script presence.sh ist aus meiner Sicht fehl am Platz, denn das Script wird innerhalb fhem nicht als sudo aufgerufen. Aber im Script wird sowohl arp-scan als auch hping3 mit sudo aufgerufen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Könnte aber doch auch geändert werden...

Also sudo aus dem Script raus...
...und dann "nur" Aufruf des Scripts mit sudo...

Dann wird zumindest der Eintrag in der sudoers (wieder) einfach(er) ;)

Nur als "OT-Idee" ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

Und die Anzahl der Möglichkeiten steigt mit der Permuation der Varianten :)

@Ingo Zu meinem Lob: immerhin hast Du eine bessere Vorlage genommen als gefühlt 95% der "normal User" - die nehmen einfach ALL=(ALL) NOPASSWD: ALL
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

is2late

Okay, hab jetzt mal die Variante Otto probiert.
Die 010_fhem-passwd lautet jetzt:
fhem ALL = NOPASSWD: /opt/fhem/FHEM/presence.sh, /usr/bin/arp-scan*, /usr/sbin/hping3*
Im Log bleibt es bei
Zitatsudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben
. Die Handys sind weiterhin absent.

Wenn ich als nächstes das sudo aus dem Script presence.sc entfernen soll, dann vermutlich an diesen drei Stellen:
PRECHECK=`sudo arp-scan -q -g ${IP} | grep -o "${MAC}"`
  sudo hping3 -q -2 -c 10 -p 5353 -i u1 ${IP} >/dev/null 2>&1
STATUS=`sudo arp-scan -q -g ${IP} | grep -o "${MAC}"`
und vermutlich auch in den beiden zugehörigen Kommentierungen, richtig?

LG




Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Du hast aber schon ein LEERZEICHEN zwischen Befehl und dem Stern!?

Ich sehe keines... ;)

Denke aber da sollte/muss eins hin... ;)

Ich würde nichts aus dem Script entfernen (erst mal)...
Und wenn du es tust: ja sind diese Stellen...
Und nein: bei den Kommentaren ist es egal ;)
Und: dann musst du aber in der myUtils sub das Script mit sudo aufrufen...

Und: ich würde nicht gleichzeitig an zu vielen Schrauben drehen...
...immer einswas nach dem anderen...

Und schneller ginge wohl mein Vorschlag: einfach mal ZUM TEST!!! dem User fhem "alles ohne Passwort" erlauben, so wie dem User pi (vermutlich) auch...
Wenn das geht: weiter an der sudoers "schrauben"...
...wenn es damit auch nicht geht: dann liegt es an was anderem...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

is2late

Das Leerzeichen war tatsächlich nicht drin. Jetzt aber:
fhem ALL = NOPASSWD: /opt/fhem/FHEM/presence.sh, /usr/bin/arp-scan *, /usr/sbin/hping3 *
Probiere es heute Abend einmal damit, dem User fhem alles ohne PW zu erlauben. Wenn ich es hinkriege. :-\

LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Zitat von: is2late am 02 Mai 2020, 14:09:31
Das Leerzeichen war tatsächlich nicht drin. Jetzt aber:
fhem ALL = NOPASSWD: /opt/fhem/FHEM/presence.sh, /usr/bin/arp-scan *, /usr/sbin/hping3 *
Probiere es heute Abend einmal damit, dem User fhem alles ohne PW zu erlauben. Wenn ich es hinkriege. :-\

LG

Mach doch erst mal so, wenn du es schon hast... ;)

Wenn dann immer noch das mit Passwort etc. kommt kannst du immer noch den Inhalt vom User pi sudoers "übernehmen" und anpassen...

Und erneut: das nur zum TEST!

Wenn das dann geht, dann musst du sehen wie wir das mit der sudoers dann richtig machen...
...wenn es dann damit auch nicht geht, müssen wir "woanders" suchen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Wernieman

Oder wenigstens mal in der FHEM Kommandozeile testen ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

is2late

Na, jetzt (nach Einfügen der Sternchen) tut sich doch mal was...eine neue/erweiterte Fehlermeldung:

Zitatsudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben
Thread 3 terminated abnormally: icmp ping requires root privilege at ./FHEM/00_SONOS.pm line 6423 thread 3.

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

#39
Wieso jetzt Sonos!?

Du wolltest doch PRESENCE oder!?

Wie sieht dein define bzgl. PRESENCE der Handys aus!?

EDIT: ich hab mir von weiter vorne mal deine definition angesehen
Zitatfunction {CheckPresence("192.168.100.xx", " xx:xx:xx:xx:xx:xx ")} 300 300
und Leerzeichen um die MAC ist wahrsch. falsch... Außer dir ist beim "Verfremden" ein Fehler passiert... ABER: (verm.) nicht das Problem der Fehlermeldung...

EDIT: probier doch mal aus was passiert, wenn du das hier (nat. mit richtiger IP und MAC OHNE Leerzeichen) in Fhemweb eingibst: {CheckPresence("192.168.100.xx", " xx:xx:xx:xx:xx:xx ")}

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

is2late

Hi Joachim,

ja, es geht nur um PRESENCE. Sonos ist aber auch installiert und spielt ja ordentlich im Log mit. Vielleicht stört das? Der Player ist häufig disappeared.
Aber zurück zu PRESENCE:

Hab alle Varianten durchprobiert: Mit und ohne Space um die Mac herum, das Ergebnis ist immer das gleiche: "0".

Das define sieht so aus:
define HandySony_Ingo presence function {CheckPresence("192.168.xxx.xx", " xx:xx:xx:xx ")} 300 300
Das Leerzeichen scheint nichts auszumachen. Hab in der DEF die Leerzeichen versuchsweise entfernt, also
function {CheckPresence("192.168.xxx.xx", "xx:xx:xx:xx")} 300 300 Auch bei einem erneuten Versuch bleibt es für
{CheckPresence("192.168..... bei "0". Alle Handys sind angeblich absent.

Soll ich das Sonos-Zeug mal rauswerfen?
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Das mit Sonos (ist bestimmt) was anderes...

Aber die Meldung sagt, dass da wohl noch ein Eintrag für ping in der sudoers fehlt... ;)

Ich denke das Sonos_Modul "pingt die Geräte an, um zu wissen, ob die "da" sind...

So nun zurück zur Anwesenheit... :)

Tja, dann müssen wir sehen, wo das Problem liegt...

Nun also doch auf die Linux-Console und mal (den "Spruch" aus dem Script "testen"):


sudo arp-scan -q -g 192.1.1.1


evtl. auch so:


sudo arp-scan -q -g "192.1.1.1"


Natürlich mit der richtigen IP...

Oder in fhem-Web:


{qx(sudo arp-scan -q -g '192.1.1.1')}


Wenn da dann in der Liste (vermute es kommt eine zurück) die MAC des Handys dabei ist, dann kann das Script nix dafür...
...dann ist das Handy noch im arp-chache...

EDIT: setzt nat. voraus, dass KEIN Fehler (bzgl. des Scripts oder der sub) mehr gegeben ist... (Sonos mal außen vor)...

Gruß, Joachim

P.S.: in dem Script (alte Version) das ich habe wird "nur" arp verwendet aber auch da hatte ich letztes Mal ein "Problem" mit dem arp chache. Mein Handy war da immer da... Obwohl KEIN WLAN... ;)
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

Ich bin nicht sicher wegen dem Anfang in der sudoers.
Ich schreibe da immer
fhem ALL=(ALL) NOPASSWD:
So ganz 100% hab ich den Syntax nicht verinnerlicht.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

is2late

Guten Morgen!

sudo arp-scan -q -g 192.1.1. - IP mit oder ohne Anführungszeichen - brachte Erstaunliches:
Das Android-Handy wurde nicht gemeldet, obwohl online
Zitatsudo arp-scan -q -g 192.xxx
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 1 hosts (https://github.com/royhills/arp-scan)
0 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 1 hosts scanned in 2.917 seconds (0.34 hosts/sec). 0 responded

Dagegen gab es einen Treffer beim Apple-Handy:
Zitatsudo arp-scan -q -g 192.xxx
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 1 hosts (https://github.com/royhills/arp-scan)
192.xxx   xx:xx
2 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 1 hosts scanned in 1.566 seconds (0.64 hosts/sec). 1 responded
. (Bei Wiederholung des Befehls war es dann nur noch 1 packet.)
In Fhem gelten alle Handy weiterhin als absent.

Daraufhin habe ich beim Android-Handy die mobilen Daten ausgeschaltet. Jetzt wurde es plötzlich erkannt:
sudo arp-scan -q -g 192.xxx
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 1 hosts (https://github.com/royhills/arp-scan)
192.xxx xx:xx
1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 1 hosts scanned in 2.103 seconds (0.48 hosts/sec). 1 responded


Danach habe ich die mobilen Daten wieder eingeschaltet. Ergebnis: Android-Handy nicht mehr erkannt. Mobile Daten wieder AUS - und plötzlich jetzt KEINE Erkennung mehr. Handy neu gebootet, mobile Daten aus, gleiches Ergebnis. Cache-Problem?

Ottos Idee
fhem ALL=(ALL) NOPASSWD:
habe ich auch ausprobiert; keine Veränderung, dh weder bei der Erkennung auf sudo arp-scan noch in Fhem.
Soll ich die sudoers wieder zurückdrehen? Die Sterne stehen auch noch drin.

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Wie du siehst ist es ja kein/nicht nur ein sudo Problem...

Solange der arp-scan dein(e) Handy(s) nicht "findet" wird auch das Script nicht richtig tun...

Und: das funktioniert nat. nur, wenn sich die Handys sauber in dein Netz einbuchen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)