14

この方法でパスワードを保存しても安全ですか?

echo 'Write sudo password (will not be displayed) and hit enter'
read -s password

次のようなコマンドを作成するために必要です。

echo $password | sudo -S apt-get install -y foo bar
4

4 に答える 4

13

いいえ、で見ることができます/proc/$PID/cmdline

セキュリティツールを再発明しようとしないことをお勧めします。プログラムはsudoパスワードをキャッシュできます。

于 2010-09-08T12:00:33.573 に答える
11

より良いアプローチは、sudoers ファイルを編集し、パスワードを必要としないプログラムを追加することです...

sudo visudo管理者グループがパスワードなしで apt-get を実行できるようにするには、以下を実行して追加します 。%admin ALL = NOPASSWD: /usr/bin/apt-get

詳細については、sudoers の man ページを参照してください。

于 2010-09-08T12:06:35.333 に答える
7
echo $password | sudo -S apt-get install -y foo bar 

これは少し危険です。ユーザーがすでにsudoに対して認証されている場合、sudoはパスワードを再度要求せず、apt-getに転送されます。これにより、奇妙な結果が生じる可能性があります(たとえば、postinstallスクリプトが質問をした場合)。使用することをお勧めします

sudo -k                         # remove previous sudo timestamp
echo $password | sudo -v -S     # create a new one for 15 minutes
sudo apt-get ...                # execute the command

代わりは。

編集:Dirkは、実行中にパスワードが非常に短時間表示されることについて正しいですecho。私の回答は、あなたの質問に対する回答ではなく、拡張コメントとしてご覧ください。

于 2010-09-08T12:00:09.253 に答える
-2

sudoオープン ソースであるため、パスワードをコマンド ライン パラメータとして受け取る独自のバージョンをコンパイルできます。

于 2010-09-08T12:17:08.127 に答える