Passwortabfrage mit Yad und Weitergabe an Script

FatManStanding

Lt. Junior Grade
Registriert
Aug. 2021
Beiträge
485
Hallo,

hier https://wiki.ubuntuusers.de/yad/#Passwortabfrage gibt es ein Bsp. wie man mit Yad einen kleinen Dialog bastelt der das sudo-Passwort abfragt. Leider steht dort nicht wie man das sicher an ein Script weitergibt ohne es im Klartext irgendwo hinterlegen zu müssen oder man es in der History sehen kann. "sudo -S" liest das Passwort aus STDIN, also z. B.

Code:
echo myPassword | sudo -S <command>

Damit steht ja aber das Passwort in der History und würde im Klartext angezeigt werden, wenn man den Aufruf in einem Terminalfenster vornimmt. Wie würde man das sicher machen? Irgendwie müssen ja all die GUI-Programme die nach dem Passwort fragen selbiges bekommen.

Grüße
FMS
 
1. Du kannst, was auch immer erhoehte rechte braucht, fuer den aufrufenden User erlauben (entweder passwordless sudo fuer einen Befehl freigeben, den user in die entsprechende Gruppe legen, zugriffsrechte anpassen, etc)
2. das Script mit Sudo aufrufen
3. mit sudo validate die userdaten amAnfang des Script cachen und behalten
Bash:
#!/bin/bash

#vgl. https://linux.die.net/man/8/sudo
sudo -v

# Damit die gecachten credentials laenger als 5 Minuten leben
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &

# beispiel zum testen
sudo ls /root
 
Wenn du dein Beispiel in ein Script packst, wird doch nichts hinterlegt und taucht auch nicht in der History auf.

Also, wenn du in dein Script:

Bash:
#! /bin/bash
eingabe="$(yad --entry --hide-text --button="Auswerten" --title="Passwort" --text="Gebe ein Passwort ein:")"

echo "$eingabe" | sudo -S <command>

schreibst und das Script dann aufrufst, ist nach verlassen des Scriptes das Passwort weg.

Oder verstehe ich was falsch?
 
Ich glaube das war alles etwas umständlich von mir gedacht. Ich hab es jetzt mit "pkexec" gemacht. Ich hab mich bisher nie mit PolKit geschäft und dachte diese grafische Passwort-Abfrage wie sie z. B. GParted bringt sei halt das grafische Gegenstück zum sudo auf dem Terminal.
 
Zurück
Oben