
Necesito configurar una variable de entorno para todo el sistema (es decir, NODE_ENV=producción) en una cárcel de FreeBSD.
Intenté configurarlo en /etc/profile, pero cuando lo obtuve
root@www:/ # source /etc/profile
Obtuve
export: Command not found.
Funciona en el sistema anfitrión.
También intenté configurarlo /.chsrc. Pero eso sólo hace que la variable esté disponible para root pero no para otros usuarios de la cárcel.
Respuesta1
P:"Establezca una variable de entorno para todo el sistema en una cárcel de FreeBSD".
R: Establezca la variable tanto en /etc/profile
como en /etc/csh.cshrc
.
Detalles
Citando de3.9. Conchas
La forma de configurar una variable de entorno difiere entre shells. En tcsh(1) y csh(1), use setenv para configurar variables de entorno. En sh(1) y bash, use export para configurar las variables de entorno actuales.
Todos los ejemplos siguientes fueron ejecutados en una cárcel.
FreeBSD test_01.example.org 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC i386
Usuarios con shell predeterminado sh
ybash
/etc/profile
es el lugar adecuado para establecer el entorno global. Por ejemplo
$ cat /etc/profile
NODE_ENV=production; export NODE_ENV
Citando deperfil(4)
Todos los usuarios que tienen el shell, sh(1), como comando de inicio de sesión, ejecutan los comandos de estos archivos como parte de su secuencia de inicio de sesión.
Por ejemplo, el usuarioadmin
$ grep admin /etc/passwd
admin:*:1001:1001:User &:/home/admin:/bin/sh
ejecuta/etc/profile
"como parte de su secuencia de inicio de sesión"y establece el ambiente
$ echo $NODE_ENV
production
Este entorno se preservará tanto dentro csh
comotcsh
$ csh
admin@test_01:~ % echo $NODE_ENV
production
También será preservado porsu
$ su
root@test_01:/home/admin # echo $NODE_ENV
production
No hay ningún export
comando en csh
y tcsh
. Esto explica el error.
$ csh
admin@test_01:~ % source /etc/profile
NODE_ENV=production: Command not found.
export: Command not found.
Usuarios con shell predeterminado csh
ytcsh
/etc/csh.cshrc
es el lugar adecuado para establecer el entorno global para csh
y tcsh
. Por ejemplo
root@test_01:~ # cat /etc/csh.cshrc
setenv NODE_ENV production
El shell predeterminado de root
es por defectocsh
root@test_01:~ # grep root /etc/passwd
root:*:0:0:Charlie &:/root:/bin/csh
Esto establece el ambiente
root@test_01:~ # echo $NODE_ENV
production