【问题标题】:How not to store mariadb credentials in bash scripts in git [duplicate]如何不在 git 的 bash 脚本中存储 mariadb 凭据 [重复]
【发布时间】:2019-06-05 14:59:38
【问题描述】:

我有带有 MariaDB(不是 MySQL)SQL 的 Bash 脚本,我使用 cron(非交互方式)运行以在 Raspberry Pi 上运行。我只是为我自己在公共 Github 上开发它们 - 但回购是免费和公开的。

我可以做些什么来使我的 MariaDB 凭据不包含在我提交到公共 Github 的脚本中?

【问题讨论】:

  • 可能会跟踪您的脚本版本,该版本具有虚假或没有凭据。仅在您想要实际运行应用程序时使用您自己的凭据更新它们,但不要将其作为您提交/跟踪的脚本版本。如果您在多个脚本中都有凭据并且这很乏味,您可以使用另一个脚本自动设置。 :)
  • 看看mysql_config_editor能否解决你的问题。
  • 谢谢。我想要这样的东西,但我在 MariaDB - 那里不支持:-( mariadb.com/kb/en/library/mysql_config_editor-compatibility

标签: bash git github mariadb


【解决方案1】:

通常在这种情况下,人们会将他们的凭据保存在由主脚本提供的单独脚本中的变量中。他们最初会将虚假凭据存储在单独的脚本中,提交,停止跟踪,将其添加到 .gitignore,然后在其中替换他们的凭据。

【讨论】:

  • 谢谢大家。这(以及上面的相关链接)似乎是我正在寻找的最佳折衷方案。我希望有一个特定于 MariaDB 的不同选项,但这项工作很冷。当然,我的下一个问题是如何从 .config 读取/引入内容到 Bash 脚本中。
  • 我最终在项目目录中包含了 my.config(一个带有 shebang 的 shell 文件),并在其中粘贴了凭据和其他敏感变量。我通过调用顶部附近的 source my.config 将其导入我的 bash 脚本。然后所有变量都在整个脚本中可用。我在.gitignore中添加了.config,我会在项目中维护一个config.example。
【解决方案2】:

我建议像这样将脚本的虚拟版本推送到 git:

mariadb.dist.sh

#!/bin/bash
# Please copy this file to maria.db.sh
# and change the credentials
user="foo"
password="bar"

# code follows ...

在您的安装说明中要求用户将该文件复制到 mariadb.sh 并更改其凭据

另外将以下行添加到 .gitignore 并将 .gitignore 推送到 git:

mariadb.sh

这将防止贡献者意外地将他们的凭据推送到 git。

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 1970-01-01
    • 2020-08-31
    • 2012-06-19
    • 2019-10-04
    • 1970-01-01
    • 2020-02-06
    • 2018-12-28
    • 2011-03-09
    相关资源
    最近更新 更多