Synology NAS ausschalten

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

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

Synology NAS ausschalten

Beitrag von filmgucker2 »

Hallo,

meinen Synology NAS kann ich mittlerweile einschalten über openhab. Das Ausschalten scheint aber nicht so
trivial zu sein. Es gibt da eine Anleitung im Englischen Forum. Man muss wohl über SSH ein wenig im System des
NAS herumbasteln und dann über openhab die ssh Verbindung herstellen.
Den user auf der Synology "openhab" hab ich hingekriegt. Der muss dann wohl den Befehl zum shutdown über executecommandline
geben. Darf aber wohl auf dem NAS nur "root". Ich hab noch einen user mit meinem Benutzernamen, der das mit "sudo" wohl auch
in putty hinkriegt. Die Anleitung sagt, ich müsse die sudoers Datei entsprechend ändern. Aber die ist (neueste Firmware 7....) mit
vi nur im Lesemodus zu öffnen, auch wenn ich mit meinem Benutzerkonto als "root" in ssh angemeldet zu sein scheine.
Fragen:
a) weiß jemand, wie ich die sudoers Datei bearbeiten kann?
oder b)
wie ich über einen execute commandline Befehl etwa mit meinem Benutzernamen (der ja wohl die entsprechenden Rechte hat) und dem Passwort dazu dem NAS den shutdown Befehl geben kann?

VG
Filmgucker2
Raspberry Pi 4, OH 4.0.3

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

Re: Synology NAS ausschalten

Beitrag von udo1toni »

Der Punkt ist: shutdown benötigt immer root-Rechte, egal auf welchem GNU/Linux System (oder auch freeBSD, selbst unter Windows ist das "eigentlich" so)

Der "korrekte" Weg ist, einen Extra User auf dem Zielsystem anzulegen und dafür zu sorgen, dass dieser User den shutdown Befehl ausführen darf.
Das geht auch auf dem Synology System.
Die "sichere" Variante ist, den User für die Anmeldung mit einem Private/Public Key Paar auszustatten und den User die Ausführung nur dieses einen Befehls zu erlauben.
Gewöhnlich wird man das über sudo und die sudoers Datei erledigen, ich weiß aber nicht, ob sudo bei der Synology installiert werden kann. Damit hast Du aber eine konkrete Möglichkeit der Recherche ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

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

Re: Synology NAS ausschalten

Beitrag von filmgucker2 »

Sudo gibt es wohl auf dem Ds218j, den ich habe. Die Sudoers Datei ist auch da. Wenn ich mit meinem
Benutzernamen, der root Rechte haben soll mit ssh reingehe, zeigt er auch "root@..."
Und root soll doch angeblich alles können. Und trotzdem öffnet er mir die sudoers Datei nur mit Leserechten...
Und da müsste ich dann meinen User openhab eintragen, welcher das Recht hat, den shutdown auszuführen...
Das mit den Keys ist auch im Howto beschrieben, und wird natürlich eingerichtet.
Aber diese verdammte sudoers Datei...
Raspberry Pi 4, OH 4.0.3

eiGelbGeek
Beiträge: 226
Registriert: 11. Aug 2019 06:39
Answers: 4

Re: Synology NAS ausschalten

Beitrag von eiGelbGeek »

Puh ich weiß nicht ob das so gut ist, das du selbst so tief im System rum bastelst.
Nebenbei sehe ich den Sinn auch nicht.... ja es wird Strom sparen sein.... aber mache mal die Rechnung das deine Festplatten durch das ständige Hoch und Runterfahren stärker belastet werden und somit den Geist eher aufgeben. Gefahr von Datenverlust ist hoch und neue Platte gegen über Stromersparnis wird sich nicht rechnen.

Fazit: 24/7 Laufen lassen, das System nicht für Angriffe öffnen :!:

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

Re: Synology NAS ausschalten

Beitrag von udo1toni »

Die sudoers Datei bearbeitet man nicht einfach so, dazu gibt es das Kommando visudo.

Und selbstverständlich, muss auch visudo mit sudo ausgeführt werden, also

Code: Alles auswählen

sudo visudo
Dann kannst du den User openhab (wenn er so heißen soll) hinzufügen und ihm die benötigten Rechte geben, indem Du unterhalb von root das hier einfügst:

Code: Alles auswählen

openhab ALL=(ALL:ALL) NOPASSWD /sbin/shutdown
Anschließend verlässt Du den Editor mit Speichern. Wenn Du das Format nicht korrekt verwendet hast, wird visudo das Speichern verweigern. Auf diese Weise ist es nahezu ausgeschlossen, dass Du durch eine fehlerhafte sudoers Datei den Befehl nicht mehr ausführen kannst.

Wenn du soweit bist, dass Du als user openhab in der bash shutdown mit sudo ausführen kannst, also

Code: Alles auswählen

sudo shutdown
und nicht nach einem Passwort gefragt wirst, kannst Du daran gehen, das Ganze über ein ssh command zu erledigen.
Wie gesagt, Schlüsselpaar erzeugen, public key auf der Synology hinterlegen (kommt gewöhnlich in die Datei authorized_keys im .ssh Verzeichnis des Users), auf dem openHAB-System den private Key hinterlegen (am besten im richtigen Verzeichnis - dann muss man das beim verbinden nicht mit angeben) und die Verbindung testen

Ich habe das hier viewtopic.php?p=49753#p49753 schon mal recht ausführlich beschrieben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

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

Re: Synology NAS ausschalten

Beitrag von filmgucker2 »

@udo1toni:
Ich schaue mir den Topic gleich mal an. Aber visudo hat mein synology nicht. "Command not found"...

@ eiGeldGeek
Da hast sicher prinzipiell recht. Aber mein Synology steht im Wohnzimmer und muss da auch stehen.
Wenn er ständig an ist, klötert und rötelt er ständig herum, und das stört eben...
Schöner wär's halt, wenn er nur an und aus geht, wenn man ihn tatsächlich braucht.

@udo1toni:
Ich glaube ich hab's: hab mir auf dem Synology im Verzeichnis sudoers.de eine andere sudoers Datei angelegt.
Dann brauchte ich nicht mit visudo herumfummeln :D . Schlüssel generiert und kopiert. Rechte gesetzt etc.
Auf meinem Pi in der Konsole kann ich eingeben: ssh openhab@nas sudo poweroff. Und schon fängt er an zu rumpeln
und fährt runter.
Jetzt nur noch eine Kleinigkeit: was muss im Skript mit der executecommandline drinstehen? Das in der englischen Anleitung
klappt so nicht. Sinnigerweise hat der Autor zum Schluss geschrieben, da hätte sich die Syntax geändert. Aber wie, bleibt sein
Geheimnis...

VG
Filmgucker2
Zuletzt geändert von filmgucker2 am 17. Dez 2022 00:13, insgesamt 1-mal geändert.
Raspberry Pi 4, OH 4.0.3

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

Re: Synology NAS ausschalten

Beitrag von udo1toni »

Wenn visudo nicht zur Verfügung steht, kannst Du die Datei natürlich auch direkt bearbeiten.
Allerdings musst Du das unbedingt mit sehr spitzen Fingern machen.
Am besten prüfst Du vorher in einem Synology Forum, ob es noch etwas zu beachten gibt, wäre doof, wenn Du Dir das System durch einen Fehler bei dieser Operation am offenen Herzen zerschießt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

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

Re: Synology NAS ausschalten

Beitrag von filmgucker2 »

Ich glaube ich hab's: hab mir auf dem Synology im Verzeichnis sudoers.d eine andere sudoers Datei angelegt.
Dann brauchte ich nicht mit visudo herumfummeln :D . Schlüssel generiert und kopiert. Rechte gesetzt etc.
Auf meinem Pi in der Konsole kann ich eingeben: ssh openhab@nas sudo poweroff. Und schon fängt er an zu rumpeln
und fährt runter.
Jetzt nur noch eine Kleinigkeit: was muss im Skript mit der executecommandline drinstehen? Das in der englischen Anleitung
klappt so nicht. Sinnigerweise hat der Autor zum Schluss geschrieben, da hätte sich die Syntax geändert. Aber wie, bleibt sein
Geheimnis...
Raspberry Pi 4, OH 4.0.3

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

Re: Synology NAS ausschalten

Beitrag von udo1toni »

Um Dich mit key anzumelden, braucht es gewöhnlich den -i Parameter, also

Code: Alles auswählen

ssh nas -i openhabid_rsa
wenn der key openhabid_rsa heißt und sich in einem Verzeichnis .ssh im Verzeichnis $OPENHAB_HOME befindet. $OPENHAB_HOME zeigt gewöhnlich auf /usr/share/openhab/. Und natürlich funktioniert das nur als User openhab, denn in dessen ssh-Verzeichnis befindet sich der Schlüssel (Verzeichnis und Dateien darin müssen dem User openhab gehören und müssen als Berechtigung nix für Gruppe und Andere hinterlegt haben, also für das Verzeichnis 700, für die Dateien 600 als Modus setzen (oder u+rw og-rwx für die Dateien und u+rwx og-rwx für das Verzeichnis)

In openHAB kannst Du aus einer Rule heraus executeCommandLine() verwenden, die Zeile sieht dann so aus:

Code: Alles auswählen

executeCommandLine("ssh", "nas", "-i", "openhabid_rsa", "sudo", "poweroff")
Heißt also, Du musst die Zeichenkette, die Du als Befehl sendest, in lauter Teilstrings zerlegen, so dass die Teilstrings keine Leerzeichen mehr enthalten.
Das ist in der Doku auch so beschrieben: https://www.openhab.org/docs/configurat ... ec-actions

Oder Du verwendest das exec Binding, dann kannst Du den kompletten Befehl im Thing hinterlegen. Dafür musst Du ihn dann allerdings in der whitelist eintragen, und zwar exakt so, wie im Thing angegeben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

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

Re: Synology NAS ausschalten

Beitrag von filmgucker2 »

Openhabian - openhab...Ob ich das je verstehe?
Heute morgen ging es weiterhin von der Konsole aus, aber nicht mit executeCommandline. Und das
dürfte wohl an den Berechtigungen liegen...
Du schriebst:
"Und natürlich funktioniert das nur als User openhab, denn in dessen ssh-Verzeichnis befindet sich der Schlüssel (Verzeichnis und Dateien darin müssen dem User openhab gehören und müssen als Berechtigung nix für Gruppe und Andere hinterlegt haben, also für das Verzeichnis 700, für die Dateien 600 als Modus setzen (oder u+rw og-rwx für die Dateien und u+rwx og-rwx für das Verzeichnis)"
In meiner Konsole bin ich "openhabian@openhabian". Wie kriege ich es hin, dass ich dem user openhab diese Rechte gebe?
Es hakt auf der "Zielgeraden" in deiner Anleitung. Auf dem Pi habe ich den Befehl sudo -u openhab mkdir ~/.ssh eingeben und er sagt: cannot create directory ‘/home/openhabian/.ssh’: File exists

Hab ich also schon...

Und bei beim nächsten Schritt sagt er:

Code: Alles auswählen

sudo chmod 600 $OPENHAB_HOME/.ssh/id_rsa
chmod: cannot access '/usr/share/openhab/.ssh/id_rsa': No such file or directory
id_rsa ist übrigens meine Key Datei, die im Verzeichnis home/openhabian/.ssh liegt.
Raspberry Pi 4, OH 4.0.3

Antworten