[42_AptToDate.pm] Übersicht über verfügbare Distributionsupdates

Begonnen von CoolTux, 16 Mai 2018, 09:54:41

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Gerne!

Lieber 1x ausführlich als 20x häppchenweise hin und her... ;)

Wird Zeit, dass du den noob in dir ablegst... ;)

Falls es damit doch nicht klappen sollte: besser neuer Thread...

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)

the ratman

#211
*argl* weiter im leerlauf!
machen ma hier wieder weiter, da wir ja erfolgreich den fehler mit der doppelt vergebenen userid (guckst du: https://forum.fhem.de/index.php/topic,95679.0.html ) gefunden hatten ... in meinen augen happerts also irgendwo an aptToDate.

als beweis das login vom fhem-debian auf den gewünschten raspi:
root@fhem:~# su fhem
fhem@fhem:/root$ ssh fhem@ratomat
Linux ratOmat 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jan 12 13:44:56 2019 from 2003:df:7f22:400:a00:27ff:fee9:fb8d
fhem@ratOmat:~ $
ich bin also erfolgreich ohne passwort "drüben", was aber nix an repoSync fetched error 2019-01-12 13:46:44
state system is up to date 2019-01-12 13:46:44
ändert.
im log findet sich auch nix.

noch mal schnell die daten des users "fhem" auf dem ratOmat (raspi):
o) fhem gehört der gruppe sudo an
o) in der /etc/sudoers hab ich auch brav "fhem    ALL=NOPASSWD: /usr/bin/apt-get, /sbin/halt, /sbin/reboot, /bin/mount" eingetragen
o) gruppen passen auch, denk ich mal: pi@ratOmat:~ $ id fhem
uid=1001(fhem) gid=1001(fhem) Gruppen=1001(fhem),5(tty),20(dialout),27(sudo),33(www-data),100(users),108(netdev),110(ssh)
ich weiß, so viel bräuchte der nicht, aber ich hatt wieder einen klickanfall beim gruppenverteilen *g*

hab ich was vergessen?
→do↑p!dnʇs↓shit←

MadMax-FHEM

Wenn du als fhem auf ratomat eingeloggt bist (also als fhem@ratomat) was bringt dann sudo apt-get ?

Wie hast du den User fhem auf ratomat angelegt?

Das im andern Thread hab ich schon mitbekommen...
Aber nachdem dir ja gut geholfen wurde hab ich mich nicht "eingemischt"... ;)

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)

the ratman

#213
ZitatAber nachdem dir ja gut geholfen wurde hab ich mich nicht "eingemischt"... ;)
hat ja auch alles super geklappt bei der fehlersuche, wenn ich auch ein wenig verwirrt bin und mir nicht erklären kann, warum 2 user den selben uid haben - speziell wies scheint, der konflikt erst entstanden sein kann, nachdem ich für den fhem-server fhem user ein pwd vergeben hatte. aber wurscht, das geht jetzt mal *g*
ZitatWenn du als fhem auf ratomat eingeloggt bist (also als fhem@ratomat) was bringt dann sudo apt-get ?
er fragt mich wieder nach nem sudo passwort - dachte, dass wäre mit dem eintrag in sudoers erledigt? jetzt bin i ganz verwirrt.
ZitatWie hast du den User fhem auf ratomat angelegt?
mit der grafischen userverwaltung von den gnome admin tools. wenn ich mir das in der passwd so anguck, schaut das auch  aus wies aussehen sollte, denk ich mal.
→do↑p!dnʇs↓shit←

MadMax-FHEM

Wo hast du denn den Eintrag in die sudoers gemacht?

Auf ratomat!?

Hast du den Eintrag ans Ende der sudoers eingetragen!?

Wie hast du die sudoers bearbeitet?
sudo visudo!?

Was für ein System ist denn der ratomat?
Gibt es ein Verzeichnis /etc/sudoers.d/ ?

Dann besser dort eine Datei für den User fhem anlegen:
sudo visudo /etc/sudoers.d/010_fhem_nopasswd
(oder wie immer du die Datei nennen willst)

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)

the ratman

#215
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
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
fhem    ALL=NOPASSWD: /usr/bin/apt-get, /sbin/halt, /sbin/reboot

# 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

ja sudo visudo wurde dafür verwendet,
NACHTRAG: hab visudo mal als root probiert und als solcher gespeichert - is ihm auch egal ...

ZitatWas für ein System ist denn der ratomat?
Gibt es ein Verzeichnis /etc/sudoers.d/ ?
das system ist n debian stretch, wie man es von der raspi-seite saugen darf ( https://www.raspberrypi.org/downloads/raspberry-pi-desktop/ ).
ein /etc/sudoers.d existiert aber:pi@ratOmat:~ $ sudo visudo /etc/sudoers.d/010_fhem_nopasswd
usage: visudo [-chqsV] [-f sudoers] [-x output_file]
ich würds aber sowieso gern einfach halten und nicht auch noch zeugs irgendwoher includieren wollen
→do↑p!dnʇs↓shit←

MadMax-FHEM

#216
Ja sorry hatte das -f vergessen (man darf aber auch mal selber schauen ;)  ).

Also:

sudo visudo -f /etc/sudoers.d/010_fhem_nopasswd

Den Eintrag in der sudoers wieder raus nehmen (und es steht doch schon in der sudoers, dass man evtl. in erwägung ziehen soll statt Einträge direkt hier zu machen eine Datei in /etc/sudoers.d/ anlegen sollte)

Du kannst auch den Eintrag für fhem ans Ende der Datei setzen...

Hast du die Datei mit visudo bearbeitet?
Oder "einfach so"?

Einfach so: schlecht!
Weil visudo syntax-checks durchführt...


EDIT: es sollte dort bereits eine Datei für den User pi geben, die kannst du auch kopieren und nutzen (pi -> fhem)... Dann hättest du gar keinen User fhem einrichten brauchen, der User pi hätte gereicht also statt fhem@ratomat eben pi@ratomat und der User pi hätte schon passwortloses sudo gekonnt ;)

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)

the ratman

#217
ich hab doch visudo verwendet ... einmal mit user pi und weil ich im file gelesen hab, man sollts als root machen, dann auch einmal als root ...

so:
in etc/sudoers die zeile für fhem mit # auskommentiert
mit visudo das file angelegt und in ermangelung besseren wissens dort "fhem    ALL=NOPASSWD: /usr/bin/apt-get, /sbin/halt, /sbin/reboot" eingertragen und gespeichert
nachgeschaut - das neue file liegt im sudoers.d
sicherheitshalber nen reboot gemacht

ich hatte dann bei aptToDate ein recht langes "reposync in progress", aber am ende kommt wieder der "fetched error".
weiterhin keine logeinträge bei fhem ...

NACHTRAG:
Zitates sollte dort bereits eine Datei für den User pi geben
ja, nur hab ichs jetzt wie du beschrieben hast angelegt.
sind "-" und "_" wichtig?
weil 010_pi-nopasswd
und 010_fhem_nopasswd
→do↑p!dnʇs↓shit←

MadMax-FHEM

Die Filenamen sind egal (würde ich mal behaupten, solange sie gültig sind)...

Lösche doch mal den Eintrag von fhem aus der sudoers statt "auskommentieren"...

Und (einfach nur zum Testen) kopiere doch mal den Eintrag vom User pi (also no password für alles)...

EDIT: allerdings fraglich, ob das jetzt tatsächlich überhaupt (noch) was mit dem Modul hier zu tun hat... Wenn es noch länger geht dann vielleicht wieder in einen extra Thread...

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)

the ratman

ich versteh nicht, wies am user liegen soll

ich kann mich vom fhem-server weg per ssh als user fhem ohne passwort auf dem entfernten rechner einloggen.
ich kann dort problemlos ein "sudo apt-get check" absetzen - auch ohne passwort.
nix anderes macht doch aptToDate - wobei ich noch ned so ganz kapier, woher aptToDate weiß, dass es auf dem andern rechner einen user fhem gibt.

ich glaub, ich gehs nochmal ganz von vorne an: wie muß eigentlich genau die dev für aptToDate lauten.
für lokal is es ja klar und funzt auch: define fhemServer AptToDate localhost
für entfernt is es schon weniger klar: define fhemServer AptToDate 192.168.178.197 oder define fhemServer AptToDate fhem@192.168.178.197 oder ? ? ?
→do↑p!dnʇs↓shit←

CoolTux

Zitat von: the ratman am 12 Januar 2019, 18:32:34
wobei ich noch ned so ganz kapier, woher aptToDate weiß, dass es auf dem andern rechner einen user fhem gibt.

ich glaub, ich gehs nochmal ganz von vorne an: wie muß eigentlich genau die dev für aptToDate lauten.
für lokal is es ja klar und funzt auch: define fhemServer AptToDate localhost
für entfernt is es schon weniger klar: define fhemServer AptToDate 192.168.178.197 oder define fhemServer AptToDate fhem@192.168.178.197 oder ? ? ?
AptToDate verbindet sich mit den Daten die Du ihm gibst. Es weiß also nichts vom User fhem. Es wird die ssh Logik verwendet. Wenn man sich per ssh verbindet ohne Angabe von einem User
user@
Wird der User verbindet mit dem der ssh Befehl aufgerufen wurde.
Du kannst also auch ssh pi@server machen und Du kommst auf remote per User pi an.
Und so kann auch das define aussehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

MadMax-FHEM

#221
Zitat von: the ratman am 12 Januar 2019, 18:32:34
ich versteh nicht, wies am user liegen soll

ich kann mich vom fhem-server weg per ssh als user fhem ohne passwort auf dem entfernten rechner einloggen.
ich kann dort problemlos ein "sudo apt-get check" absetzen - auch ohne passwort.
nix anderes macht doch aptToDate - wobei ich noch ned so ganz kapier, woher aptToDate weiß, dass es auf dem andern rechner einen user fhem gibt.

ich glaub, ich gehs nochmal ganz von vorne an: wie muß eigentlich genau die dev für aptToDate lauten.
für lokal is es ja klar und funzt auch: define fhemServer AptToDate localhost
für entfernt is es schon weniger klar: define fhemServer AptToDate 192.168.178.197 oder define fhemServer AptToDate fhem@192.168.178.197 oder ? ? ?

Diese Frage habe ich auch gleich zu Beginn gestellt, da ich bei dem Modul und deinem list keine Einträge bzgl. "remote" gesehen/gefunden habe.

Das muss ich mir mal anschauen, bzw. du mal in der Modul-Hilfe nachlesen...

Ich kenne das vom Xiaomi-Flower-Sens-Modul, da gibt es Attribute das einzustellen...


Nur noch mal zur Sicherheit: du kannst dich also OHNE Passwort als User fhem (der Linux-VM) auf dem ratomat als remoteUser fhem (also fhem@ratomat) per ssh einloggen:

fhem@VM-Linux:~$ ssh fhem@ratomat

Dann dort als remoteUser fhem (also remote eingeloggter fhem@ratomat) sudo apt-get update bzw. apt-get -s upgrade (oder was immer genau vom Modul genutzt wird um Dist-Updates abzufragen) OHNE Passworteingabeauffordeung aufrufen!?

Wenn das alles so geht, dann musst du dem Modul nur noch sagen es genau so zu tun.
Bzw. eine ssh-conf bereitstellen wo die Angaben (welcher User wo also Rechner etc.) drin stehen.
Nichts desto trotz muss das Modul nat. wissen, dass es remote aufrufen soll...

EDIT:
Aha hier steht es:
Zitat von: CoolTux am 12 Januar 2019, 18:39:54
AptToDate verbindet sich mit den Daten die Du ihm gibst. Es weiß also nichts vom User fhem. Es wird die ssh Logik verwendet. Wenn man sich per ssh verbindet ohne Angabe von einem User
user@
Wird der User verbindet mit dem der ssh Befehl aufgerufen wurde.
Du kannst also auch ssh pi@server machen und Du kommst auf remote per User pi an.
Und so kann auch das define aussehen.

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)

the ratman

#222
ZitatNur noch mal zur Sicherheit: du kannst dich also OHNE Passwort als User fhem (der Linux-VM) auf dem ratomat als remoteUser fhem (also fhem@ratomat) per ssh einloggen
ja - hier nochmal, um fehler auszuschließen:Using username "root".
root@192.168.178.8's password:
Send automatic password
Linux fhem 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jan 12 20:16:44 2019 from 192.168.178.51
root@fhem:~# su fhem
fhem@fhem:/root$ ssh fhem@ratomat
Linux ratOmat 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jan 12 18:20:44 2019 from 2003:df:7f22:400:a00:27ff:fee9:fb8d
fhem@ratOmat:~ $ sudo apt-get check
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
fhem@ratOmat:~ $
als erstes logge ich mich als root auf fhem ein, ändere dann per su fhem auf fhem und gehe dann auf den ratomat mit ssh fhem@ratomat, wo ich mir dann infos von apt-get anzeigen lasse. nirgends brauch ich ein pwd, ausser natürlich für mein erstes einloggen als root.
192.168.178.8 = fhem server (debian oracle vm)
ratomat = hifi-player (raspberry, der von fhem upgedatet werden soll

hier der ganze sermon nochmal, direkt mit dem user fhem auf dem fhem-server - also ohne vorherigen rootlogin as: fhem
fhem@192.168.178.8's password:
Linux fhem 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jan 12 13:28:55 2019 from 2003:df:7f22:400:10e2:8684:4463:2cc5
fhem@fhem:~$ ssh fhem@ratomat
Linux ratOmat 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jan 12 20:18:29 2019 from 2003:df:7f22:400:a00:27ff:fee9:fb8d
fhem@ratOmat:~ $ sudo apt-get check
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
fhem@ratOmat:~ $



ich habs nun nochmal probiert - ein neues device mit "define testupdater apttodate fhem@ratomat", also genau nochmal die selbe dev wie schon vorhanden ist, nur mit anderem namen
tjo, was soll ich sagen - fhem schreibt noch ins logCan't call method "readFromChild" on an undefined value at ./FHEM/42_AptToDate.pm line 503.bevors fhem aufstellt.
die alte dev liefert immer noch den üblichen fetched error


hier nochmal zur sicherheit ein list der alten devInternals:
   DEF        fhem@ratomat
   HOST       fhem@ratomat
   NAME       up2date_ratomat
   NOTIFYDEV  global,up2date_ratomat
   NR         268
   NTFY_ORDER 50-up2date_ratomat
   STATE      system is up to date
   TYPE       AptToDate
   VERSION    1.4.2
   READINGS:
     2019-01-12 13:29:51   os-release_BUG_REPORT_URL https://bugs.debian.org/
     2019-01-12 13:29:51   os-release_HOME_URL https://www.debian.org/
     2019-01-12 13:29:51   os-release_ID   debian
     2019-01-12 13:29:51   os-release_NAME Debian GNU/Linux
     2019-01-12 13:29:51   os-release_PRETTY_NAME Debian GNU/Linux 9 (stretch)
     2019-01-12 13:29:51   os-release_SUPPORT_URL https://www.debian.org/support
     2019-01-12 13:29:51   os-release_VERSION 9 (stretch)
     2019-01-12 13:29:51   os-release_VERSION_ID 9
     2019-01-12 13:31:19   os-release_language en
     2019-01-12 20:27:48   repoSync        fetched error
     2019-01-12 20:27:48   state           system is up to date
   helper:
     lastSync   2019-01-12
Attributes:
   alias      ratOmat
   cmdIcon    repoSync:edit_settings
   devStateIcon system.updates.available:system_backup@red:toUpgrade
system.is.up.to.date:system_backup@green:repoSync
.*in.progress:system_backup@orange
   distupgrade 1
   group      updates
   icon       system_backup
   room       computer
→do↑p!dnʇs↓shit←

CoolTux

Lege mal auf dem fhem Server unter /opt/fhem/.ssh folgende Datei an
config

Mit Inhalt

Host ratomat
        Hostname 192.168.178.197
        User pi
        IdentityFile /opt/fhem/.ssh/id_rsa
        Port 22
        ServerAliveInterval 30
        ServerAliveCountMax 120


Im Define dann nur
define myRatomat AptToDate ratomate
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

the ratman

#224
o) datei config mit deinem inhalt (nur anstelle pi hab ich fhem genommen) angelgt
o) rechte an fhem vergeben (dialout/fhem/0600)
o) dev umgebautDEF  ratomat
HOST      ratomat

o) ergebnis nach reposyncrepoSync fetched error 2019-01-12 20:48:00
state system is up to date 2019-01-12 20:48:00
o) weiterhin kein fehler im log
→do↑p!dnʇs↓shit←