Dieter_Ubuntu
Anmeldungsdatum: 4. Juli 2007
Beiträge: 423
|
Mein Programm qt-fsarchiver benötigt zur Ausführung root-Rechte. Dazu wird zu Beginn in einem Eingabefeld das root-Passwort abgefragt. Wird das Passwort korrekt eingegeben, arbeitet das Programm, wie gewünscht, weiter. Wird ein falsches Passwort eingegeben passiert nichts. (wenn ich das Programm im Terminal mit einem falschen Passwort starte, ist zu erkennen, dass die Passworteingabe sich in einer Endlosschleife befindet.) Ich würde gerne das Passwort auf Richtigkeit überprüfen um eine Fehlermeldung erzeugen zu können. Hat jemand eine Idee? Bei Gparted klappt es ja auch, da wird nach kurzer Zeit auf das falsche Passwort hingewisen. Grüße aus Südbaden
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12832
|
Die einfachste Lösung, die mir einfällt, ist ein Skript mit sudo . | #!/bin/sh
test $(id -u) -eq 0 || exec sudo "$0" "$@"
qt-fsarchiver "$@"
|
Dann erledigt sudo die Sache mit der Rückmeldung - allerdings läuft dann der gesamte Prozess unter Root-Rechten. Möglicherweise ist das nicht so eine gute Idee. Ansonsten müsstest Du ggf. den Code von qt-fsarchiver modifizieren. Btw., was ist das überhaupt für ein Programm? Ich kann qt-fsarchiver nicht in den Paketquellen finden. Wenn das wirklich so arbeitet, dass das Root-Passwort abgefragt und gespeichert wird, bis es benötigt wird, ist das u.U. ein Sicherheitsproblem. Ich würde so ein Programm (fsarchiver ) auch eher nur aus dem Terminal bedienen.
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
rklm schrieb: Btw., was ist das überhaupt für ein Programm? Ich kann qt-fsarchiver nicht in den Paketquellen finden. Wenn das wirklich so arbeitet, dass das Root-Passwort abgefragt und gespeichert wird, bis es benötigt wird, ist das u.U. ein Sicherheitsproblem. Ich würde so ein Programm (fsarchiver ) auch eher nur aus dem Terminal bedienen.
https://wiki.ubuntuusers.de/qt-fsarchiver/
|
RamSpeicher
Anmeldungsdatum: 17. Juli 2009
Beiträge: 2508
|
Dieter_Ubuntu schrieb:
Ich würde gerne das Passwort auf Richtigkeit überprüfen um eine Fehlermeldung erzeugen zu können. Hat jemand eine Idee?
Jepp, man könnte das Passwort vorher in einem Texteditor (müsste bei Dir gedit sein) eintickern, und dann per copy&paste weiter Verfahren.
|
Dieter_Ubuntu
(Themenstarter)
Anmeldungsdatum: 4. Juli 2007
Beiträge: 423
|
Hallo rkim, Danke für den Hinweis. Genau richtig, dass es keine so gute Idee ist, ein GUI-Programm mit root-Rechten zu starten. Wegem diesem Problem habe ich das Programm in ein Programm mit Oberfläche (ohne root-Rechte) und in ein Terminal-Programm gesplittet. qt-fsarchiver ist ja nur die Oberfläche für fsarchiver. Hat aber mehr Funktionen als fsarchiver. Und die Chance für einen nicht so versierten Nutzer Partionen zu verwechseln ist ziemlich gering. Habe Deine Batch getestet, würde auch funktionieren. Grüße aus Südbaden
|
Dieter_Ubuntu
(Themenstarter)
Anmeldungsdatum: 4. Juli 2007
Beiträge: 423
|
Hallo RamSpeicher, Dein Hinweis hat mich auf eine Idee gebracht. Das ist der Befehl in Qt5 für den Aufruf des Dialogfensters: | QString text = QInputDialog::getText(this, tr("Enter sudo-password","Sudo-Passwort eingeben"),
(tr("sudo-Password:","sudo Passwort")), QLineEdit::Password,"", &ok);
|
Muss mal schauen, ob das Dialogfenster so aufgerufen werden kann, dass wahlweise nicht nur Sternchen angezeigt werden. Das würde eine Fehlereingabe reduzieren. Ich meine, dass in meinem Code, das schon irgendwo enthalten ist. Per copy&paste das Passwort einfügen, geht jetzt schon. Grüße aus Südbaden
|
RamSpeicher
Anmeldungsdatum: 17. Juli 2009
Beiträge: 2508
|
Dieter_Ubuntu schrieb:
qt-fsarchiver ist ja nur die Oberfläche für fsarchiver.
Der Vorteil ist Natürlich das Du fsarchiver aus den Quellen bekommst und nicht auf Fremdquellen zurückgreifen musst.
Und die Chance für einen nicht so versierten Nutzer Partionen zu verwechseln ist ziemlich gering.
Na für so was gibt es dann z.B. und u.a. lsblk da sollte das Verwechslungsrisiko doch eher gering sein. Weiterhin gibt es ja, wenn Du eh schon mit Skripten Arbeiten willst im erwähnten Artikel doch auch Beispielskripte. Und die Bash beißt nicht 😉
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12832
|
Dieter_Ubuntu schrieb:
Genau richtig, dass es keine so gute Idee ist, ein GUI-Programm mit root-Rechten zu starten. Wegem diesem Problem habe ich das Programm in ein Programm mit Oberfläche (ohne root-Rechte) und in ein Terminal-Programm gesplittet.
Wenn ich Dich richtig verstehe, dann hält qt-fsarchiver das root-Passwort im Speicher, bis fsarchiver dann als "root" aufgerufen wird. Ich weiß nicht, wie Du das Passwort verwaltest, aber ich hoffe, das steht da nicht im Klartext irgendwo im RAM. Sonst hätten wir direkt schon eine üble Sicherheitslücke entdeckt.
qt-fsarchiver ist ja nur die Oberfläche für fsarchiver. Hat aber mehr Funktionen als fsarchiver. Und die Chance für einen nicht so versierten Nutzer Partionen zu verwechseln ist ziemlich gering.
Ich weiß nicht... Andererseits machen grafische Oberflächen ja die Dinge recht einfach und ein Nutzer könnte deshalb verleitet sein, mal schnell seine Installation zu ruinieren. Abgesehen davon, dass Du beim Wiederherstellen eher von einem Live-USB-Stick arbeitest, auf dem Du dann erst noch umständlich das PPA eintragen musst usw. Bei solchen Systemwerkzeugen ist mir die Konsole jedenfalls deutlich lieber.
|
Dieter_Ubuntu
(Themenstarter)
Anmeldungsdatum: 4. Juli 2007
Beiträge: 423
|
Das Passwort wird als Variable im qt-fsarchiver gespeichert. Ich sehe das nicht so kritisch, lasse mich aber gern belehren. Nach Start des Programms wird das Root-Passwort abgefragt und wie gesagt, als Variable gespeichert. Wird das richtige Passwort eingegeben, startet das Programm korrekt. Die Notwendigkeit, das Passwort zu ermitteln ist nicht gegeben. Wird das Programm mit einem falschen Passwort gestartet, bleibt das Programm hängen. Bei einem weiteren Startversuch mit korrektem oder falschen Passwort erhält man lediglich den Hinweis, dass nur eine Instanz von qt-fsarchiver gestartet werden kann. (Nur bei einer Instanz kann qt-fsarchiver korrekt arbeiten), Bei weiteren Versuchen erhält man nur den Hinweis auf die eine Instanz. Grüße aus Südbaden
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12832
|
Dieter_Ubuntu schrieb:
Nach Start des Programms wird das Root-Passwort abgefragt und wie gesagt, als Variable gespeichert.
Das klingt so, als ob es im Klartext im Ram steht. Keine gute Idee.
|
Dieter_Ubuntu
(Themenstarter)
Anmeldungsdatum: 4. Juli 2007
Beiträge: 423
|
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12832
|
Dieter_Ubuntu schrieb: Was meinst Du unter Ram.
Pardon, gemeint war RAM.
|
Dieter_Ubuntu
(Themenstarter)
Anmeldungsdatum: 4. Juli 2007
Beiträge: 423
|
Komme erst heute dazu, auf Deine Antwort zu reagieren. Richtig ist, dass das Passwort unverschlüsselt im Arbeitsspeicher vorhanden ist. Aber nur dann, wenn vom Nutzer das richtige Passwort eingegeben wurde und somit bekannt ist.
Bei falscher Eingabe des Programms startet es nicht und somit ist das korrekte Passwort nirgendwo gespeichert. Deswegen sehe ich derzeit noch kein großes Risiko. Grüße aus Südbaden
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12832
|
Dieter_Ubuntu schrieb:
Richtig ist, dass das Passwort unverschlüsselt im Arbeitsspeicher vorhanden ist.
Aber dann hast Du doch das Sicherheitsproblem, von dem ich sprach.
Aber nur dann, wenn vom Nutzer das richtige Passwort eingegeben wurde und somit bekannt ist.
Wieso "aber nur"? Das ist ja gerade das Problem. Ein falsches Passwort interessiert keinen.
Bei falscher Eingabe des Programms startet es nicht und somit ist das korrekte Passwort nirgendwo gespeichert.
Das stimmt natürlich nicht; Du widersprichst hier Deiner vorherigen Aussage, dass es im RAM gespeichert ist.
Deswegen sehe ich derzeit noch kein großes Risiko.
Wie groß das Risiko ist, ist eine andere Frage, aber ein Rootpasswort unverschlüsselt im Speicher zu halten ist jedenfalls schlecht.
|
Dieter_Ubuntu
(Themenstarter)
Anmeldungsdatum: 4. Juli 2007
Beiträge: 423
|
Wie ich gesagt habe, lass mich gern korrigieren. Du schreibst, dass das Passwort im RAM unverschlüsselt steht, ist ein Sicherheitsproblem. Wenn der Nutzer nur mit dem richtigen Passwort das Programm starten kann kennt er ja das Passwort und wird sich keine Mühe machen, das Passwort zu erkunden. Warum ist das dann schlimm, dass das Passwort unverschlüsselt im RAM steht? Eine Begründung, warum das schlimm ist, habe ich noch nicht gefunden. In einem zurückliegenden Beitrag hast Du geschrieben:
Abgesehen davon, dass Du beim Wiederherstellen eher von einem Live-USB-Stick arbeitest, auf dem Du dann erst noch umständlich das PPA eintragen musst usw. Bei solchen Systemwerkzeugen ist mir die Konsole jedenfalls deutlich lieber.
Es gibt natürlich eine Live-DVD, auf der qt-fsarchiver enthalten ist. Grüße aus Südbaden
|