linux - 加载不受信任的配置变量

标签 linux bash shell

我正在开发一个 bash 提示项目,它作用于您当前所在目录中的不同状态。

我现在需要的是一种从当前目录加载迷你配置的方法,这很容易用 完成。 .params.conf,除了这种方法非常不安全,因为当您偶然发现一个包含 .params.conf 文件的目录时,任何对您所在目录具有写权限的人都可以像您一样创建和执行命令.

从这样的文件中加载变量的最佳方式是什么? 变量将主要处于真/假状态,因此我不会以任何方式解析它们以便可以执行。

可能的解决方案:

  • 一个循环,加载每个预定义的变量是可能的,但我想保持代码的可读性。

  • 将整个文件放在一个 bash 数组中是最好的解决方案,但我如何才能像这样在 bash 中填充键/值字典?

  • 如果 bash 可以获取一个只加载变量的文件..

我还不知道 params.conf 文件的格式会是什么样子。但我认为最简单的方法是每个参数一行,用空格分隔。就像每一行中的一个:key value that can have space in it

最佳答案

eval 可以是 very insecure并且仍然可以执行恶意代码。最好使用declare:

while read varname value
do
    declare "$varname=$value"
done < .params.conf

关于linux - 加载不受信任的配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571721/

相关文章:

linux - Linux 服务器上的 Dropbox 安装不起作用

linux - 如何获取终端的字符编码

linux - 写入用户在 session 期间执行它的所有语句

git - 执行 ssh-add 并自动输入密码的脚本

node.js - 如何使用 bash 查看 process.env 的内容?

linux - 将文件移动到当前位置的父目录

c++ - 如何在 Linux 的 C 中使 poll() 立即退出?

linux - 对 bash 行为感到困惑 - Bash/awk mystery

c - 如何在 if-else 语句中使用多个 execvp 调用?

linux - 在 bash 中执行 shell 脚本时如何控制用户定义的命令?