![将 mysql 根密码存储在 /root/.my.conf 上安全吗?](https://linux22.com/image/715991/%E5%B0%86%20mysql%20%E6%A0%B9%E5%AF%86%E7%A0%81%E5%AD%98%E5%82%A8%E5%9C%A8%20%2Froot%2F.my.conf%20%E4%B8%8A%E5%AE%89%E5%85%A8%E5%90%97%EF%BC%9F.png)
我以前从未想过这个。我为所有帐户(web/server-admin/etc)使用密码管理器。
但是今天我读到关于在 Debian 服务器中安装 Nextcloud 的文章,其中写道:
您应该将您的 MariaDB 根用户名和密码保存在 .my.cnf 文件中,因为这将使您能够登录 MariaDB 并执行 SQL 命令而无需密码提示。
@如何在 Debian 9 上使用 HTTPS 安装 Nextcloud 12 服务器
我是不是该?
在寻找这个问题的答案时,我发现了这一点:mysql 根密码-应该存储在哪里?,暗示这是一种正常情况。
我已经运行了mysql_secure_installation
脚本。因此,root 密码已更改。我应该将此密码放入此/root/.my.cnf
文件中吗?
有没有关于此的更多信息?我觉得这真的难以置信:在我的服务器中以纯文本形式存储密码对我来说似乎是一个非常糟糕的主意。
更新:我觉得还不够清楚。是我的错。所以,我想澄清一下:我没有以 root 身份登录到我的服务器。事实上,它被禁用了,我的用户在 sudoers 组中。我为在服务器中创建的每个数据库都创建了一个用户数据库。正如我已经说过的:我运行了脚本来保护数据库。
答案1
您可以将根密码存储在其他地方,您的常用密码管理器似乎是一个有用的地方,并且只需在您需要以 MariaDB 根用户身份登录时输入它,而数据库服务器配置完成后,这种情况可能并不那么频繁。
我不知道 MariaDB 是否与 MySQL 功能兼容,可以使用以下加密方式存储您的凭据:MySQL 配置编辑器但~/.mylogin.cnf
如果您确实想在服务器上存储密码,这可能是一个选择。
或者启用插入为了套接字认证对于 root 用户(或您自己的用户),MariaDB 信任通过套接字接收的操作系统凭据并且不依赖密码(提交或存储在纯文本文件中)可能是一种选择。
答案2
由于多种原因,我个人认为这是糟糕的建议。
- 通常您不应该以 root 身份登录。
- 即使你是这样,你通常也不应该MySQL 的根。
- 即使如此,您也应该使用密码管理器或支持安全保存密码的 SQL 客户端。
这里的便利不值得牺牲安全性,并且只有当您已经做了一些其他不安全的做法时才会方便。
答案3
就我个人而言,我总是保持谨慎,并且只有当你不介意密码保护的信息不安全或被恶意用户完全破坏的情况下才会这样做。