ubuntuusers.de

Shellscript mit Passworteingabe funktioniert nicht über Starter auf dem Desktop

Status: Ungelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

crazy-to-bike

Avatar von crazy-to-bike

Anmeldungsdatum:
11. Oktober 2009

Beiträge: 288

Hallo,

ich habe für meinen Vater ein Shellscript geschrieben, das prüft, ob der Veracrypt-Container auf der externen HD vorhanden ist, dann über manuelle Passworteingabe den Container einhängt, per rsync ein Backup macht und am Ende den Container wieder aushängt. Das hat super funktioniert, bis ich nun den Rechner auf Ubuntu 24.04 geupdated habe.

Jetzt kommt, wenn man das Skript über das Starticon auf dem Desktop startet, bei der Passworteingabe bei jedem Tastendruck ein grafisches Fenster "Aktuelle Auswahl vor neuer Suche löschen" mit einem Schließen-Button. Die Passworteingabe im Terminal funktioniert damit nicht. Das Skript läuft nicht weiter.

Startet man das Skript ohne den Starter direkt in Nautilus durch Doppelklick auf die Datei –> im Terminal ausführen, dann kommt das Fenster nicht und es funktioniert. Ich vermute deshalb, dass ich irgendwie meinen Starter ändern müsste, damit das wieder funktioniert.

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Exec="/home/user/Skripte/Backup.sh"
Name=Backup
GenericName=Backup
Comment=Backup
Encoding=UTF-8
Terminal=true
Type=Application
Categories=Application
Name[de_DE]=Backup.desktop
Icon=/home/user/Skripte/icon.png

Leider wird, wenn man das Skript auf den Desktop legt und dort doppelklickt, das Skript nur im Texteditor aufgerufen und nicht gestartet, obwohl die Datei ausführbar ist. Ohne Starter geht es also wohl nicht.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4737

Für Passwortabfragen für root Rechte aus einer GUI heraus musst Du pkexec nutzen, anstatt sudo.

pkexec ist Bestandteil von polkit:

Das ist die Manual Page von pkexec:

Im Ubuntuusers.de Wiki gibt es auch was zu lesen:

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9608

Wohnort: Münster

crazy-to-bike schrieb:

[…] Shellscript […] hat super funktioniert, bis ich nun den Rechner auf Ubuntu 24.04 geupdated habe.

Jetzt kommt, wenn man das Skript über das Starticon auf dem Desktop startet […]

Der Start von Programmen über Bildchen auf dem Desktop ist von Entwicklerseite seit mehr als einem Jahrzehnt nicht mehr vorgesehen und wird mit jeder neuen Version von Gnome bzw. Nautilus etwas mehr verunmöglicht. Es erscheinen auch ständig Erweiterungen, die die Sperre für bestimmte Versionen der Gnome-Shell irgend wie umgehen.

Startet man das Skript ohne den Starter direkt in Nautilus durch Doppelklick auf die Datei –> im Terminal ausführen, dann kommt das Fenster nicht und es funktioniert.

D.h. Das Skript funktioniert nach wie vor und nur Dein bevorzugter Startmechanismus bzw. Deine Umgehung der o.g. Sperre funktioniert nicht mehr.

Ich vermute deshalb, dass ich irgendwie meinen Starter ändern müsste, damit das wieder funktioniert.

Dateien mit dem Suffix .desktop sind keine Skripte, sollen nicht ausführbar sein und sollen auch nicht durch Klick etwas starten. Sie sind im Grundsatz nur Beschreibungen für Menüpunkte.

Dateien mit dem Suffix .desktop und wie man damit umgeht, beschreibt das Wiki: .desktop-Dateien

crazy-to-bike

(Themenstarter)
Avatar von crazy-to-bike

Anmeldungsdatum:
11. Oktober 2009

Beiträge: 288

kB schrieb:

Der Start von Programmen über Bildchen auf dem Desktop ist von Entwicklerseite seit mehr als einem Jahrzehnt nicht mehr vorgesehen

Ist mir grundsätzlich bekannt. Kommt unbedarften Usern aber - insbesondere wenn sie wie die Meisten von Windows kommen, wo nicht wenige alles nur auf dem Desktop haben - nicht gerade entgegen. Daher halte ich das für extrem fragwürdig.

kB schrieb:

D.h. Das Skript funktioniert nach wie vor und nur Dein bevorzugter Startmechanismus bzw. Deine Umgehung der o.g. Sperre funktioniert nicht mehr.

Ja, so weit nichts neues.

kB schrieb:

Dateien mit dem Suffix .desktop sind keine Skripte, sollen nicht ausführbar sein und sollen auch nicht durch Klick etwas starten. Sie sind im Grundsatz nur Beschreibungen für Menüpunkte.

Äh, jedes Programm-Icon ist eine .desktop datei. Diese sollen also sehr wohl etwas starten.

kB schrieb:

Dateien mit dem Suffix .desktop und wie man damit umgeht, beschreibt das Wiki: .desktop-Dateien

Nun ja, die Datei funktionierte ja bislang. Die Syntax ist also grundsätzlich korrekt. Deshalb nutzt mir das rein gar nichts.

crazy-to-bike

(Themenstarter)
Avatar von crazy-to-bike

Anmeldungsdatum:
11. Oktober 2009

Beiträge: 288

trollsportverein schrieb:

Für Passwortabfragen für root Rechte aus einer GUI heraus musst Du pkexec nutzen, anstatt sudo.

Damit hängt das wohl auch nicht zusammen, denn an meinem eigenen Rechner (auch Ubuntu 24.04) funktioniert das weiterhin. Wenn ich einen Starter, der das Backupskript im Terminal aufruft, auf meinen Desktop lege, kann ich das Passwort zum Entschlüsseln des Containers problemlos eingeben und das Skript läuft durch.

Die installierten Gnome-Extensions habe ich zwischen den Rechnern auch verglichen - kein Unterschied.

Wenn ich am Rechner meiner Eltern nicht versuche, das PW einzutippen, sondern aus der Zwischenablage mit Strg-Shift-X ins Terminal einfüge, ploppt auch nicht bei jedem Tastendruck dieses grafische Fenster auf und das Skript läuft durch.

Echt strange.

Da der Rechner meiner Eltern auch vollverschlüsselt ist, habe ich jetzt quick'n'dirty das PW ins Skript geschrieben. Nicht ideal, aber vertretbar.

juribel

Anmeldungsdatum:
20. April 2014

Beiträge: 1235

kB schrieb:

Der Start von Programmen über Bildchen auf dem Desktop ist von Entwicklerseite seit mehr als einem Jahrzehnt nicht mehr vorgesehen und wird mit jeder neuen Version von Gnome bzw. Nautilus etwas mehr verunmöglicht. Es erscheinen auch ständig Erweiterungen, die die Sperre für bestimmte Versionen der Gnome-Shell irgend wie umgehen.

Beste Gelegenheit, sich von diesem Gnome zu trennen. Auf einem 4K Bildschirm wirkt diese Smartphone-Oberfläche geradezu lächerlich.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4737

Ich wundere mich auch über die Shebang

#!/usr/bin/env xdg-open

... über dem

[Desktop Entry]

... Eintrag. Ich bin aber kein Gnome Nutzer, sondern bleibe KDE treu. Und da gehört so was nicht hin.

Dort ist mal ein Beispiel

... so eine *.desktop Datei beginnt mit dem Eintrag:

[Desktop Entry]

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9608

Wohnort: Münster

crazy-to-bike schrieb:

[…] jedes Programm-Icon ist eine .desktop datei. Diese sollen also sehr wohl etwas starten.

Ein Icon für ein Programm ist ein Bildchen in einem Bildformat. Eine Desktop-Datei ist eine Textdatei im INI-Format. Beide habe nichts miteinander zu tun.

kB schrieb:

Dateien mit dem Suffix .desktop und wie man damit umgeht, beschreibt das Wiki: .desktop-Dateien

Nun ja, die Datei funktionierte ja bislang.

Aber vermutlich wohl nur, weil bisher zufällig ihre Mängel stillschweigend korrigiert werden konnten.

Die Syntax ist also grundsätzlich korrekt.

Bereits aus rein logischen Gründen ist Deine Schlussfolgerung falsch.

Sie ist zusätzlich auch aus praktischen Gründen falsch:

  • Der Validierer meldet für Deine Datei 4 Fehler.

  • Eine Desktop-Datei darf nicht ausführbar sein, sonst Sicherheitsrisiko.

  • Wegen vorstehender Zeile ist natürlich auch ein Shebang unsinnig.

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 819

Nutze kein Ubuntu.

Das mit VB getestet, geht:

[Desktop Entry]
Name=Backup
GenericName=
Comment=
Icon=
Type=Application
Exec=gnome-terminal -- bash -c "<scriptpfad>"
Categories=
NoDisplay=false
Terminal=false
Hidden=false

Ggf. 'gnome-terminal –' ersetzen bzw. installieren falls nicht vorh.

Lichtmacher

Anmeldungsdatum:
26. Januar 2009

Beiträge: 259

kB schrieb:

crazy-to-bike schrieb:

[…] jedes Programm-Icon ist eine .desktop datei. Diese sollen also sehr wohl etwas starten.

So ist es.

Ein Icon für ein Programm ist ein Bildchen in einem Bildformat. Eine Desktop-Datei ist eine Textdatei im INI-Format. Beide habe nichts miteinander zu tun.

Die desktop-Datei sorgt über die Information in ihr dafür, dass ein Icon auf dem Desktop oder im Dateimanager angezeigt wird.

kB schrieb:

Dateien mit dem Suffix .desktop und wie man damit umgeht, beschreibt das Wiki: .desktop-Dateien

Exakt und dort steht:

Programmstarter sind Desktop-Dateien, welche Informationen bereitstellen

  • Eine Desktop-Datei darf nicht ausführbar sein, sonst Sicherheitsrisiko.

Warum das? Unter xfce weigert sich der Desktop sogar die Starter (.desktop) auszuführen, wenn sie nicht ausführbar sind.

Lichtmacher

Anmeldungsdatum:
26. Januar 2009

Beiträge: 259

#!/usr/bin/env xdg-open

Das ist sicherlich falsch und kann Probleme machen.

Antworten |