加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从Ruby中的文件中读取变量

发布时间:2020-12-17 04:16:38 所属栏目:百科 来源:网络整理
导读:有没有办法读取环境变量的文件? 在bash中我有一个我可以使用的文件env.sh env.sh foo="bar" bash文件 set -asource env.sh 这将允许我只使用foo,就好像我已经在ruby脚本中对它进行了删除. 还有一种方法可以确保此文件不可读,以便密码可以存储在此文件中吗?
有没有办法读取环境变量的文件?

在bash中我有一个我可以使用的文件env.sh

env.sh

foo="bar"

bash文件

set -a
source env.sh

这将允许我只使用foo,就好像我已经在ruby脚本中对它进行了删除.

还有一种方法可以确保此文件不可读,以便密码可以存储在此文件中吗?

解决方法

听起来你应该为用户/管理员提供一个文件示例来修改他们的个人环境,然后从中填充环境,同时避免将该文件包含在存储库中的敏感信息中.注意:每个文件的安全性将由文件所在的位置以及操作系统和服务器软件来解决.

如果是这种情况,那么您可以提供一个文件,其中包含您正在配置的程序的管理员/用户所需的事物类型的模板.

Ruby具有ENV常量,其作用类似于Hash并保存您正在使用的shell的环境.

例如,有一个名为environment.rb.sample的文件可以公开与任何人共享.它具有说明并保存用户可以自由修改的模板,并提供将文件复制到environment.rb的说明.示例文件如下所示:

# environment.rb.sample
# Copy this file to environment.rb and change the name and password to your credentials
ENV['temp_user_name'] = 'Foo Bar'
ENV['temp_password'] = 'Dazz Kezz

然后将文件复制到此文件,可能:

# environment.rb
ENV['temp_user_name'] = 'Joe Admin'
ENV['temp_password'] = 'Super Secure Password'

加载它并使用它的文件只是一个Ruby文件,由软件的用户/管理员自由修改,看起来像这样,也是公开共享的.

# load_environment
require './environment'
puts ENV['temp_user_name']
puts ENV['temp_password']

这将加载文件并使用ENV作为应用程序的全局范围常量.

然后,文件权限由系统的用户/管理员管理,并像其系统上的任何其他敏感信息一样受到保护.敏感文件也应列在存储库的忽略机制中.永远不应该公开.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读