gpt4 book ai didi

linux - linux 的加密密码文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:22 25 4
gpt4 key购买 nike

我使用的是redhot linux

我将数据库用户名和密码存储到一个名为 filename.txt 的文本文件中。这个 filenam.txt 是我的 shell 脚本中的一个变量。

filename=/home/oracle/filename.txt
vi filename.txt
auth scott tiger

username=`cat ${filename} | grep auth | awk ' {print $2}'`

password=`cat ${filename} | grep auth | awk ' {print $3}'`

我正在我的脚本中使用此用户名和密码变量来连接到数据库。

任何人都可以帮助我如何加密这个文本文件(文件名)。以免其他人盗取其中的数据。以及如何使用加密文本文件。

最佳答案

您的问题中有很多这取决于,很大程度上取决于谁有权访问该脚本以及谁需要运行它?

如果只有您需要访问该文件,并且您不想让其他人看到该文件,请确保您是该文件的所有者,并将文件权限设置为0600,这样只有您拥有filename.txt的读取权限

另一方面,如果您将脚本发布在您的盒子上的公共(public)位置(例如/usr/local/bin),并且需要多个人能够运行该脚本,则您可以通过创建一个通用的 unix 并将文件名的读取权限设置为最多 0640 来将文件的读取限制为仅那些需要运行该脚本的人。但是,该组的所有成员仍具有该文件的读取权限。 (不,您不能使文件组可执行但不能被该组读取)

最后,如果您对文件进行加密,则会带来其自身的问题。然后,该脚本必须 (1) 提示输入密码,或 (2) 包含密码本身。这并没有给你带来多大好处,你还不如让数据库提示输入密码,并将密码限制传播给那些需要运行它的人。

但是您的问题是关于加密的,所以我们至少看一下。有许多可用的工具,pgpopenssl 等。以 openssl 为例,您可以轻松地使用以下方法加密 filename.txt:

openssl des3 -salt -in filename.txt -out filename.des -pass pass:thepassword

或使用-k选项代替-pass:

openssl des3 -salt -in filename.txt -out filename.des -k thepassword

如果未指定密码选项,系统将提示您输入密码

解密的工作方式相同,只需添加 -d 选项并反转 -in-out 文件名(确保您这样做,否则可能会损坏文件):

openssl des3 -d -salt -in filename.des -out filename.txt -k thepassword

显然,这不会给您带来太多好处,因为 filename.txtthepassword 仍然可见,并且有权访问脚本的人可以使用它来解密 filename.txt

因此,向那些需要文件凭据的人隐藏凭据文件并不是一件容易的事。现在,如果您进行搜索,您可能会发现一些基于 key 的方案可以让您更接近,但这不是我的舌尖上的东西。您还受到 shell 脚本的限制,无法使用 setuid/setgid 以其他权限运行(不会创建大的安全漏洞)。

希望这有帮助。只是没有涵盖所有可能性的 Elixir ,也没有简单的方法可以在脚本中对密码进行硬编码,然后以您可以使用的方式(例如使用 .htaccess 文件和 Web 服务器)阻止对脚本用户的读取访问。

关于linux - linux 的加密密码文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26570335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com