Herunterfahren der Nas via ssh/batch

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

allnas

Benutzer
Registriert
16. Dez. 2013
Beiträge
22
Reaktionspunkte
0
Punkte
0
Hi,:)
weil schon öfter die Frage nach einer Möglichkeit aufgekommen, wie sich die Nas über ein Batch Script Herunterfahren lässt, habe ich mal eine Anleitung dazu erstellt!

1. Man benötigt die Kommandozeilenversion von Putty, welches plink.exe heißt:
http://the.earth.li/~sgtatham/putty/0.63/x86/plink.exe

2. Man erstellt zwei Textdokumente und nennt Sie befehle.txt und herunterfahren.txt

3. In die Datei Herunterfahren.txt schreib man folgende Zeile
plink -ssh -pw "Passwort" root@192.168.168.100 -m befehle.bat
"Passwort" müsst ihr durch euer root Passwort ersetzen und die Ip-Adresse ändern, root Passwort = admin Passwort
Anschließend als herunterfahren.bat abspeichern!

4.In die befehle.txt schreibt ihr:
shutdown -h now
Anschließend als befehle.bat abspeichern!

5.Beachtet das der ssh Zugang in eurer Diskstation aktiviert ist und sich die herunterfahren.bat, befehle,bat und die plink.exe in einem Ordner befinden!

6.Wenn ihr jetzt einen Doppelklick auf die Herunterfahren.bat macht fährt eure Diskstation herunter!

7.Viel Spaß, bei Fragen könnt ihr diese gerne hier stellen!

Gruß
Simon
 
Sollte auch ohne das Bat File (befehle.bat -> was übrigens auch nicht .bat heissen muss/sollte) gehen indem Du das Kommando einfach hinten anhängst. Wenn Du brav mit Keys arbeitest musst Du auch nicht Dein Passwort verewigen (Pageant) ;-)
 
Wie funktioniert Pageant?
 
In meiner Batch-Datei für das Ausschalten der DS steht lediglich folgender Befehl:
Rich (BBCode):
plink -load diskstation /sbin/poweroff
Voraussetzungen, dass das funktioniert:
- ssh - Zugang mit Schlüssel (Passwortzugang muss nicht unbedingt abgeschaltet sein)
- in putty eine Session speichern mit dem Namen 'diskstation'

plink verwendet die putty-Session 'diskstation' und führt damit den dahinterstehenden Befehl aus.

Wenn man den ssh-Zugang mit Schlüssel nicht einrichten möchte, lautet der Befehl
Rich (BBCode):
plink -load diskstation -pw StrengGeheim /sbin/poweroff
In diesem Fall muss in der putty-Session auch der Benutzername gespeichert sein (Host Name or IP Address: root@192.168.xxx.xxx)
 
Hallo,
nachdem ich heute das Update auf den DiskStation Manager 6.0 installiert habe, funzt das herunterfahren Script leider nicht mehr.
Ich erhalte die Fehlermeldung:
Access denied
root@192.168.178.39's password:

Ich kann jedoch kein Passwort im Dos-Fenster eingeben.

Da ich nur das Update installiert und sonst keine Änderungen am Setup vorgenommen habe, muss es irgendwie mit dem Update zu tun haben.

Hat jemand einen Tipp?

Vielen Dank und Grüße,
Thomas
 
Ich habe das selbe Problem. Inzwischen habe ich schon Tipps gefunden das man mit "sudo" arbeiten soll. Allerdings weiß ich nicht wo ich "sudo" in der im ersten Beitrag genannten Zeile einsetzen muss.
 
Man kann sich ohne ssh key nicht mehr als root anmelden.

Also als admin anmelden mit vi die Datei /etc/sudoers öffnen und folgendes am Ende einfügen: USER ALL = NOPASSWD: ALL speichern dann mit :wq!


Probiert dann mal in der batch folgendes:
sudo su -
shutdown -h now
 
Danke für deine Antwort. :) Den SSH-Key übergebe ich in meiner Batch ja per "hostkey". Daran sollte es nicht liegen. Da ich mich mit Linux bzw. sudo nicht auskenne, frage ich mich noch ob die Zeile die du genannt hast nicht den Nachteil hat das nach dieser Änderung im Grunde jeder Benutzer ohne Probleme via sudo erhöhte Rechte anfordern kann. Gibt es nicht einfach die Möglichkeit dem Root Benutzernamen ein Passwort zuzuweisen?

[EDIT]
So sieht meine Batch aus:
Code:
plink.exe -batch -hostkey 01:23:45:67:89:01:23:45:67:89:01:23:45:67:89:01 -ssh root@192.168.123.123 -P 1234 -pw passwort poweroff
 
Zuletzt bearbeitet:
..... frage ich mich noch ob die Zeile die du genannt hast nicht den Nachteil hat das nach dieser Änderung im Grunde jeder Benutzer ohne Probleme via sudo erhöhte Rechte anfordern
Da hast du vollkommen recht. Dieser Eintrag hebelt das gesamte Sicherheitskonzept aus. Damit kann jeder User root-Rechte erhalten, und das auch noch ohne dass er dazu ein Passwort braucht!
Man kann beispielsweise einer Usergruppe das Ausführen eines einzelnen Befehls ohne Passwort erlauben:
Rich (BBCode):
 %admin     ALL = NOPASSWD: /sbin/poweroff
Das gleiche geht auch für einen einzelnen User:
Rich (BBCode):
admin      ALL = NOPASSWD: /sbin/poweroff
 
Nach viel Lesen und ausprobieren habe ich folgende (für mich) funktionierende Lösung gefunden die ohne herumbasteln in den Synology-Konfigurationsdateien auskommt.

  • Befehl ausführen (via SSH auf der Synology einloggen):
    Code:
     plink.exe -hostkey 01:23:45:67:89:01:23:45:67:89:01:23:45:67:89:01 -ssh <adminuser>@192.168.123.123 -P 1234
  • Passwort des Admin-Benutzers eingeben.
  • Befehl ausführen (wechselt zum Root-Benutzer):
    Code:
    sudo -i
  • Passwort des Admin-Benutzers eingeben.
  • Befehl ausführen (Passwort des Root-Benutzers ändern):
    Code:
    synouser --setpw root <Passwort>
  • Befehl ausführen (Root-Benutzer abmelden):
    Code:
    logout
  • Befehl ausführen (Admin-Benutzer abmelden):
    Code:
    logout

Danach funktioniert das Herunterfahren der Synology via
Code:
plink.exe -batch -hostkey 01:23:45:67:89:01:23:45:67:89:01:23:45:67:89:01 -ssh root@192.168.123.123 -P 1234 -pw passwort poweroff
wieder wie gewohnt. :)
 
Hallo,
bei mir funktioniert auch mit DSM 6.0 immernoch
plink.exe DS1513 poweroff
root login per Key, siehe Wiki, allerdings hat der private key kein Passwort bekommen.
In putty eine gespeicherte Verbindung mit dem Namen DS1513, Aoto-login username root, Private key file for authentication ->Pfad zum Keyfile.
Da WinSCP auch gespeicherte Verbindungen von putty zu importieren funktioniert der root login ebenso unproblematisch.

Gruß Götz
 
Nach viel Lesen und ausprobieren habe ich folgende (für mich) funktionierende Lösung gefunden die ohne herumbasteln in den Synology-Konfigurationsdateien auskommt.
Damit hast du das Sicherheitskonzept mit sudo ausgeschaltet, weil sich nun root wieder direkt anmelden kann (gleicher Zustand wie vor DSM 6.0). Da würde ich ein Login per Key, wie hier und hier beschrieben vorziehen.
 
Damit hast du das Sicherheitskonzept mit sudo ausgeschaltet, weil sich nun root wieder direkt anmelden kann
solange admin PW und root PW identisch sind würde ich nicht von Sicherheitskonzept sprechen bei sudo ;-) Kommt man als admin rein probiert man einfach su mit dem admin PW und ist root
 
Eigentlich will ich hier keine Diskussion über den Sinn von sudo starten (es gibt schon viele davon im Netz).
Es soll Linux-Distributionen geben, die standardmässig die gleiche sudo Konfiguration haben, wie es nun offensichtlich bei DSM 6.0 auch der Fall ist.
 
Es soll Linux-Distributionen geben, die standardmässig die gleiche sudo Konfiguration haben, wie es nun offensichtlich bei DSM 6.0 auch der Fall ist.
jein ;-)
Bezogen auf sudo ja, aber nein weil root PW und PW des admin Users nicht identisch sind. Wenn root PW und Admin PW gleich sind, mach ich einfach su + AdminPW und bin an sudo vorbei root

Ich sage nicht, dass sudo grundsätzlich ein Problem ist, sondern mehr, dass es Sicherheit "vorgaukelt" wo kein Mehr an Sicherheit ist. Wovor soll ein unterbundender root Login schützen? Genau vor den Schäden, die eine mögliche Kompromittierung des root Accounts zur Folge hätte. Wenn nun aber der admin Account mittels sudo uneingeschränkt alles darf und das noch ohne Passworteingabe. wo ist denn der Unterschied zu einem root Login? Zudem müssen wir, um im Vergleich zum root Login fair zu bleiben, voraussetzen, dass der admin Account geknackt wird. Sprich das Passwort wurde geknackt. Dann bietet nichtmal sudo + Passwort ein Mehr an Schutz
 
jein ;-)
Bezogen auf sudo ja, aber nein weil root PW und PW des admin Users nicht identisch sind.....
Das trifft sicher teilweise zu. Die (Linux)welt ist aber vielfältig:
Unter Ubuntu wird in der /etc/sudoers standardmäßig allen Mitgliedern der Gruppe [2] sudo erlaubt (vor Ubuntu 12.04 admin), zum Benutzer root zu werden und damit Rootrechte zu erhalten. Der oder die bei der Installation angelegten Benutzer gehört standardmäßig der Gruppe sudo an
Quelle
 
Gerade bei Ubuntu war es früher so, dass kein root PW gesetzt wurde bei der Installation. Damit war es auch nicht möglich su+rootPW als Admin zu machen. Heutzutage deaktiviert Ubuntu den root afaik komplett, damit ist auch kein su+rootPW mehr möglich. Von daher ist dann sudo schon eine Art Schutz. Das ist aber beim DSM nicht so
 
Das gleiche geht auch für einen einzelnen User:
Rich (BBCode):
admin      ALL = NOPASSWD: /sbin/poweroff

Ich muss leider nochmal nachfragen, ich bin an der Stelle nicht fit: Wo gebe ich diese Codezeile von dir ein? Wenn ich mich mit putty über SSH mit der DS verbunden habe? Dann sagt er mir nämlich, dass er den Befehl nicht kennen würde.
Danke!
 
Bist Du als root eingeloggt? Welche DSM-Version nutzt Du?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat