一般:平文のパスワードを扱う最良の方法は?特定:Cygwin / email / bash


5

私はCygwinをセットアップしています、そして私が使っているパッケージの1つは 'email'です。それ以外のものはスクリプトからEメールを送ることです。

コピーして、私は電子メールの設定に関する私の懸念の1つを「改善」しました。 /etc/email/email.conf デフォルトの設定ファイルを自分の設定(つまり、主にユーザー名とパスワード)で編集するのではなく、自分のホームディレクトリ内のディレクトリに移動しますもし ~/my-email.conf

emailコマンドには-i(または-smtp-pass)パラメータがあります。これには呼び出し元のスクリプト内にパスワードを設定できますが、テキストファイルにはクリアテキストが含まれているため、これ以上の効果はありません。

また、emailコマンドは設定を可能にします smtp-auth='LOGIN'そして、それはパスワードの入力を促しますが、私は後でそれを自動化できるように(私は必要ですか?)スクリプトのないプロンプトなしの操作を好みます。

クリアテキストのパスワードを設定ファイル(またはスクリプト)に保存しなければならないというこの問題に対処するための最善の方法は何ですか?これはCygwinなので、単純にWindows側からこれに対処し、そのファイルに対するセキュリティ権限を自分だけに制限するのが最善でしょうか。 (つまり、 "Users"グループに付与されているデフォルトの読み取りアクセス権を削除するなど)それとも、これに対処するためのより一般的/適切な方法はありますか?

回答:


1

これに対処する方法はいくつかあります。

  1. 保存したパスワードをハッシュすることも、保存したパスワードのハッシュの一部をパスワードとして使用することもできます。スクリプト自体にパスワードのハッシュを解除する方法が埋め込まれている可能性があるため、これは実際にはパスワードを保護するものではありませんが、クリアテキストのパスワードがファイルに含まれないようにします。あなたはsha1sum、md5sumあるいはcryptさえ使うことができます。

  2. 引数として送信されたパスワードを使用してスクリプトを使用してEメールプログラムを呼び出すことができます。スクリプト自体にパスワードを含めることができますが、この値をハッシュすることも、sqlite3を使用して保存することもできます。スクリプトをバックグラウンドで無人で実行しなければならないことを心配していないのであれば、スクリプトでパスワードを照会してからemailコマンドに送信するのが比較的簡単なはずです。

  3. smtp-auth = 'LOGIN'を使用した場合は、プロンプトに対して反応するようにexpectを使用できます。期待はあなたがcygwinにインストールできるパッケージです。どうやって期待させるかということについてstackoverflowについての質問があります パスワードを要求する 。無人のときにスクリプトがパスワードを送信できるようにする必要がある場合、これはより解決策です。

単純なもののようなものにパスワードを送信するためのスニペットを期待 ssh-add

set timeout -1
spawn ssh-add
match_max 1000000
expect "Enter passphrase for "
send -- "$password\r"

0

Debianシステムでは、ecryptfsを使用して私のホームディレクトリに暗号化されたフォルダを作成し(これは実際に私がしていることです)、次にそのファイルにシンボリックリンクします。

そのためのソフトウェアはおそらく見つからないかもしれませんが、truecryptを使用すると暗号化されたパーティションを作成してそのようなファイルを保存することができます。新しいNTFS夕食のシンボリックリンクが追加されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.