在YAML(yml)中检索主机名-f

在YAML(yml)中检索主机名-f,yaml,yum,hostname,Yaml,Yum,Hostname,我有一个config.cfg文件,其中包含硬编码的主机名。我试图找到一种本地(动态)获取主机名的方法,方法是运行一个类似于hostname-f的命令,让它在.cfg中配置变量,而无需运行python之类的脚本来提前编写配置文件。是否可以运行“yum”命令来获取YAML/yml文件中要使用的主机名?多亏了Wikipedia,我想我找到了为什么没有人在这方面帮助我的原因: 保安 YAML纯粹是一种数据表示语言,因此没有可执行命令。虽然验证和安全解析在任何数据语言中都是固有的,但实现是一个臭名昭著的

我有一个config
.cfg
文件,其中包含硬编码的主机名。我试图找到一种本地(动态)获取主机名的方法,方法是运行一个类似于
hostname-f
的命令,让它在.cfg中配置变量,而无需运行python之类的脚本来提前编写配置文件。是否可以运行“yum”命令来获取YAML/yml文件中要使用的主机名?

多亏了Wikipedia,我想我找到了为什么没有人在这方面帮助我的原因:

保安 YAML纯粹是一种数据表示语言,因此没有可执行命令。虽然验证和安全解析在任何数据语言中都是固有的,但实现是一个臭名昭著的陷阱,YAML缺少相关的命令语言可能是一个相对安全的优势

但是,YAML允许特定于语言的标记,因此支持这些标记的解析器可以创建任意本地对象。任何允许执行复杂对象实例化的YAML解析器都可能引发注入攻击。允许加载任意类对象的Perl解析器创建所谓的“受祝福”值。使用这些值可能会触发意外行为,例如,如果类使用重载运算符。这可能导致执行任意Perl代码

Python或Ruby解析器的情况类似。根据Pyaml文档


多亏了维基百科,我想我找到了为什么没有人在这方面帮助我:

保安 YAML纯粹是一种数据表示语言,因此没有可执行命令。虽然验证和安全解析在任何数据语言中都是固有的,但实现是一个臭名昭著的陷阱,YAML缺少相关的命令语言可能是一个相对安全的优势

但是,YAML允许特定于语言的标记,因此支持这些标记的解析器可以创建任意本地对象。任何允许执行复杂对象实例化的YAML解析器都可能引发注入攻击。允许加载任意类对象的Perl解析器创建所谓的“受祝福”值。使用这些值可能会触发意外行为,例如,如果类使用重载运算符。这可能导致执行任意Perl代码

Python或Ruby解析器的情况类似。根据Pyaml文档