保护bash脚本

有谁知道什么是保护bash脚本的最佳方法。 我有一个脚本,创build数据库和源代码备份,并将其ftp到其他服务器。 目标ftp的login名/密码是纯文本。 我需要以某种方式encryption或隐藏网站黑客的情况下。 或者我应该创build脚本写在C创buildbash文件然后运行它并删除? 谢谢。


谢谢你的回答,我很抱歉,我还不够清楚。 我想在以下几个方面澄清我的问题。

  1. 我们正在将数据存储在Rackspace Cloud文件中。
  2. 我们不能拉,因为文件不允许您运行脚本。
  3. 我们可以编写脚本在服务器A上运行,并在服务器B,C,D等上拉取FTP和MySQL数据。我们希望保护A上的密码免受A被入侵的情况的影响。 我们可以编译我们的脚本文件来隐藏它们吗?

谢谢

当他们必须以纯文本forms供使用时,您不能“保护”证书。 混淆和编码(或“encryption”,如果你想使用这个术语),除了安全性(这实际上并不安全),它们不是什么东西,而且可以说比什么都没有,因为它可以给你一个虚假的安全感)。

你最好重新考虑一下你的策略,从一个曝光不足的机器上执行某种“拉”数据,而不是试图“隐藏”证书。

(另见:信用卡欺诈,ACH诈骗,身份“盗窃”,以及其他愚蠢的现实世界中的安全性模糊不清的例子,这些例子并不是特别有效。必须公开分享的“秘密”并不是秘密的,根据定义。)

我用下面的方法来保护bash脚本中的密码。 如果你想保持隐藏的话,同样的方法也可以用于用户名。 这种方法不是encryption,而是假定正确设置了文件的权限,这将使普通系统用户看不到你想要隐藏的细节。 如果你的系统被黑客入侵,那么这个方法就不会有太多的工作,因为他们可能在那个时候有root权限。

在脚本的顶部设置一个variables,看起来像这样。

MY_PASS=`cat /path/securepasswordfile` 

创build一个只有密码的文本文件,然后用文件权限保护它,这样只有运行该脚本的帐户才能读取这个文件。

然后在你的脚本中访问这个只是使用下面的东西。

 $MYSQL_DUMP -A --host=$SERVER -u root -p$MY_PASS > $BACKUP_DIR/database/backup.sql 

以上引用3d影响:

$ MYSQL_DUMP -A –host = $ SERVER -u root -p $ MY_PASS> $ BACKUP_DIR / database / backup.sql

请注意,在某些发行版中,这将导致密码显示在“ps”的输出中。

不pipe你尝试什么,你都不能做你想做的事情,因为你正在努力去做。 如果你仔细想想,不pipe你怎么努力encryption数据,最终所有的数据都是可用的。

也许更好的select是让远程端SSH并运行这些命令? 这就是我们在工作中所做的 – 一台非常安全的机器ssh进入客户端并备份。 备份机器本身不允许远程SSH等

顺便说一句,如果您使用的是FTP,您的密码已经以明文forms传输了。