私は初めてdmenuを使います。sudo
dmenu権限を必要とするプログラムを実行しようとしています。私はフォローしましたこのリンク。だから私のフォルダには次の./dpass
スクリプトがあります。bin
#!/bin/bash
dmenu -p "$1" <&- && echo
私も次のコマンドを実行しました。
$ export SUDO_ASKPASS=/home/username/bin/dpass
bin
これで、次のフォルダがありますshutdown
。
#!/bin/bash
sudo -A shutdown -h now
dmenuで実行しようとするとパスワードを尋ねられますが、問題はパスワードを入力してもパスワードが隠されないことです。誰でも私のパスワードを見ることができるので、これは本当に安全ではないと思います。 dmenuでパスワードを隠す方法はありますか?
ベストアンサー1
&& echo
通話が終わったら削除してみてくださいdmenu
。
#!/bin/bash
dmenu -p "$1" <&-
これにより、ユーザー入力エコーが無効になりますdmenu
。この方法は、次のタイトルのブログ投稿で説明されています。dメニューでパスワードを入力してください。
$ cat dpass #! /bin/sh # shellcheck disable=2046 caller="$(ps -o comm= -p $(ps -o ppid= -p $$))" prompt="${1:-[$caller]}" promptfg=black promptbg=red hidden=white font="Liberation Sans-20:Bold" dmenu -p "$prompt" -fn "$font" \ -nf "$hidden" -nb "$hidden" -sf "$promptfg" -sb "$promptbg" <&-
- パラメータが渡されない場合は、呼び出し側アプリケーションにプロンプト(赤い部分)が設定されます。したがって、ユーザーは常に一種のプロンプトを受け取ります。
&& echo
他のパスワードハンドラと連携するように末尾のステートメントを削除します。