ユーザーとの対話専用にkdialogを使用するbashスクリプトを作成しました。「.desktop」ファイルから起動されるため、ユーザーには端末が表示されません。それは100%GUIアプリのように見えます(それは単なるbashスクリプトですが)。KDEのみで実行されます(Kubuntu 12.04)。
私の唯一の問題は、パスワード入力を安全かつ便利に処理することです。満足のいく解決策が見つかりません。
このスクリプトは、通常のユーザーとして実行され、sudoコマンドが最初に必要になったときにパスワードを要求するように設計されています。このように、sudo権限を必要としないほとんどのコマンドは、通常のユーザーとして実行されます。何が起こるか(スクリプトがターミナルから実行される場合)は、ユーザーはパスワードの入力を1回求められ、デフォルトのsudoタイムアウトにより、ユーザーに再度プロンプトを表示せずに、追加のsudoコマンドを含めてスクリプトを終了できます。これは、GUIの背後で実行したときにも機能する方法です。
主な問題はkdesudo
、標準のGUI方法である私のスクリプトの起動にを使用すると、スクリプト全体がrootユーザーによって実行されることです。そのため、ファイルの所有権はrootユーザーに割り当てられ、私は~/
パスに依存することができず、他の多くのものは理想的とは言えません。rootユーザーとしてスクリプト全体を実行することは、非常に不十分なソリューションであり、悪い習慣だと思います。
rootとしてスクリプト全体を実行せずに、ユーザーがGUIを介して1回だけsudoパスワードを入力できるようにするためのアイデアに感謝します。ありがとう。