2.9k Aufrufe
Gefragt in Linux von
Hallo Freunde,

wie oben beschrieben funktioniert der automatisierte shutdown unter Raspbian
nicht. In die crontab habe ich folgendes geschrieben:


40 19 * * * pi sudo /sbin/shutdown -r now


Habe das sowohl mit als auch ohne sudo erfolglos probiert.

Unter visudo steht folgendes:


...
Default timestamp_timeout=0
...
pi ALL=(ALL) ALL


Hat jemand eine Idee, was ich falsch gemacht habe?

24 Antworten

0 Punkte
Beantwortet von
Hat jemand eine Idee, was ich falsch gemacht habe?


und wer gibt das passwort ein? du brauchst kein sudo beim cron sondern du trägst das shutdown in die root crontab ein.
0 Punkte
Beantwortet von
Naja, ich habe den root nicht ohne Grund deaktiviert. Also funktioniert
das nur unter root ja?
0 Punkte
Beantwortet von
das hat damit garnichts zu tun.
0 Punkte
Beantwortet von
Naja, ich habe den root nicht ohne Grund deaktiviert. Also funktioniert
das nur unter root ja?
Hallo, klingt logisch;-D
Aber wie ist es damit, siehe deine Frage, wenn du es im Handbetrieb ausführen würdest?
Sprich vom Terminal aus den Raspberry nach einer definierten Zeit herunterfahren lassen?

Gruß

[sub]uname -a
sudo cat /etc/sudoers
sudo cat /etc/sudoers | grep pi[/sub]
0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
"root deaktivieren" bedeutet nur, dass es nicht mehr möglich ist, sich als "root" einzuloggen.

Der cron-daemon läuft bereits mit root-Rechten:

40 19 * * * root /sbin/shutdown -r now


wäre also korrekt.

PS: "-r" führt einen Neustart durch. Wenn der Raspberry runterfahren soll, müsste dann stattdessen "-h" verwendet werden.
0 Punkte
Beantwortet von
das stimmst so nicht. der nicht root kann keine einträge erstellen die dann root für ihn ausführt. wäre ja zu schön. da muss man zumindest den crontab -e per sudo ausführen.
0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
Gut, da kommt es jetzt natürlich darauf an, von welcher crontab wir reden.

Ich meine die /etc/crontab. Und die kann man normalerweise nur mit Superuser-Rechten bearbeite und Einträge werden mit Superuser-Rechten ausgeführt.
0 Punkte
Beantwortet von
du brauchst kein sudo beim cron sondern du trägst das shutdown in die root crontab ein.

So würde ich das auch machen.

Also funktioniert
das nur unter root ja?

Nein. Zusätzlich kann jeder Benutzer eine eigene Crontab erstellen, die man dann im Verzeichnis /var/spool/cron/crontabs/ findet. (Wiki.ubuntuusers.de). Trotzdem hast Du Pech, denn für shutdown werden erweiterte Rechte benötigt. Normalerweise verlangt sudo ein Passwort. Du kannst aber in /etc/sudoers genau definieren, für welchen Befehl ein Passwort benötigt wird.

40 19 * * * root /sbin/shutdown -r now

Nur die /etc/crontab erlaubt einen Benutzernamen. Und das ist Distributionsabhängig. Bedenke, das der Job exakt 19:40 Uhr ausgeführt wird. Wenn Du die crontab veränderst, muss cron neugestartet werden. Das kannst Du aber nicht 20:00 Uhr testen :) Den root-Account gibt es auf manchen Systemen gar nicht. Deswegen lieber direkt eintragen in /var/spool/cron/crontabs/root
0 Punkte
Beantwortet von
"root deaktivieren" bedeutet nur, dass es nicht mehr möglich
ist, sich als "root" einzuloggen.


Das war mir nicht bewusst. Bislang dachte ich immer, dass man in
der /etc/sudoers extra den Befehl

pi ALL=(ALL) ALL


angeben muss.

Zusätzlich kann jeder Benutzer eine eigene Crontab erstellen,
die man dann im Verzeichnis /var/spool/cron/crontabs/ findet.
(Wiki.ubuntuusers.de).


Den Artikel habe ich mir auch zu Gemüte geführt, habe allerdings
auch gelesen, was helleseher geschrieben hat(
Trotzdem hast
Du Pech, denn für shutdown werden erweiterte Rechte benötigt.
Normalerweise verlangt sudo ein Passwort.
).

Du kannst aber in /etc/sudoers genau definieren, für welchen
Befehl ein Passwort benötigt wird.


Meinst du so?

Cmnd_Alias SHUTDOWN='sudo /sbin/shutdown -r now'

Probier ich aus :)

Bedenke, das der Job exakt 19:40 Uhr ausgeführt wird. Wenn
Du die crontab veränderst, muss cron neugestartet werden. Das
kannst Du aber nicht 20:00 Uhr testen :)


Was meinst du mit dem letzten Satz? Wenn ich cron sofort neustarte
(was mir bis jetzt auch unbekannt war) und statt 19:40 20:00
eintrage, sollte das doch funktionieren.
0 Punkte
Beantwortet von
Au ja, ich stelle fest, dass du wirklich eine Lösung suchst;-D


[sub]poweroff[/sub]
...