MySQLdump 通过 crontab - Pass --password=/hashed/password/file 所以我可以通过 crontab w/o 使用纯文本密码

Fre*_*ers 10 security password hashsum mysql

所以我正在为自己设置一个 WordPress 备份指南/为自己制定一个真正的备份计划。

我想每天进行 MySQL 转储,但该命令需要

-p then user input 
Run Code Online (Sandbox Code Playgroud)

或者

--password="plain text password"
Run Code Online (Sandbox Code Playgroud)

我可以将它传递给至少是 MD5 或更好的散列和保护以提高安全性但使命令不需要用户输入的文件吗?

任何帮助表示赞赏!

参考这里是我要运行的命令

mysqldump -u [username] --password=~/wp_backups/sqldumps/.sqlpwd [database name] > ~/wp_backups/sqldumps/"$(date '+%F').sql"
Run Code Online (Sandbox Code Playgroud)

gal*_*axy 13

您有以下密码选项:

  • 通过-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
Run Code Online (Sandbox Code Playgroud)

然后确保该文件具有 0600 权限。这种方式mysqldump不需要在其命令行上指定任何数据库凭据(它们将从~/.my.cnf文件中读取。