つまり、WordPressバックアップガイドを設定する/自分用のバックアップスケジュールを実際に作成する。
MySQLダンプを毎日実行したいのですが、コマンドには次のいずれかが必要です。
-p then user input
または
--password="plain text password"
セキュリティを高めるために、少なくともMD5以上のハッシュと保護が施されたファイルにそれを渡すことはできますが、コマンドにユーザー入力を必要としませんか?
どんな助けでもありがたいです!
参考までに、ここで私が実行したいコマンドを
mysqldump -u [username] --password=~/wp_backups/sqldumps/.sqlpwd [database name] > ~/wp_backups/sqldumps/"$(date '+%F').sql"
次のパスワードオプションがあります。
-p
オプションを使用してパスワードを提供するMYSQL_PWD
環境変数を介してパスワードを提供する~/.my.cnf
セクションの下の[mysqldump]
ファイルに構成を配置しますすべての場合において、クライアントは認証を行うためにプレーンテキストのパスワードを必要とします。ハッシュについて説明しましたが、ハッシュの特徴は一方向変換関数であるため(つまり、ハッシュから元のパスワードを復元することができないため)、認証トークンとして使用できません。
Wordpressデータベースをバックアップしているため、Wordpressをホストしているのと同じアカウントからパスワードを非表示にしようとしても、セキュリティが向上しません。 Wordpressを実行するユーザー(データベース資格情報はwp-config.php
ファイルから簡単に抽出できます)。
したがって、次の~/.my.cnf
を定義することをお勧めします。
[mysqldump]
Host = your_MySQL_server_name_or_IP
port = 3306
user = database_user_name
password = database_password
次に、ファイルに0600アクセス許可があることを確認します。この方法では、mysqldump
はコマンドラインで指定されたデータベース資格情報を必要としません(これらは~/.my.cnf
ファイルから読み取られます)。
これにより、ファイルからパスワードとユーザー名を渡すファイル(OSであればどんなファイルでもかまいません)が作成されます。 「ハッシュ」されていても、誰かがファイルを手に入れても違いはありませんが、そのまま使用できます。それが私のために働くなら、それは彼らのために働くでしょう。
したがって、私の質問のセキュリティ部分に答えるために、chmod 0600とSudo chown $ USER:nogroupは、一度作成されたファイルへの不正アクセスを防止します。
mkdir ~/wp_backups/sqldumps && touch ~/wp_backups/.sqlpwd && nano ~/wp_backups/.sqlpwd && chmod 600 ~/wp_backups/.sqlpwd && Sudo chown $USER:nogroup ~/wp_backups/.sqlpwd
-。sqlpwdの内容
[mysqldump] # NEEDED FOR DUMP
user=username
password=password
[mysql] # NEEDED FOR RESTORE
user=username
password=password
--SQL CLI構文
mysqldump --defaults-extra-file=~/wp_backups/.sqlpwd [database] > ~/wp_backups/sqldumps/"$(date '+%F').sql"
mysqldump-secure を見ると、mysqldump
のラッパースクリプトとして機能し、(defaults-extra-file
を介して)パスワードのセキュリティを処理し、さらに非対称暗号化を介してmysqlデータベースを暗号化します。