Linux 在/etc/environment中将命令替换为其输出

Linux 在/etc/environment中将命令替换为其输出,linux,shell,environment-variables,Linux,Shell,Environment Variables,我有剧本 S3_AWS_SECRET_ACCESS_KEY=\`cat /tmp/decrypted | cut -d= -f2 | cut -d, -f1\` S3_AWS_ACCESS_KEY_ID=\`cat /tmp/decrypted | cut -d= -f3\` 无论何时,我都希望如此 source /etc/environment 在`和`之间的命令将被执行,并由其输出替换 因此,生成的/etc/环境如下所示 S3_AWS_SECRET_ACCESS_

我有剧本

   S3_AWS_SECRET_ACCESS_KEY=\`cat /tmp/decrypted | cut -d= -f2 | cut -d, -f1\`
   S3_AWS_ACCESS_KEY_ID=\`cat /tmp/decrypted | cut -d= -f3\`
无论何时,我都希望如此

   source /etc/environment
在`和`之间的命令将被执行,并由其输出替换 因此,生成的/etc/环境如下所示

   S3_AWS_SECRET_ACCESS_KEY=SOMEKEY
   S3_AWS_ACCESS_KEY_ID=SOMEID

这不是
/etc/environment
的工作方式。它不会被计算,当然也不会被任意的shell计算

您可以做您想做的事情,但是您需要使用shell启动脚本(这不适用于非shell进程)


但请注意,除非
/tmp/decrypted
是一个短暂的文件,否则这甚至都不是真正意义上的“安全性”(即使是,我不知道它对于这种用法有什么意义,但作为一种“安全性”措施,它仍然没有真正意义)。

这不是
/etc/environment
的工作方式。它不会被计算,当然也不会被任意的shell计算

您可以做您想做的事情,但是您需要使用shell启动脚本(这不适用于非shell进程)


但请注意,除非
/tmp/decrypted
是一个短暂的文件,否则这甚至不是真正意义上的“安全性”(即使是,我不知道它如何真正用于此用途,它仍然不是真正意义上的“安全性”措施)。

谢谢你的回复,我认为这可能会发生,我最终用这个echo“AWS_ACCESS_KEY_ID=
cat/tmp/decrypted | cut-d=-f2 | cut-d,-f1
AWS_SECRET_ACCESS_KEY=
cat/tmp/decrypted | cut-d=-f3
”>/etc/etc/environment文件变成硬编码,这样我就可以进行源代码验证了,只要把解码后的值放在那里就行了,而且我想这并不是说安全性会降低。谢谢你的回复,我想这可能会发生,我终于妥协了“AWS_ACCESS_KEY_ID=
cat/tmp/解密| cut-d=-f2 | cut-d,-f1
AWS_SECRET_ACCESS_KEY=
cat/tmp/解密| cut-d=-f3
“>>/etc/environment,这样/etc/environment文件就变成了硬编码文件,这样我就可以正确地执行源代码了,只需将解码后的值放在其中就可以了,而且不会以我能想到的任何方式降低安全性。