我需要在一个NODE_ENV=production监狱中设置一个全系统的环境变量(即FreeBSD )。
我确实尝试过将它设置在/etc/profile中,但是当我获取它的时候
root@www:/ # source /etc/profile我得到了
export: Command not found.它在主机系统上工作。
我还尝试将其设置为/.chsrc。但是,这只会使变量可用于根,而不是任何其他的监狱用户。
发布于 2020-01-16 09:39:56
问:“在FreeBSD监狱中设置一个全系统的环境变量。”
A:在/etc/profile和/etc/csh.cshrc中都设置变量。
详细信息
引用3.9.弹壳
设置环境变量的方法因shell而异。在tcsh(1)和csh(1)中,使用setenv设置环境变量。在sh(1)和bash中,使用导出来设置当前的环境变量。
下面所有的例子都是在监狱里处决的
FreeBSD test_01.example.org 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC i386默认外壳的Users sh 和 bash
/etc/profile是设置全局环境的合适位置。例如
$ cat /etc/profile
NODE_ENV=production; export NODE_ENV引用概况(4)
所有拥有shell sh(1)作为登录命令的用户都在这些文件中执行命令,作为登录序列的一部分。
例如,用户admin
$ grep admin /etc/passwd
admin:*:1001:1001:User &:/home/admin:/bin/sh执行/etc/profile“作为其登录序列的一部分”,并设置环境。
$ echo $NODE_ENV
production这个环境将同时保存在csh和tcsh中。
$ csh
admin@test_01:~ % echo $NODE_ENV
production它也将由su保存。
$ su
root@test_01:/home/admin # echo $NODE_ENV
production在export和csh中没有tcsh命令。这就解释了错误。
$ csh
admin@test_01:~ % source /etc/profile
NODE_ENV=production: Command not found.
export: Command not found.默认外壳的Users csh 和 tcsh
/etc/csh.cshrc是为csh和tcsh设置全局环境的正确位置。例如
root@test_01:~ # cat /etc/csh.cshrc
setenv NODE_ENV production默认情况下,root的外壳是csh
root@test_01:~ # grep root /etc/passwd
root:*:0:0:Charlie &:/root:/bin/csh这将设置环境。
root@test_01:~ # echo $NODE_ENV
productionhttps://serverfault.com/questions/998866
复制相似问题