sudoはgnome-keyringまたは同様のものからパスワードを読むことができますか?

sudoはgnome-keyringまたは同様のものからパスワードを読むことができますか?

現在、いくつかのスクリプトでsudoを多く使用していますが、一部のスクリプトでは対話型入力(Makefileなど)が許可されていないため、少し面倒です。

sudoパスワードを完全に無効にする代わりに、gnome-keyringまたは同様のキーリングソフトウェアを使用してパスワードを覚えておくことができると思います。これは良い考えですか?可能ですか?より良い解決策はありますか?

ベストアンサー1

プログラム-Aオプションと組み合わせると、あなたが求めるものが実現可能であると聞こえます。sudognome-keyring-query

デフォルトでは、このオプションを使用すると、-A標準入力からパスワードを読み取るのではなく、環境変数をsudo使用して指定できる外部プログラムからパスワードを読み込みます。SUDO_ASKPASS

外部プログラムは、gnome-keyring-queryパスワードを保存/検索するためのコマンドラインツールですgnome-keyring。助ける方法は次のとおりですgnome-keyring-query

Usage:
    gnome-keyring-query <mode> <name>
Parameters:
    mode     - either 'get' or 'set' (without quotes)
    name     - a name to identify the key
Notes:
    If mode is 'get', then the password is dumped to stdout.
    If mode is 'set', then the password is read from stdin.

進める方法は次のとおりです(今試してみましたが効果がありました)。

  1. gnome-keyring-queryのインストール(配布版にパッケージされていない場合はコンパイルする必要があります)->アップストリームURL)
  2. gnome-keyringにsudoパスワードを保存してください。
  3. 以下では、キーリングでパスワードを検索できます。gnome-keyring-query get sudo
  4. このコマンドをスクリプト(/usr/bin/sudo_askpassなど)として保存し、chmodを使用して実行できることを確認してください。
  5. export SUDO_ASKPASS=/usr/bin/sudo_askpass
  6. 代わりにsudoを使用してくださいsudo -A

つまり、パスワードをキーリングに保存してキーリングを開いたままにしておくと、誰でもこのgnome-keyring-queryツールを使用したり、海馬を起動して非常に簡単にsudoパスワードを読み取ることができます。だからとても注意してください。

おすすめ記事