"Display-RPI" per exec-Befehl runter fahren und mit Schaltsteckdose anschalten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 15241
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: "Display-RPI" per exec-Befehl runter fahren und mit Schaltsteckdose anschalten

Beitrag von udo1toni »

Der Pfad zur Datei ist ja bekannt, scp sind die Flags egal, solange es unter dem richtigen Kontext läuft (mit einfachem sudo läuft scp als root, da gibt es dann gar keine Rücksicht). Also auf einem der Zielsysteme einloggen, prüfen, dass man von dort per ssh auf das andere Zielsystem kommt und dann den passenden Befehl absetzen:

Code: Alles auswählen

sudo scp /home/<username1>/.ssh/authorized_keys <username2>@<zielsystem>:~/ # authorized_keys vom lokalen System auf das Zielsystem kopieren, dort im home-Verzeichnis des Users ablegen, der ausgewählt wurde

Code: Alles auswählen

sudo scp <username2>@<zielsystem>:~/.ssh/authorized_keys /home/<username1>/ # authorized_keys vom Remote System auf das lokale System kopieren, dort im home-Verzeichnis des Users ablegen, der ausgewählt wurde
<username1>, <username2> und <zielsystem> sind mit passenden Werten zu ersetzen :) die Usernamen können, müssen aber nicht übereinstimmen (kommt nur drauf an, welche User zur Verfügung stehen).
Falls der User auf dem Remote System nicht der Besitzer der Datei ist, sondern root-Rechte nutzt - z.B. weil der eigentliche User sich nicht per Passwort anmelden darf... - so muss ~/ durch den Pfad zum Verzeichnis ersetzt werden. ~ ist das home-Verzeichnis des Users, in dessen Kontext der jeweilige Befehl läuft. Also z.B.
  • ls -l ~ listet das home-Verzeichnis des aktuellen Users,
  • sudo -u openhab ls -l ~ listet das home-Verzeichnis von openhab,
  • sudo ls -l ~ listet das home-Verzeichnis von root
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

filmgucker2
Beiträge: 237
Registriert: 8. Apr 2020 20:59
Answers: 0

Re: "Display-RPI" per exec-Befehl runter fahren und mit Schaltsteckdose anschalten

Beitrag von filmgucker2 »

Tja, so klappt das noch nicht...
Folgende Lage:
OpenhabianHost und RemotePi 1 verstehen sich ohne Passwörter mit Keys über den Nutzer openhabssh auf dem RemotePi1.
Der RemotePi 2 hat einen user openhab, der kein Passwort hat. Zu ihm kann man nur rein, wenn man die Schlüssel hat. Die wollte
ich ihm vom RemoteP1 schicken, aber kam natürlich nicht rein...Kann ich dem openhab auf RemotePi2 vorübergehend ein Passwort geben,
damit er die kopierte Datei nimmt?
Raspberry Pi 4, OH 4.0.3

Benutzeravatar
udo1toni
Beiträge: 15241
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: "Display-RPI" per exec-Befehl runter fahren und mit Schaltsteckdose anschalten

Beitrag von udo1toni »

Du musst auf dem RemotePi2 ja noch einen anderen User haben, wie loggst Du Dich mit dem ein?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

filmgucker2
Beiträge: 237
Registriert: 8. Apr 2020 20:59
Answers: 0

Re: "Display-RPI" per exec-Befehl runter fahren und mit Schaltsteckdose anschalten

Beitrag von filmgucker2 »

Ja, auf dem Weg ging es dann. Die Keys konnte ich an meinen anderen user auf dem RemotePi2 schicken. Und als dieser user auf dem
RemotePi2 habe ich es irgendwie geschafft, die authorized_keys in das Verzeichnis des anderen users (dem ohne Passwort) zu kopieren.
Der andere Weg wäre ja auch eine Art Teufelskreis gewesen. Jetzt kann ich meine executeCommandLines auch an den RemotePi2 schicken.
Zum Schluss noch eine klitzekleine Frage. Der user ohne Passwort darf laut sudoers mit visudo ja nur ganz bestimmte Befehle ausführen.
Poweroff, Reboot sind ja kein Problem. Auf dem RemotePi2 gibt es aber noch ein paar (3) Python3 Skripte. Kann ich den passwortlosen user
auch so beschränken, dass er nur diese drei Skripte ausführen darf, nicht jedoch andere Pythons? Wenn ja, was müsste ich in die sudoers dazu
schreiben?
Raspberry Pi 4, OH 4.0.3

Benutzeravatar
udo1toni
Beiträge: 15241
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: "Display-RPI" per exec-Befehl runter fahren und mit Schaltsteckdose anschalten

Beitrag von udo1toni »

Du musst lediglich den kompletten Aufruf angeben (mitsamt Pfad natürlich), Befehle die in sudoers definiert werden müssen exakt so angegeben werden.

Eine Alternative kann auch noch sein, ein Remote Script zu definieren. In der authorized_keys wird ein Script angegeben, welches dann das einzige ist, was der USer über Remote ausführen kann. Man kann dem Script auch noch einen Parameter mitgeben, der dann auf der Remote Maschine ausgewertet werden kann. Das Script auf der Remote Maschine kann so ganz gezielt ganz bestimmte Befehle ausführen. Allerdings ist das Ganze halt auch entsprechend aufwändiger in der Einrichtung.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
udo1toni
Beiträge: 15241
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: "Display-RPI" per exec-Befehl runter fahren und mit Schaltsteckdose anschalten

Beitrag von udo1toni »

Du musst lediglich den kompletten Aufruf angeben (mitsamt Pfad natürlich), Befehle die in sudoers definiert werden müssen exakt so angegeben werden.

Eine Alternative kann auch noch sein, ein Remote Script zu definieren. In der authorized_keys wird ein Script angegeben, welches dann das einzige ist, was der USer über Remote ausführen kann. Man kann dem Script auch noch einen Parameter mitgeben, der dann auf der Remote Maschine ausgewertet werden kann. Das Script auf der Remote Maschine kann so ganz gezielt ganz bestimmte Befehle ausführen. Allerdings ist das Ganze halt auch entsprechend aufwändiger in der Einrichtung.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten