Ho creato uno script bash che usa kdialog esclusivamente per interagire con l'utente. Viene avviato da un file ".desktop" in modo che l'utente non veda mai il terminale. Sembra al 100% come un'app GUI (anche se è solo uno script bash). Funziona solo in KDE (Kubuntu 12.04).
Il mio unico problema è gestire l'immissione della password in modo sicuro e conveniente. Non riesco a trovare una soluzione soddisfacente.
Lo script è stato progettato per essere eseguito come un normale utente e per richiedere la password quando è necessario un comando sudo. In questo modo, la maggior parte dei comandi, quelli che non richiedono diritti sudo, vengono eseguiti come l'utente normale. Ciò che accade (quando lo script viene eseguito dal terminale) è che all'utente viene richiesta una volta la password e il timeout sudo predefinito consente di terminare lo script, inclusi eventuali comandi sudo aggiuntivi, senza richiedere nuovamente all'utente. Questo è come voglio che funzioni anche quando eseguito dietro la GUI.
Il problema principale è che l'utilizzo kdesudo
per avviare il mio script, che è il modo standard della GUI, significa che l'intero script viene eseguito dall'utente root. Quindi le proprietà dei file vengono assegnate all'utente root, non posso fare affidamento sui ~/
percorsi e molte altre cose sono tutt'altro che ideali. L'esecuzione dell'intero script come utente root è solo una soluzione molto insoddisfacente e penso che sia una cattiva pratica.
Apprezzo qualsiasi idea per consentire a un utente di inserire la password sudo una sola volta tramite la GUI senza eseguire l'intero script come root. Grazie.