yavdr 0.3: NAS-System über Menüpunkt wecken (Wake on Lan)

  • Hallo,
    um Energie zu sparen möchte ich mein NAS-System nicht mehr die ganze Zeit laufen lassen sondern am liebsten über einen Menüpunkt per Fernbedienung starten.
    Das (winzig kleine) Script, welches dahinter stecken soll könnte in etwa so aussehen:


    etherwake xx:xx:xx:xx:xx:xx
    sleep 2
    mount -a


    besonder elegant fände ich, wenn man über die Fernbedienung auch einen shutdown-befehl an das NAS-System schicken könnte (ssh?).


    Aber ich weiß weder
    -wie man Menüpunkte selbst erstellt und mit Scripten verknüpft noch wie man
    -dem user "vdr" die rechte für "etherwake" und "mount" einräumt.

    yaVDR 0.6.1, Asrock Q1900M, 2,0 GB, 1TB HD, TeVii S480, Kathrein EXIP 414/E, IKEA Kallax Schränkchen (umgebaut)


  • etherwake xx:xx:xx:xx:xx:xx
    sleep 2
    mount -a

    Wenn Du das Skript vom user vdr aus getestet hast (zum Beispiel via sudo su vdr -c skriptname) sollte es sich über /var/log/vdr/reccmds.conf einbinden lassen.

    besonder elegant fände ich, wenn man über die Fernbedienung auch einen shutdown-befehl an das NAS-System schicken könnte (ssh?).


    Geht auch, aber dazu solltest Du sinnvollerweise ssh mit Zertifikaten (keys) aufsetzen (sonst muss immer ein Passwort angegeben werden).
    Dazu muß der User auf yaVDR, von dem aus das Kommando abgesetzt werden soll (hier vdr) ein Satz Keys bekommen. Da man sich mit vdr nicht anmeldet, ist sudo su vdr eine Möglichkeit die Kommandos abzusetzen.

    Sinnvollerweise setzt man als Anfänger kein Passwort für den private Key, sonst wird man doch wieder nach einem Passwort gefragt und muss weitere Klimmzüge machen, um das zu vermeiden.
    Nach dem obigen Kommando befinden sich im Homedirectory im Folder .ssh des users vdr (/var/lib/vdr/.ssh) die Key-Dateien. Den Inhalt von id_rsa.pub überträgt man auf das NAS System in das entsprechende .ssh Verzeichnis des Nutzers, unter dem das Kommando laufen soll (gg.f /root für Debian like Systeme). Wichtig bei verschiedenen Systemen ist, daß .ssh Folder nicht lesbar für andere sein darf (chmod 700 .ssh) und authorized_keys auch nicht (chmod 600 authorized_keys) Damit sollte man als vdr User dann entweder eine root Shell eröffnen können z.B. sudo su vdr -c "ssh root@my_nas myshutdownscript "


    Aber ich weiß weder
    -wie man Menüpunkte selbst erstellt und mit Scripten verknüpft noch wie man
    -dem user "vdr" die rechte für "etherwake" und "mount" einräumt.


    Früher hätte man das suid Bit für Kommandos eingerichtet, dann liefe das Kommando im Kontext des root users bzw. des Users, dem das Programm gehört. Geht aber heutzutage für Skrite fast gar nicht mehr, denn das reisst in der Regel riesige Sicherheitslücken.


    Viel besser geeignet ist sudo: Man kann bestimmten Nutzern bestimmte Rechte einräumen, mit und ohne Passwortabfrage (siehe man sudo).
    Schlüssel ist die Datei /etc/sudoers. In yaVDR ist die schon mit einem Beispiel gefüllt, hier die letzten 3 Zeilen

    Code
    1. ...
    2. # Added by yavdr-startup, don't remove
    3. vdr ALL=NOPASSWD: /usr/bin/start-xterm
    4. vdr ALL=NOPASSWD: /sbin/reboot

    Das ermöglicht dem User vdr ohne extra nach Passwort gefragt zu werden, die beiden Skripte / Programme zum Starten von xterm oder reboot zu starten. Weitere Feinheiten liest man nach unter man sudoers. Zum Ändern sollte mansudo visudo nehmen, das den File Editiert aber auch beim Speichern die Syntax prüft. Sonst kann es passieren, dass man sich ggf nicht selbst aussperrt (z.B. wenn - wie im Ubuntu Standard - kein Passwort für root gesetzt oder in /root/.ssh/authorized_keys kein Key hinterlegt ist).


    VDR Zooverwalter


    • 1x Ubuntu 12.10 MCP78S [Geforce 8200] Vdr 1.7.22 / 2x Hauppauge WINTV NOVA-T 500 TV Karte PCI intern (=4 DVB-T)

    • 1x Ubuntu 13.04 1xVDR 1.7.28 mit vnsi / DVB-S2 Hauppauge Nova /L4M Twin S2 V 6.2, Unicable

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2, USB TechnoTrend S2-3650 mit CI, HDMI an Philips LCD 47PFL8404 Full HD

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2,Streamdev-client HDMI an Samsung LED 5700-46"

    • 1x yaVDR0.5 testing Asus Eeepc Notebook DVB-S USB TechnoTrend S-2400 HDMI an Samsung LED 5700-40"

    • 1x yavdr05-clone (32bit) Asus Novalite, nur StreamdevClient an No-name TV mit DVI/HDMI

    • [1x yaVDR0.4 MSI MS-7508 K9N2GM, AMD Athlon Dual Core 4850e, Terratec Synergy S2 PCI HD, ALBA TV mit HDMI als Monitor
      sowie weitere Clients

    • XBMC 12.2 via VNSI

    • BoxeeBox

    • AppleTV 2nd (2.2.1 mit Jailbreak und XBMC)

    • miniMac 10.6.6 mit XBMC


  • Mount als User geht mit passender /etc/exports


    Hängt das nicht eher an der Option user(s) in der fstab?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • yavdr 0.4 bringt diese Funktion freundlicherweise mit.


    So gesehen hat sich dieser Thread erledigt.


    Die Antworten haben aber mein Linux-Verständnis verbessert.


    Danke

    yaVDR 0.6.1, Asrock Q1900M, 2,0 GB, 1TB HD, TeVii S480, Kathrein EXIP 414/E, IKEA Kallax Schränkchen (umgebaut)