[Linux] Systemzeit ändern ohne root

scooter010

Commander Pro
Registriert
Sep. 2014
Beiträge
2.902
Sehr geehrtes Forum!

Ich stehe vor dem Problem, dass ich ein Embeddedsystem mit einem Linux unbekannter Distribution eines ausländischen Herstellers betreue. Die exakte Distribution und die Kernelversion ließen sich heraus finden, sind hier aber wohl weniger das Problem bzw. die Lösung. Zugriff erfolgt nur via serieller Schnittstelle, das System/die Schnittstelle ist physisch gegen Zugriff von unberechtigten gesichert.

Kann ich ohne Kenntnis des root-Passwortes und ohne Internet/NTP-Server irgendwie die Systemzeit korrigieren? Eine Demontage des Speichers oder "Hack" des Systems sind nicht im Bereich des Machbaren. Ich finde es nur irgendwie unverhältnismäßig, immer einen Techniker für mehrere 1000€ (Reisekosten, Hotel,...) kommen zu lassen, nur damit dieser das root-Passwort zum Uhr stellen eingibt.

Ist es technisch möglich, ein Linux so anzupassen, dass es einen Dienst/Anwendung (mit root-rechten) gibt, der unpreviligierten Nutzern das Ändern der Systemzeit erlaubt? Wäre ein solcher Dienst/Anwendung in einem "Standard-Linux" aufwendig zu programmieren?

Gruß

P.S.: Es müsste sich um ein ca. 15 Jahre altes Mint oder Fedora handeln.
 
Zuletzt bearbeitet:
Nur durch den DCF77 Empfänger wird die Uhrzeit nicht "richtiger". Aber: Mit dem Empfänger kannst du dann (durch den Techi) einmalig den NTPd konfigurieren lassen, sodass dieser als primäre Zeitquelle eben den Empfänger verwendet. Dies muss aber mit root Rechten passieren, da Uhrzeit eben eine systemweite Einstellung ist wonach sich vieles andere richtet. Daher darf ein unprivilegierter Benutzer dies nicht ändern.
 
Gute Idee, aber leider empfängt man den DCF77 nicht weltweit ;) Derzeit ist die Echtzeituhr Zeitquelle. Würde dies auf den DCF77 umgestellt, hätte ich bei diesem weltweit eingesetzten System ein Problem :)
Eine gewisse zeitliche Varianz (bis zu einer Stunde) ist verträglich. Jedoch ist die Stromversorgung der Echtzeituhr nur für 7 Jahre spezifiziert und ein unerwarteter Ausfall ist eher nicht tolerierbar. Trotzdem finde ich es unverhältnismäßig, den Wechsel eines 5 € Artikels mit mehreren 1000€ zu bepreisen. Man kann wirklich keine "Krücke" programmieren (von der Firma), die Systemrechte besitzt aber jedem User (wie gesagt, Zugriff nur via serieller Schnittstelle, die physisch gesichert ist) den Zugriff auf sich erlaubt?
 
Wie wäre es mit einem Cronjob, der ein Script ausführt, dass die Zeit um das delta korrigiert, das in einer Datei hinterlegt ist und die von einem Nutzer angepasst werden kann.

Weil alles andere halte ich für groben Pfusch, der eventuell sogar die Sicherheit des Systems kompromittiert ...

Ich für meinen Teil würde eine GPS Uhr von einem der Marktführer installieren (Meinberg / Gude)
 
Zuletzt bearbeitet:
scooter010 schrieb:
Gute Idee, aber leider empfängt man den DCF77 nicht weltweit
Dann liefere halt solche relevanten Informationen im Vorfeld bevor du hier die Zeit anderer unnötigerweise verschwendest!
scooter010 schrieb:
Eine gewisse zeitliche Varianz (bis zu einer Stunde) ist verträglich. Jedoch ist die Stromversorgung der Echtzeituhr nur für 7 Jahre spezifiziert und ein unerwarteter Ausfall ist eher nicht tolerierbar.
Wenn von vorn herein die Uhr nur für 7 Jahre spezifiziert ist, dann weiß man doch ab Kaufdatum, dass man sich rechtzeitig um Ersatz kümmern muss oder plant im Vorfeld(!) einen passenden Austausch etc. Alles andere ist mal wieder typischer Raubbau und Pfusch an der Infrastruktur und amateurhaft.
Entweder man kann mit den regelmäßigen Ausfällen leben oder man kümmert sich um Ersatz eben weil ein Ausfall nicht tolerierbar ist. In dem Fall muss man solche Komponenten eben entsprechend redundant und diversitär konzipieren. Das will oft niemand zahlen, dann muss man als Konstrukteur/Designer/Planer/Ingenieur eben darauf hinweisen und der Entscheider muss dann damit leben und eben die Konsequenzen tragen. Wenn diese lauten: Regelmäßiger Besuch eines Techis: Tja, dann ist dies eben so.
scooter010 schrieb:
Trotzdem finde ich es unverhältnismäßig, den Wechsel eines 5 € Artikels mit mehreren 1000€ zu bepreisen. Man kann wirklich keine "Krücke" programmieren (von der Firma), die Systemrechte besitzt aber jedem User (wie gesagt, Zugriff nur via serieller Schnittstelle, die physisch gesichert ist) den Zugriff auf sich erlaubt?
Dies ist aber nun einmal leider so. Der Hersteller gibt eben Garantie darauf, dass die Echtzeituhr 7 Jahre richtig läuft, also muss dies entsprechend auch geprüft werden etc. Dann will er natürlich auch noch etwas verdienen und wenn im damaligen Kauf- & Wartungsvertrag eben drin steht, dass der Nutzer/Käufer (sprich eure Firma) eben keine vollen Rechte bekommt und Wartungs- & Reparaturarbeiten nur vom Hersteller durchgeführt werden sollen: Ja, ist blöd aber nicht zu ändern. Man kann daraus lernen für die nächsten Beschaffungen.

Hat das Embedded System keinerlei Netzwerk? Falls doch: Server mit 2 NICs oder Appliance beschaffen, eine Richtung Internet zwecks Sync mit öffentlich erreichbaren NTP-Servern und zweite NIC ist mit dem Embedded-Gerät verbunden und stellt diesem so per NTP Protokoll die Zeit bereit. Zugriff entsprechend auf diesem System dann per Firewall absichern. Backups anlegen und schon bei Beschaffung eine Migration und Disaster Recovery Strategie ausarbeiten für den Fall, dass dieses System auch irgendwann ausfällt.
Oder eben wie schon vorgeschlagen: Ein sonstwie geartetes System hat die aktuelle Uhrzeit und teilt z.B. per Cronjob dies regelmäßig irgendwie per serieller Konsole dem anderen System mit. Möglich wäre eine Abfrage zwischen embedded-Uhrzeit und "korrekter" Uhrzeit, Berechnung des Delta und in Datei schreiben.
Ein zweiter Cronjob auf dem embedded prüft dann ebenfalls per Cronjob mit root Rechten diese Datei, liest das Delta aus, berechnet daraus die aktuelle Uhrzeit und setzt die entsprechende Uhrzeit im OS.
Selbst diesen Cronjob müsste aber trotzdem der Hersteller einrichten, da ihr ja wie gesagt keine administrativen Rechte habt. Ob der Hersteller solche (fremden) Scripte überhaupt einrichten kann oder will, steht auf einem anderen Blatt. Vermutlich weiß dieser bzw dessen Techniker idR auch nur die grundlegenden Kommandos, Hauptsache deren Anwendung läuft. Von dem OS unten drunter wissen oft genug nur die etwas, die solche Systeme mal zusammen geschustert haben ;)
 
Y-Chromosome schrieb:
Wie wäre es mit einem Cronjob, der ein Script ausführt, dass die Zeit um das delta korrigiert, das in einer Datei hinterlegt ist und die von einem Nutzer angepasst werden kann.

Weil alles andere halte ich für groben Pfusch, der eventuell sogar die Sicherheit des Systems kompromittiert ...

Ich für meinen Teil würde eine GPS Uhr von einem der Marktführer installieren (Meinberg / Gude)

Danke. Das wäre eine brauchbare Option, auch wenn Softwaresicherheit hier irrelevant ist. Es gibt nur eine Schnittstelle wo Benutzerrechte relevant sind und die ist physisch geschützt und darauf kann nicht unbemerkt zugegriffen werden. Es gab ja seit Beschaffung keine Updates. Wenn jemand irgendwie Zugriff erlangt, ist es eh offen wie ein Scheunentor. So ist es nunmal bei Steuerungsgeräten.
Ich habe mich geirrt, es ist nichtmal ein Linux, es ist ein Unix, Solaris um genau zu sein.

GPS-Uhr wäre auch eine gute Option, jedoch gibt es keine freie Schnittstelle, an die ich diese anschließen könnte. Hardwareanpassungen kosten aufgrund von regulativen und administrativen Vorgaben auch in jedem Fall mehr als die paar 1000 € die der Techniker kostet.
Es kann nur über geringfügige Softwareanpassungen gehen, die eine Neuabnahme nicht erforderlich machen.

Das mit den Cronjobs werde ich mal mitnehmen. Das scheint mir brauchbar. Bei jedem Start, prüfe Datei x. Wenn da, lade/setze Date/Time aus datei und lösche die Datei; danach und starte neu.
 
scooter010 schrieb:
Jedoch ist die Stromversorgung der Echtzeituhr nur für 7 Jahre spezifiziert und ein unerwarteter Ausfall ist eher nicht tolerierbar.
Höh? In dem offensichtlich uralten Rechner sind 1000 andere Teile verbaut, die in den 7 Jahren genauso ausfallen können und du machst dir ausgerechnet Sorgen um die Uhr? Hallo? "Ausfall ist eher nicht tolerierbar" schreibst du, aber der Rechner ist mangels Kommunikationsmöglichkeiten scheinbar weder aus der Ferne prüfbar noch redundant ausgelegt, um sich wenigstens intern gegen einige Fehlervarianten abzusichern. Anspruch und Umsetzung scheinen da so rein gar nicht zusammen zu passen.
.
scooter010 schrieb:
P.S.: Es müsste sich um ein ca. 15 Jahre altes Mint oder Fedora handeln.
...
Ich habe mich geirrt, es ist nichtmal ein Linux, es ist ein Unix, Solaris um genau zu sein.
Und was für Hardware genau? Könnte noch Sparc-basiert sein. Da steckt vermutlich ein M48T02 o.ä. als RTC inklusive (ins Plastikgehäuse eingeschweißter) Backupbatterie drin. Das Ding wechselt man wenn es ausfällt und gut. In Rechnern, die ständig in Betrieb sind, also Netzstrom haben, halten die übrigens VIEL länger. I.d.R. überleben sie unter solchen Betriebsbedingungen den Rechner deutlich und sind deshalb oft auf die Platine gelötet, also nicht trivial wechselbar. So ein Chip kostet 10 bis 20$.

BTW: Hast du __ausprobiert__, was der Rechner beim Neustart tatsächlich tut, wenn die Batterie leer ist? Im Sparc-Umfeld gibts viele Boards, die dann gar nicht mehr das OS booten sondern sich nur übers kaputte NVRAM beschweren. Irgendwelche "schlauen Sachen" im Bootprozess des OS, um die Systemzeit "so ungefähr" wiederherzustellen, würden dann ggf. gar nicht erst anlaufen.
 
Zuletzt bearbeitet:
Ohne Root-Rechte können Nutzer zwar nicht die Systemzeit ändern, aber die Zeit, die ihre eigenen Prozesse sehen. Siehe datefudge / faketime.

scooter010 schrieb:
Zugriff erfolgt nur via serieller Schnittstelle
scooter010 schrieb:
GPS-Uhr wäre auch eine gute Option, jedoch gibt es keine freie Schnittstelle, an die ich diese anschließen könnte.
Hä? Also gibt es eine nutzbare serielle Schnittstelle oder nicht?

scooter010 schrieb:
Ich finde es nur irgendwie unverhältnismäßig, immer einen Techniker für mehrere 1000€ (Reisekosten, Hotel,...) kommen zu lassen, nur damit dieser das root-Passwort zum Uhr stellen eingibt.
Und warum muss der Berg zum Propheten kommen und nicht der Kunde das defekte Teil einfach einschicken? Sofern ein Fernzugriff, der die ominöse serielle Schnittstelle nutzt, nicht in Frage kommt.
 
Zurück
Oben