2013-07-24 32 views
5

無人のbashスクリプトでパスワードを守る私は、MySQLを使用しています(cronジョブのための)bashスクリプトを書いています:MySQLを使用する場合

mysql -uusername -ppassword -e 'something;' 

私は便利なパスワードを維持するための良い方法を探していますこの情報をそのシステム上の他のユーザーから安全に保つ方法で、スクリプト内で使用することができます。 ps -efを使用できるユーザーとテキストファイルを読むユーザー...

Linux上の自動スクリプトで使用されるパスワードはどうすれば保護できますか?

答えて

10

ことを確認してください。デフォルトの~/.my.cnfファイルを使用することも、--defaults-file==filenameを使用して代替ファイルを指定することもできます。ドキュメントを参照してください4.2.3.4. Command-Line Options that Affect Option-File Handling

オプションファイルには、mysqlコマンドのデフォルト設定が含まれています。たとえば、次のように記述することができます。

[mysql] 
user=username 
password=password 
database=yourdb 

オプションファイルはあなただけが読むことができるので、他のユーザーは自分のパスワードを見ることができません。

+0

はい、私は前にその答えを読んだ - しかし、私は理解していない - オプションファイルは何ですか? – eye

+0

答えの例を参照してください。 – Barmar

+0

よくある質問:この「オプションファイル」に格納する方法は、単に私のために読むことができるtxtファイルに保存する方法と違いますか? – eye

2

ファイル~/.my.cnfをcronジョブを実行しているユーザーのホームディレクトリに作成します。オプション・ファイル内のすべての設定を入れ

chmod 600 ~/.my.cnf)他のユーザーによって読み取り可能ではありません
[client] 
user=username 
password=something 
+0

あなたの答えをありがとう - 彼らは同じ回答ですが、これも役立ちますが、私は両方をマークすることはできません。 :-) – eye

5

これはローカルでクリアテキストのパスワードが格納されていないのMySQL 5.6.6+のユーザーのための更新答え

4.6.6 mysql_config_editor — MySQL Configuration Utilityに記載されているように、MySQLのパスワードを保存するためのより安全な方法は、今そこにある、あります構成ファイル。あなたは.mylogin.cnfという名前暗号化ログインパス ファイルに認証資格情報を格納する

(のMySQL 5.6.6から利用可能)mysql_config_editorユーティリティができます。ファイルの場所は、Windowsでは%APPDATA%\ MySQL ディレクトリ、Windows以外のシステムの場合は の現在のユーザーのホームディレクトリです。このファイルは後でMySQLクライアント プログラムによって読み取られ、MySQL サーバに接続するための認証情報を取得することができます。

このファイルには、次のコマンドを実行して作成することができ

mysql_config_editor set --login-path=client --host=localhost --user=root --password 

あなたは、次のコマンドを使用して、既存の設定印刷することができます。この意志の出力電流の設定を

mysql_config_editor print --login-path=client 

を:

[client] 
user = root 
password = ***** 
host = localhost 

パスワードはデフォルトで暗号化されています。

関連する問題