KeyPassXC verliert die eingestellte Datenbank

  • Wenn ich ein System mit 50 Usern neu starten muss und einer davon sagt "nein" - Was dann?

    Das sehe ich ähnlich. Wenn in einem Multiusersystem ein einfaches Programm den Admin übergehen und z.B. ein Reboot blockieren könnte, dann fände ich das auch sehr bedenklich bis hin zu einem Sicherheitsrisiko.

    Ein Windowsserver wird sich da bestimmt ähnlich verhalten wie Linux, aber da rate ich nur und weiß das nicht genau.

  • Leute - es geht nicht um einen Computer oder ein Multiuser-System, sondern um ein Service innerhalb des Computers, also um eine Sammlung von Dämonen unter Linux. Und mir geht es nur darum, zu zeigen, dass ein Prozess in einem Computer sehr wohl auf ein SIGxxx individuell reagieren kann. Nicht der Rechner wird heruntergefahren, sondern die Services einer Client-Server Applikation.

    Bei unserem System ist es so, dass der Admin über den Main-Service (Domäne) die Anweisung gibt, das Gesamtsystem zu beenden. Das Main-Service prüft, ob noch Sub-Services laufen. Wenn ja, wird an jedes Sub-Service ein SIGTERM geschickt und das Main-Service wartet, bis alle Sub-Services beendet sind. Während dieser Wartezeit prüft jedes Sub-Service, ob offene Verbindungen zu einem Client (Windows-PC) bestehen. Wenn ja, bekommt jeder dieser Clients eine Nachricht, dass das Gesamtsystem in spätestens 10 Minuten beendet wird und man zeitgerecht seine Arbeit beenden und sich abmelden soll. Sind alle Client-Verbindungen auf diese Weise gelöst, beendet sich das Sub-Service. Werden einzelne Client-Verbindungen nicht gelöst (der User meldet sich nicht ab vom System), läuft das Sub-Service eben weiter.

    Sind alle Sub-Services beendet worden, beendet sich das Main-Service. Sind aber nach Ablauf der 10 Minuten nicht alle Sub-Services beendet, wird an alle noch laufenden Sub-Services ein SIGABORT gesendet, worauf diese sofort beenden. Danach kann sich das Main-Service problemlos beenden.

    Das heißt: Es besteht immer die Möglichkeit, mit einem Anwender in Dialog zu treten, wenn ein Service oder eine Applikation ein SIGxxx bekommt. Das sieht der POSIX-Standard so vor und ist auch unter Linux so implementiert. Man müsste es nur machen. Die Technologie jedenfalls existiert. Und darum geht es mir.

    Und ich fände es schön, würde das auch unter Linux so funktionieren. Dass es nicht so ist, muss ich hinnehmen; genauso wie ich es hinnehmen muss, wenn es gerade regnet.

  • llutz

    Glaubst Du wirklich, ich habe 50 User auf meinem Raspi laufen? Wir - bzw ich - rede von einem Desktop-System und nicht von einem Server-System. Und selbst bei einem Server-System gibt es eine Lösung. Siehe Post #23. Sowas braucht nur in jede Server-Anwendung eingebaut werden, so wie wir es gemacht haben.

    Was ich selbst in meiner 35-jährigen Tätigkeit in der IT (davon mindestens 25 Jahre in der Programmierung) gelernt habe: Wenn ein Software-Entwickler sagt, das geht nicht ... dann meint er: Das will ich nicht machen. Gehen tut es! Definitiv.

  • Kamen Benutzer an den Client-Rechnern dem nicht nach, waren sie selber schuld, wenn Daten verloren gingen. Wenn nach Ablauf der x Minuten noch Sub-Server liefen, wurden die beinhart mit einem SIGKILL beendet.

    Das ist hier auch Fall, nur das Du der User bist, der den Shutdown selber initiiert hat. Denkst Du nicht mit, dann bist Du selber schuld am Datenverlust.

    Wenn Windpws die User an die Hand nimmt und denen alles "Vorkaut" ist das in einigen berechtigten Fällen (Computerneulinge) zwar ok, aber das darf man halt nicht als allgemeine Praxis voraussetzen.

  • hyle

    Warum fällt es so vielen Linux-Fans derart schwer, zuzugeben, dass sinnvolle Funktionen unter Linux fehlen, die es anderswo schon lange gibt? Oder willst Du mir ernsthaft einreden, dass Du es als die ultimativ beste Idee hälst, den User wider besseren Wissens ins offene Messer laufen zu lassen? Gemäß dem Motto: "Ätsch, bist selber Schuld, dass jetzt Daten verloren gegangen sind. Ich habs zwar gesehen, hab aber grinsend meinen Mund gehalten."

    Klar, auch ich muss zur Kenntnis nehmen, dass es so ist - aber ich muss es nicht, wie Du, für ein Feature halten. Für mich ist das ein Fehler im OS. Denn die Problematik sollte allgemein bekannt sein, die Situation ist jederzeit feststellbar und es gibt eine einfach umsetzbare Lösung. Demnach gibt es genau keinen wirklich haltbaren Grund, sowas nicht einzubauen. Außer dem fehlenden Willen, es zu tun.

    Aber so bleibt - Gott sei Dank für manche Linux-User - der dumme Spruch "Linux ist nicht Windows" auch in Zukunft bestehen. Das scheint für viele User existentiell zu sein.

    :thumbup:

  • Warum fällt es so vielen Linux-Fans derart schwer, zuzugeben, dass sinnvolle Funktionen unter Linux fehlen, die es anderswo schon lange gibt?

    Was für den einen sinnvoll erscheint ist für andere Ballast. Meine persönliche Meinung spielt da keine Rolle.

    Windows legt halt mehr Wert auf Benutzerfreundlichkeit, was auch zunehmend bei einigen Linux Distributionen der Fall ist. Suse, Ubuntu oder Mint gehen da ja schon eine ganze Weile in diese Richtung.

    Du kannst Dir auch Deine eigenes Linux-System zusammen bauen, wenn Dich nichts Vorhandenes anspricht.

    Aber so bleibt - Gott sei Dank für manche Linux-User - der dumme Spruch "Linux ist nicht Windows" auch in Zukunft bestehen.

    Das ist eine Tatsache und kein dummer Spruch. Die Zielgruppe ist einfach eine ganz andere. Windows ist ein Einstieg in die Computerwelt.

    Wer da dann tiefer eintauchen möchte, wird evtl. über das "programmieren" von Batch-Dateien und danach ggf. das erlernen einer *richtigen* Programmiersprache, früher oder später bei Linux landen.

    Eine Daseinsberechtigung haben beide Systeme. Wobei man bei Linux nicht von *dem* Linux sprechen kann.

  • Das Problem scheint zu sein, dass das verwendete Programm diese Funktion (dem OS mitteilen, das noch nicht gespeicherte Daten offen sind) auch unterstützen muss, damit das funktioniert. Das OS (welches auch immer) weiss ja nicht wie sich ein Programm verhält. Man (der Benutzer) muss also wissen, wie welches Programm reagiert. Die Verantwortung von möglichen Datenverlust liegt also wieder beim Benutzer.

    Den Spruch "Linux ist nicht Windows" hat in diesem Fall keine Bedeutung.

  • Das Problem scheint zu sein, dass das verwendete Programm diese Funktion (dem OS mitteilen, das noch nicht gespeicherte Daten offen sind) auch unterstützen muss, damit das funktioniert.

    Exakt
    Hier kommt es dann zudem auch noch darauf an, welche Oberfläche genutzt wird.

    Hier ein Beispiel von GNOME Shell

    Zitat

    GNOME Shell does prompt when there’s unsaved documents, but the application itself must support it. This is done by adding an inhibitor with e.g. g_application_inhibit() 4, which for example Gedit does 1, and so GNOME Shell shows the Gedit icon with the “There are unsaved documents” message when trying to logout or shutdown.

    https://discourse.gnome.org/t/can-ubuntu-p…shutdown/6393/2

  • Man muss nicht zwingend die Windows-Funktionalität 1:1 nachprogrammieren. Ich kann mir gut folgende Lösung vorstellen, die nur ein Minimum an Änderungen bedarf: Wenn ein Shutdown ausgeführt werden soll (meinetwegen auch nur dann, wenn der Shutdown über die GUI initiiert wurde), dann prüft der Prozess, ob noch Anwendungsprogramme aktiv sind. Ich denke, diese Information liegt sowieso irgendwo im System, also braucht man diese nur abzurufen. Beispielsweise weiß ja die Leiste, ob und welche Anwendungen gerade aktiv sind. Sollte sich herausstellen, dass noch Programme laufen (es ist dann vollkommen wumpe, welche Programme betroffen sind), dann könnte es so weiter gehen: Der Benutzer erhält einen Dialog, aus dem hervorgeht, dass noch Progamme laufen und bei einem Shutdown eventuell Daten verloren gehen könnten - und gleichzeitig hat man die Auswahl, ob der Shutdown abgebrochen werden soll (dann kann man die Daten noch selber speichern lassen), oder man bestätigt den Shutdown mit der Gefahr, dass eventuell Daten verloren gehen könnten (dann ist man zurecht selber schuld). Ich denke, noch einfacher geht es nicht und die Sicherheit wäre ein Vielfaches höher als heute. Und es braucht auch keine einzige Anwendung deswegen angepasst werden.

  • Das OS (welches auch immer) weiss ja nicht wie sich ein Programm verhält. Man (der Benutzer) muss also wissen, wie welches Programm reagiert. Die Verantwortung von möglichen Datenverlust liegt also wieder beim Benutzer.


    Den Spruch "Linux ist nicht Windows" hat in diesem Fall keine Bedeutung.

    Das OS hat damit erstmal gar nichts zu tun, weil es der jeweils eingesetzte Session- bzw. Windowmanager ist, der das regeln müsste. Und davon gibt es viele, die alle angepasst werden müssten, während es bei Windows oder MacOS (soweit ich weiß) nur genau einen gibt.

    Und deshalb ist die Unterscheidung Linux (bzw. wie das grafische Subsystem X,Wayland, whatever arbeitet) <-> anderes OS eben doch relevant. Wobei es natürlich auch nicht das Linuxsystem gibt.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    3 Mal editiert, zuletzt von llutz (19. Februar 2023 um 15:24)

  • llutz

    Wie gesagt: wenn man den Verursacher (= Shutdown-Prozess) mit der Lösung beauftragt, dann braucht niemand auch nur irgendeinene Kenntnis über die noch laufenden Programme haben. Dazu muss der Shutdown-Prozess nur in Erfahrung bringen, ob noch mindestens 1 User-Programm läuft und wenn ja, reicht es, wenn man dem User die Möglichkeit gibt, den Shutdown abzubrechen.

    RTFM

    Gilt das auch dann, wenn man die Begriffe "Windows" und "Linux" gleich setzt und in beiden Fällen nur die Desktop-Varianten meint? Ich denke, dass dann nicht mal 10% der weltweit installierter Desktop-Systeme ein Linux ist. Interessant wären die Gründe, warum sich Linux am Desktop gar so schwer tut bei der Akzeptanz der Anwender. Vermutungen habe ich viele, aber die werden - wie so oft - entweder negiert oder sogar vehement bestritten. Aber echte Gründe oder zumindest Vermutungen für dieses Versagen habe ich noch nie gehört.

    Übrigens - ein Zitat, das dem Linux Torvald nachgesagt wird: „Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.“

    Darüber kann man nur lachen. So lange ein derartiges Chaos in der Linux-Welt herrscht, können sich die Leute bei Microsoft beruhigt zurück lehnen und sich auf ihren Erfolg konzentrieren. Eine zerstörerische Gefahr droht von dieser Seite wahrlich nicht.

    :lol:

  • Das OS hat damit erstmal gar nichts zu tun

    Mit OS meinte ich wirklich OS. Also den Überbegriff. Windows, Linux, Amiga OS, Atari TOS, ..., egal welches. Welcher Teil des OS genau für die Funktionalität verantwortlich ist, weiss ich nicht.

    Und es braucht auch keine einzige Anwendung deswegen angepasst werden.

    Anscheinend schon. Ich habe es unter Windows 10 getestet. Claws Mail geöffnet und eine Mail geschrieben. Ein Rechner neu starten ging so durch ohne das sich Windows 10 gemeldet hätte. Die Mail war dann weg. Firefox wird ja auch einfach "gekillt". LibreOffice hingegen meldet dem OS, das noch Daten offen sind.

  • daxb

    Klar - in Windows ist es so. Aber das hat auch Schwächen, wie man sieht. Hält sich eine Anwendung nicht daran, sind die Daten weg.

    Aber ich habe ja ein einfacheres Konzept in #32 beschrieben, und dafür braucht es keine Änderung in den Anwendungen. Es wird prophylaktisch angenommen, dass laufende Programme auch nicht gespeicherte Daten halten, und deswegen wird der Anwender gefragt, ob es ok ist, wenn die Programme jetzt beendet werden, auch wenn Daten verloren gehen - oder ob er den Shutdown abbrechen möchte, um die Daten zu speichern. Und dafür reicht es, wenn der Shutdown darüber Bescheid weiß, ob es noch nicht beendete Programme gibt.

  • Dein Konzept klingt zwar einfach, aber in der Praxis wird es sicher kompliziert. Programme laufen ja ewig viele. Da muss man irgendwie auf die wenig interessanten selektieren, damit die Funktion sinnvoll bleibt. Ob das machbar ist, weiss ich nicht.

  • daxb

    Seit Jahrzehnten werden in unseren Rechnern permanent Daten zwischen unterschiedlichen Prozessen ausgetauscht, das ist sozusagen das tägliche Brot eines Software-Entwicklers. Weil jeder Datenbankzugriff funktioniert so, jeder Druckauftrag funktioniert so, jede Bildschirmausgabe funktioniert so, die Abfrage nach der aktuellen Uhrzeit funktioniert so - alles in unseren Rechnern funktioniert auf die Art, dass Prozesse untereinander Daten austauschen. Nichts würde funktionieren, gäbe es diese Technologie nicht schon lange.

    Und auf einmal soll die Praxis zu kompliziert sein (oder meinst Du: komplex?), um einen weiteren Kommunikationsweg zu schaffen zwischen den Prozessen für den Shutdown und der Leiste?

  • Da du ja nicht alle laufenden Programme dem Benutzer zur Abfrage (Programm xyz läuft, willst du schliessen ja/nein?) vorlegen kannst (das wäre viel zu viele und damit sinnfrei). Da wäre eine einfache Sicherheitsabfrage (es laufen noch Programme, wirklich runter fahren ja/nein?) vor dem runter fahren besser.

    Also müsste man irgendwie die in Frage kommenden Programme vorsortieren/selektieren. Und da wüsste ich nicht ob und wie das zuverlässig geht. Daher mein "kompliziert". Das dein Konzept irgendwie funktioniert, bezweifel ich ja nicht. Nur weiss ich nicht, wie du/man das sinnvoll und gut funktionierend umsetzen willst/kann.

    Wenn alle Programme die Funktion schon integriert hätten, gebe es das Thema nicht. Nur das ist ja leider nicht der Fall.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!