ubuntuusers.de

C-Programm in Shell nach Systemstart - Plötzlich Anmeldebildschirm

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

R2woD2wo

Anmeldungsdatum:
5. Mai 2016

Beiträge: 137

Habe mir hier ein Logging-Tool für Nachrichten (quasi Tagebuch ) programmiert.

Nutze es bereits seit mehreren Jahren problemfrei.

Einzig die Dateien werden schön langsam groß (wobei die größte CSV-Datei nicht größer ist als 47kB)

Seltsam: Manche der Log-Dateien sind als ausführbar deklariert - obgleich alle einheitlich einfach via fopen vom C-Programm aus angelegt.

Spuki: In letzter Zeit geschah es, dass ich bei zeitnaher Anwendung nach Systemstart/-anmeldung plötzlich aus der kompletten Oberfläche geschmissen wurde - und vor dem Anmeldebildschirm saß.

Wieder angemeldet, waren alle Anwendungen geschlossen (z.B. Guake aus dem raus ich meine C-Programme starte).

S Beste: Nicht reproduzierbar. Meistens funktionierts wie gewohnt. Benutze ich mein Tagebuch später erneut, bis dato nie Abstürze.

Habe nun von Hand via chmod 666 *.dat die Logdateien wieder in Sollzustand gebracht.

Hoffe das war der Grund für das seltsame Verhalten.

Kann mir jemand die Fragen zur Klärung beantworten:

A) Wie kann es überhaupt passieren, dass manche Log-Dateien die einheitlich via fopen angelegt wurden obendrein uneinheitlich als ausführbar deklariert werden? fopen(FO->name,FO->mode); wobei mode ex üblichen "artw+" Kombos besteht.

B) Wie kann es überhaupt passieren, dass ich ex Ubuntu-Sitzung geworfen werde?!!??!?

Sicherheitsproblem oder erklärbar?

Danke.

RZwoDzwo

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11311

Wohnort: München

R2woD2wo schrieb:

Habe mir hier ein Logging-Tool für Nachrichten (quasi Tagebuch ) programmiert.

C ist ja ein nettes Minenfeld für alle Arten von Speicherlecks, unitialisierte Variablen, Out-of-bounds Zugriffe dank Pointer-Arithmetik usw. - falls du den Code zeigen möchtest, finden vielleicht kundige Mitleser hier im Forum etwas.

A) Wie kann es überhaupt passieren, dass manche Log-Dateien die einheitlich via fopen angelegt wurden obendrein uneinheitlich als ausführbar deklariert werden? fopen(FO->name,FO->mode); wobei mode ex üblichen "artw+" Kombos besteht.

Kann es sein, dass sich da noch andere Skripte/Programme an den Rechten der Dateien drehen?

B) Wie kann es überhaupt passieren, dass ich ex Ubuntu-Sitzung geworfen werde?!!??!?

Da crasht vermutlich ein für die System-Sitzung wichtiger Prozess - falls das Syslog da keine Hinweise liefert, müsste apport das eigentlich einfangen können, was da crasht (ansonsten apport runterwerfen und systemd-coredump nehmen, das schreibt die Coredumps ins systemd-journal und man kann sie sich später mit coredumpctl und gdb zu Gemüte führen.

R2woD2wo

(Themenstarter)

Anmeldungsdatum:
5. Mai 2016

Beiträge: 137

Code ist ziemlich üppig.

Aber die Dump-Dateien - wenn ich wüsste wo die sind - kann ich gerne auspacken.

Andere Programme/Skripte : Nein. Werde die Eigenschaften der .dat Dateien im Auge behalten. Evtl. ist das Problem mit chmod behoben. Aber wie es sein kann, dass eine Textdatei zur x-Datei wird ... gute Frage....

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11311

Wohnort: München

R2woD2wo schrieb:

Code ist ziemlich üppig.

Aber die Dump-Dateien - wenn ich wüsste wo die sind - kann ich gerne auspacken.

Ohne dazugehörigen Quellcode und Debug-Symbole sind die natürlich wenig wert. Apport sollte - wie im verlinkten Wiki-Artikel beschrieben - seine Berichte in /var/crash/ ablegen.

Aber wie es sein kann, dass eine Textdatei zur x-Datei wird ... gute Frage....

Jemand wendet ein chmod +x (oder etwas äquivalentes) darauf an... - je nach Dateisystem und Mount-Optionen kann es auch passieren, dass beim mounten automatisch Ausführungsberechtigungen gesetzt werden (z.B. wenn man NTFS mit exec mountet).

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Plötzlich rausfliegen kann auch den XServer betreffen. Da dieser mittlerweile mit Nutzerrechten läuft, reicht es theoretisch bei den relevanten Dateien falsche Rechte und dann bspw. ein exec PROGRAMM in der ~/.xinitrc zu haben.

Falls noch nicht geschehen, würde ich das Programm in eine systemd-unit verpacken und damit überwachen. Der Status von inotify könnte auch interessant werden, falls die Dateien damit überwacht werden.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17674

Wohnort: Berlin

Wie heißen Deine Logdateien denn?

Wie kommst Du auf die Idee, das rausfliegen habe mit den Dateien zu tun?

R2woD2wo

(Themenstarter)

Anmeldungsdatum:
5. Mai 2016

Beiträge: 137

Crash-Dump scheinbar Fehlanzeige, was mich stört: wer ist whoopsie???:

1
2
3
4
USER:/var/crash$ ll
insgesamt 8
drwxrwsrwt  2 root whoopsie 4096 Apr  1 00:07 ./
drwxr-xr-x 14 root root     4096 Apr 21  2016 ../

Der Grund warum ich annehme, dass es mit den Dateien (z.B. K_Nudeln.kur - Inflationstagebuch) zusammenhängt, ist, dass mein Programm z.B. 4 (von max. 20) Artikel anstandslos einliest, ehe es (neuerdings und nur manchmal, bis dato seit chmod kein Problem mehr) einfach so mich rauswirft.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11311

Wohnort: München

R2woD2wo schrieb:

Crash-Dump scheinbar Fehlanzeige, was mich stört: wer ist whoopsie???:

Das ist ein Hintergrunddienst, der Crashberichte hochladen kann, wenn der Nutzer das für sinnvoll hält (lohnt sich natürlich nur, wenn Programme aus den offiziellen Paketquellen crashen) - vgl. z.B. https://askubuntu.com/a/135552

Der Grund warum ich annehme, dass es mit den Dateien (z.B. K_Nudeln.kur - Inflationstagebuch) zusammenhängt, ist, dass mein Programm z.B. 4 (von max. 20) Artikel anstandslos einliest, ehe es (neuerdings und nur manchmal, bis dato seit chmod kein Problem mehr) einfach so mich rauswirft.

Hat dein Programm Abhängigkeiten zu einem laufenden X-Server? Falls nicht würde ich da einfach mal auf einer TTY schauen, ob sich der Crash reproduzieren lässt und im ggf. mal gezielt fuzzing betreiben, um nicht abgefangene Fehler bei der Datenverarbeitung zu finden.

R2woD2wo

(Themenstarter)

Anmeldungsdatum:
5. Mai 2016

Beiträge: 137

Hallo,

nicht dass ich wüsste - Mein Programm öffnet eine zentrale Datei "Waren.csv" aus der selbige mir die einzelnen gemonitorten Waren zwecks Eingabe als Kürzelmenü angeboten werden.

Schließlich gebe ich Kürzel, Menge und Kaufpreis ein, und Programm öffnet, schreibt und schließt entsprechende Textdatei mit letztem Preis in letzter Zeile.

Info: Seit ich mit chmod alle Dateien manuell auf -rw-rw-rw- gesetzt habe - also kein x - bis dato keine Abbrüche mehr und auch bis dato keine x.

Beobachte es weiter.

Danke.

Antworten |