Raspberry Pi OS Restart

Begonnen von klaus.schauer, 02 Januar 2014, 12:47:05

Vorheriges Thema - Nächstes Thema

klaus.schauer

Wie startet man Linux innerhalb von Fhem beim Raspberry Pi neu?

Shell-Befehle wie
$cmd = '/usr/local/bin/gpio -p read ' . $adr;
$val = `$cmd`;

funktionieren. Aufrufe wie
$cmd = 'sudo /sbin/shutdown -r now';
$cmd = `$cmd`;

$cmd = 'sudo shutdown -r now';
$cmd = `$cmd`;

$cmd = 'shutdown -r now';
$cmd = `$cmd`;

aber nicht.

Fhem wurde unter der Kennung 'pi' installiert.

KaiK

"sudo reboot" sollte es tun!
FHEM auf Raspberry Pi, HM-CFG-LAN, 3x HM-CC-RT-DN
Testbed: Arduino Mega 2560 mit Config. Firmata als Sensor/Aktuator

rudolfkoenig

shutdown/reboot darf nur von root ausgefuehrt werden, und sudo verlangt vermutlich nach einem Passwort.

Ich wuerde versuchen in den sudoers Datei pi fuer shutdown ohne Passwort berechtigen, weiss aber nicht, ob/wie das geht. Alternativ dem shutdown ein root s-bit geben, dann kann jeder lokale Benutzer das Geraet herunterfahren.

chris1284

man kann meine ich auch das pw an den befehl übergeben.

ist schon lange her das ich es mal brauchte, aber google hat die antwort:
http://stackoverflow.com/questions/11955298/use-sudo-with-password-as-parameter

klaus.schauer

Zitat von: chris1284 am 02 Januar 2014, 17:47:38
man kann meine ich auch das pw an den befehl übergeben.

ist schon lange her das ich es mal brauchte, aber google hat die antwort:
http://stackoverflow.com/questions/11955298/use-sudo-with-password-as-parameter
Ich habe zwei Varianten aus
http://www.pro-linux.de/kurztipps/2/1391/shutdown-fuer-unprivilegierte-benutzer.html
probiert: "/etc/shutdown.allow" und " /etc/sudoers". Mit
$cmd = 'sudo /sbin/shutdown -ar now';
$cmd = `$cmd`;

bzw.
$cmd = 'sudo /sbin/shutdown -r now';
$cmd = `$cmd`;

wird shutdown gestartet, aber nicht ausgeführt, sondern liefert im LOG:
sudo: no tty present and no askpass program specified

juppzupp

Welche distribution läuft denn auf dem raspi?
'Blinde' Idee : häng ein > /dev/null 2>&1  hinter dein Kommando.

Hans Franz

Zitat von: klaus.schauer am 03 Januar 2014, 09:37:16
sudo: no tty present and no askpass program specified
Moin,
Ich denke, sudo erfordert immer die Eingabe eines Passworts, egal welcher Befehl folgt.
Nimm doch Rudis Vorschlag mit dem s-Bit:
chmod u+s /sbin/shutdown
und lass das sudo im script weg.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

juppzupp

nicht auf den raspian images.

pi@fhem ~ $ sudo shutdown -k now

Broadcast message from root@fhem (pts/0) (Fri Jan  3 14:46:16 2014):

The system is going down to maintenance mode NOW!

Shutdown cancelled.
pi@fhem ~ $

Hans Franz

Zitat von: juppzupp am 03 Januar 2014, 14:48:44
nicht auf den raspian images.

stimmt.
Liegt wohl an der Zeile:
pi ALL=(ALL) NOPASSWD: ALL
in /etc/sudoers



Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

micomat

Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

klaus.schauer

Zitat von: juppzupp am 03 Januar 2014, 11:37:38
Welche distribution läuft denn auf dem raspi?
'Blinde' Idee : häng ein > /dev/null 2>&1  hinter dein Kommando.
1. Raspbian
2. Probiere ich aus. Ich suche eine Lösung, die möglichst universell ist und auch von wenig sattelfesten Linux-Anwendern ausgeführt werden kann. M. E. ist es nicht hilfreich, wenn die Nutzer eines Fhem-Moduls noch etliche Linux-Einstellungen vornehmen müssen, damit es dann nach etlichen Forumsanfragen läuft.

juppzupp

Dafür sind die distries gerade bei priv escalation aber schon ganz schön unterschiedlich......hohes Ziel  ;)

koldomon

der user ist doch "fhem" auf dem RasPi und nicht "pi"

und er sudoers muss ein Eintrag für "fhem" und NOPASSWD rein, dann sollte auch der sudo reboot als User "fhem" möglich sein.
OdroidC1 -> fhem
CUNO -> FS20
CUL -> HomeMatic
TCM310 -> enOcean
DUOFERN -> rademacher

samseo

Zitat von: Hans Franz am 03 Januar 2014, 11:58:35
Moin,
Ich denke, sudo erfordert immer die Eingabe eines Passworts, egal welcher Befehl folgt.
Nimm doch Rudis Vorschlag mit dem s-Bit:
chmod u+s /sbin/shutdown
und lass das sudo im script weg.

Gruß
Hans
ich weiß ist zwar schon länger her aber danke das hat geholfen  :D :D :D ;D ;D ;D ;D ;D über glücklich

LHBL2003

Hi ich habe folgendes gemacht:


define Reboot dummy
attr Reboot webCmd on:off
define sw_ll_off notify Reboot:off {system('chmod u+s /sbin/shutdown');;}

Ich bekomme beim Klick auf off folgenden logeintrag

chmod: changing permissions of '/sbin/shutdown': Operation not permitted

Muss ich noch irgend etwas konfigurieren? Ist mein erster Shell Befehl aus fremden heraus.