Presence und iPhone / Android

Begonnen von JoWiemann, 07 September 2017, 11:58:59

Vorheriges Thema - Nächstes Thema

Ajuba

Zitat von: Master_Nick am 20 März 2018, 08:42:59
Und ich beziehe mich nun genau auf den Teil: "#includedir /etc/sudoers.d"
Genau dort gehört es meiner Meinung nach hin.
Ich habe daher die Datei "/etc/sudoers.d/010_fhem-nopasswd"

Mit dem Inhalt:
fhem ALL = NOPASSWD: /opt/fhem/FHEM/presence.sh, /usr/bin/arp-scan, /usr/sbin/hping3


Also verstehe ich das richtig?
Im Verzeichnis etc/sudoers.d soll ich eine Datei "010_fhem-nopasswd" erzeugen und folgendes reinschreiben?
fhem ALL = NOPASSWD: /opt/fhem/FHEM/presence.sh, /usr/bin/arp-scan, /usr/sbin/hping3


Dann bleibt nur noch die Frage warum bei mir heute Früh
sudo nano sudoers
eine leere Datei gezeigt hat und wie man das repariert? Denn sonst wird ja gar nichts aufgerufen. Oder habe ich nur verschlafen einen Blödsinn angeschaut weil ich ja sonst gar nicht wie bisher mit "sudo" agieren könnte?
Kann ich einfach das vorhin gepostete reinkopieren?
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d



MadMax, was willst du damit sagen?
Zitat von: MadMax-FHEM am 20 März 2018, 08:46:12
Und übrigens: bei Standardinstallation hat User pi per sudo ohne Passwort alle Rechte...
Dass es sowie eine potentielle Gefahr gibt?

Sorry für die vielen blöden Fragen aber ich merke als Linux-Neuling gerade, dass das eine kritische Zone ist.
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

Master_Nick

#166
Zitat von: Ajuba am 20 März 2018, 09:11:35
Also verstehe ich das richtig?
Im Verzeichnis etc/sudoers.d soll ich eine Datei "010_fhem-nopasswd" erzeugen und folgendes reinschreiben?
fhem ALL = NOPASSWD: /opt/fhem/FHEM/presence.sh, /usr/bin/arp-scan, /usr/sbin/hping3


Exakt :-)


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Zitat von: Ajuba am 20 März 2018, 09:11:35
Dann bleibt nur noch die Frage warum bei mir heute Früh
sudo nano sudoers
eine leere Datei gezeigt hat und wie man das repariert? Denn sonst wird ja gar nichts aufgerufen. Oder habe ich nur verschlafen einen Blödsinn angeschaut weil ich ja sonst gar nicht wie bisher mit "sudo" agieren könnte?
Kann ich einfach das vorhin gepostete reinkopieren?

Weil du es irgendwo gemacht hast ohne Pfadangabe. Sozusagen du bist IRGENDWO ob im root-dir oder in /etc... wenn du nun sudo nano sudoers sagte legt er einfach an Ort und Stelle eine Datei an.
Du wirst sie suchen müssen - am besten direkt da schauen wo du nach login landest bei deinem system.


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Mach einfach mal sudo visudo - ich denke nicht, dass dann was leeres geöffnet wird :-)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Zitat von: Ajuba am 20 März 2018, 09:11:35
MadMax, was willst du damit sagen?Dass es sowie eine potentielle Gefahr gibt?

Sorry für die vielen blöden Fragen aber ich merke als Linux-Neuling gerade, dass das eine kritische Zone ist.

Es gibt keine blöden Fragen ;-) solange man auch mitdenkt.
Ansonsten will MadMax meines erachtens darauf hinweisen, dass der User pi abgesichert gehört wie es auch überall steht (Passwort ändern - SSH Login absichern etc).
Solange man aber z.B. sein FHEM nur im lokalen Netzwerk betreibt und nicht im Internet frei gibt ist die Gefahr schon mal deutlich geringer. Und an den User Pi kommt man auch mit Freigabe von FHEM eher schwieriger.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

MadMax-FHEM

In welchem Verzeichnis hast du denn:

sudo nano sudoers

aufgerufen?

Wenn du das "irgendwo" aufrufst, macht Linux/nano einfach eine neue Datei auf (weil es DORT die sudoers Datei nicht gibt) und die ist nat. (erst mal) leer ;)

Und: jep, wie von Master_Nick beschrieben...

Wenn dort bereits eine für den User pi liegt, dann arbeitet dein System mit /etc/sudoers.d/ und dann wie von Maser_Nick beschrieben.

Potentielle Gefahr sind auch Linux-Anwender die keine Ahnung von Linux haben ;)

Das bedeutet nur, dass wenn jemand deinen pi "kapert" er mittels 'sudo' OHNE weitere Passwortabfrage eben 'root' ist und "alles darf"...

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

Eine leere Datei ist Prinzipiell nicht böse .....

Machmal lieber etwas anderes:
1. Was sagt Deine sudoers Datei:
cat /etc/sudoers
2. Gibt es sudoers-Dateien nach dem Config-Dir:
ls -lha /etc/sudoers.d

Wenn Du eingiebst: "sudo nano sudoers", in welchem Verzeichnis bist Du dann?
- 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

Ajuba

Zitat von: MadMax-FHEM am 20 März 2018, 09:18:58
Gefahr sind auch Linux-Anwender die keine Ahnung von Linux haben ;)
Eigentlich wollte ich ja nur FHEM benutzen und keinen Linux Tauchgang machen  :-X ... und Perl schon gar nicht. Aber es hilft halt nichts, Fhem ist super und die helfende Community auch. Da muss ich halt durch.  ;D

Aber so gescheit war ich schon, dass ich zu "cd /etc" wechselte und mit "ls" sudoers gesehen habe bevor ich "sudo nano sudoers" eingegeben habe. Deshalb macht es mir ja Sorgen, dass ich keinen Inhalt gesehen habe.
Am besten melde ich mich am Abend wieder wenn ich nochmal nachschauen kann.
Danke vorerst.
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

Master_Nick

#170
 ;) Nimm die Aussage bitte nicht zu ernst/persönlich.

Wir haben alle mal angefangen und haben alle Hilfe dabei erhalten. Diese erhältst auch du  :D  8)
Aber aus der harten Sicht des Netzes... wo jemand nicht wusste wie es abzusichern war, wird es ausgenutzt. Da hat er eben Recht - ohne es auch nur irgendwie persönlich auf dich zu bringen.

Ich weiß auch noch lange nicht alles bei Linux - aber es wächst und gedeiht und vor allem mit dem Forum hier macht es echt Spaß und man erntet Erfolge.
Definitiv kommt man komplett ohne sich mit zu befassen nicht weit und lernen gehört definitiv auch dazu.

Schau nachher nochmal nach und dann sehen wir weiter :-)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

MadMax-FHEM

#171
@Ajuba:

jep, wie Master_Nick schon geschrieben hat: ist nicht auf dich bezogen. Aber du wolltest wissen was "gefährlich" ist ;)

Besser wie hier beschrieben zum Editieren der sudoers:

Zitat
Vorsichtsmaßnahmen

Die Veränderung von /etc/sudoers ist gefährlich. Wenn Sie einen Syntaxfehler einbauen, ist ein weiterer sudo-Kommando unmöglich und Sie können den Fehler nicht mehr korrigieren! Um dieses Dilemma zu vermeiden, können Sie drei Vorsichtsmaßnahmen ergreifen:

    Sie ändern /etc/sudoers nicht mit irgendeinem Editor, sondern mit visudo. Vor dem Speichern führt visudo einen Syntaxtest durch. Sie können die Datei erst speichern, wenn die Syntax korrekt ist. Wenn Sie keine Lust auf den Editor vi haben, stellen Sie vor der Ausführung von visudo den gewünschten Editor mit export EDITOR=$(which nano) ein, wobei Sie nano durch Ihren Lieblingseditor ersetzen.

Evtl. siehst du dann mehr...

Was passiert wenn du mit user 'pi' etwas als 'root' ausführst?

Beispielsweise: sudo su danach (sofort) wieder exit! oder sudo service fhem status

Und sollte sich das länger ziehen, besser einen neuen Thread aufmachen in "Server Linux"

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)

Ajuba

Kaum macht man es richtig schon funktioniert es - Mein Handy ist present. ;D

Was habe ich gemacht:
Zitat von: Master_Nick am 20 März 2018, 08:42:59
Ich habe daher die Datei "/etc/sudoers.d/010_fhem-nopasswd"
Mit dem Inhalt:
fhem ALL = NOPASSWD: /opt/fhem/FHEM/presence.sh, /usr/bin/arp-scan, /usr/sbin/hping3

Was hatte ich heute früh falsch gemacht:
Statt "sudo nano sudoers" hatte ich nur "nano sudoers" eingegeben und der leere Bildschirm hat mich in der morgendlichen Eile so geschockt, dass ich am unteren Bildschirmrand die Fehlermeldung "[ Error reading sudoers: Permission denied ]" vollkommen übersehen hatte.  ::)

Ich danke allen für die Unterstützung.

@Master_Nick: Ist eigentlich geplant, diese PRESENCE function Methode in CommandRef inklusive Script und myUtils zu beschreiben?
Falls es gewünscht ist, könnte ich mich mal als Autor mit einer Schritt für Schritt Anleitung versuchen.
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

Master_Nick

Hehe ich bin tatsächlich nicht der Urheber hier :-)
Ich habe nur eine anscheind sehr gute Version aus dem Ursprung gemacht.

Habe mich lange daran geärgert, dass die Logik für die Anwesenheitserkennung im Handy sein musste um gut zu funktionieren und das war mein Antrieb es zur Perfektion zu treiben.

Aber wir können bestimmt ein Howto oder einen Eintrag ins Wiki erzeugen - denke ich :D "Neuland" :-D
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Ajuba

OK, wenn es recht ist werde ich im Laufe der Woche einen Entwurf ausformulieren den ich dir zur Kontrolle vorlege.
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

Master_Nick

Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Ajuba

Master_Nick, herzlichen Dank an für die tollen Adaptionen.
Gestern war ich zwar um 4 Uhr früh für 5 Minuten außer Haus  :-\ aber sonst scheint es stabil zu laufen.
Ich hatte aber auch noch kein absence_treshhold aktiviert.

Nun zum Wiki
Im aktuellen Wiki wird "function" nur im Zusammenhang mit Perl-Funktionen erwähnt. Das müsste an noch auf "Script" erweitern.

Ich habe meinen Vorschlag mal in Word erstellt.
Bei rot markiertem Text bin ich mir nicht sicher, ob es so notwendig ist oder ob man es besser weglassen soll.

Bitte kritisch prüfen, ob das brauchbar ist.
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

dott.olivero

#177
Also erstmal vielen Dank an den Initiator JoWiemann und den Vervollkommner Master_Nick für diese Funktionalität.

Da bei mir das einfache LAN-PING nach mind. 2 Jahren Einsatz keine zuverlässigen Ergebnisse mehr produziert, habe ich das presence.sh-Script implementiert.
Allerdings sind meine Ergebnisse nicht so prickelnd... Vielleicht mache ich ja was falsch?

Folgende Smartphones werden getrackt:
- Samsung S9 (Android 8.0.0)
- Samsung A8 (Android 7.1.1)
- iPhone 7

Besonders das S9 macht Probleme. Hier habe ich die meisten 'absent'-Meldungen, wenngleich das Phone im Haus und WLAN ist, teils sogar wenn es in Benutzung ist. Beim S8 und iPhone 7 gibt es 'nur' 4-8 Fehlmeldungen am Tag. Ich konnte nicht herausfinden, dass Google oder Samsung bei Android 8 oder dem S9 am Wifi-Modul eine besondere Stromsparfunktion implementiert hätten.

Hier meine Definition
define smartphone_s9 presence function {CheckPresence("192.168.XXX.XXX", "xx:xx:xx:xx:xx:xx")} 30 300
attr smartphone_.* devStateIcon present:10px-kreis-gruen absent:10px-kreis-rot maybe.absent:10px-kreis-gelb
attr smartphone_.* event-on-change-reading .*
attr smartphone_.* absenceThreshold 8


Mittels 'absenceThreshold 8' bezwecke ich (hoffentlich korrekt gedacht und umgesetzt), dass falls das Phone nicht gefunden werden kann, es 8x probiert wird in einer Frequenz von 30 Sekunden (gem. define für Anwensenheit), also 4,5 Min. Im Log sieht man ziemlich genau 5 Minuten (?), bis der Status von 'maybe absent' auf 'absent' wechselt. Das Script unterdessen hat ja nochmals eine eigene Wiederholrate der Versuche (Standard 2x6), so dass insgesamt max. 2x6x8=96 Versuche vor Statuswechsel 'present' -> 'absent' unternommen werden.

Hier mal ein paar Logauszüge (das Smartphone S9 war die ganze Zeit im Haus, nicht in Benutzung, WLAN aktiviert):

2018-04-06_02:04:21 smartphone_s9 present
2018-04-06_02:14:35 smartphone_s9 maybe absent
2018-04-06_02:19:40 smartphone_s9 absent
2018-04-06_02:32:31 smartphone_s9 present
2018-04-06_02:37:45 smartphone_s9 maybe absent
2018-04-06_02:42:50 smartphone_s9 absent
2018-04-06_02:44:10 smartphone_s9 present
2018-04-06_02:49:24 smartphone_s9 maybe absent
2018-04-06_02:54:28 smartphone_s9 absent
2018-04-06_02:59:25 smartphone_s9 present
2018-04-06_03:04:38 smartphone_s9 maybe absent
2018-04-06_03:09:42 smartphone_s9 absent


Ausgeschaltet aber im Haus. Interessanterweise habe ich es ab 09:19 im WLAN genutzt, was erst 10:08:38 detektiert wurde.

2018-04-07_06:18:28 smartphone_s9 present
2018-04-07_06:23:42 smartphone_s9 maybe absent
2018-04-07_06:28:47 smartphone_s9 absent
2018-04-07_10:08:38 smartphone_s9 present


Für einen Tipp, was ich falsch mache oder besser machen könnte/müsste, wäre ich sehr dankbar.

Ergänzung: im Logfile /var/log/auth.log findet sich ein merkwürdiges "TTY=unknown", das mir nichts sagt...
Apr  7 13:45:42 raspi_fhem sudo:     fhem : TTY=unknown ; PWD=/opt/fhem ; USER=root ; COMMAND=/usr/bin/arp-scan -q -g 192.168.XXX.XXX
Apr  7 13:45:42 raspi_fhem sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Apr  7 13:45:43 raspi_fhem sudo: pam_unix(sudo:session): session closed for user root
Apr  7 13:45:43 raspi_fhem sudo:     fhem : TTY=unknown ; PWD=/opt/fhem ; USER=root ; COMMAND=/usr/bin/arp-scan -q -g 192.168.XXX.XXX
Apr  7 13:45:43 raspi_fhem sudo: pam_unix(sudo:session): session opened for user root by (uid=0)

Master_Nick

Hast du:

- WLAN im Standby Modus eingeschaltet lassen: EIN
- zu mobilen Daten wechseln: AUS
? :-)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

dott.olivero

#179
Hallo Master_Nick,

vielen Dank für Deinen Support.

Zitat- WLAN im Standby Modus eingeschaltet lassen: EIN
- zu mobilen Daten wechseln: AUS

Ja klar  ;):
- Zu mobilen Daten wechseln: AUS
- WLAN automatisch aktivieren: AUS
- WLAN-Energiesparmodus: AUS
- WLAN im Standbymodus eingeschaltet lassen: IMMER
- "WLAN-Netzwerk XYZ" Automatisch erneut verbinden: EIN