Dentro de la cárcel de FreeBSD: configuración de variables de entorno global

Dentro de la cárcel de FreeBSD: configuración de variables de entorno global

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/profilecomo 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 shybash

/etc/profilees 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 cshcomotcsh

$ 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 exportcomando en cshy 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 cshytcsh

/etc/csh.cshrces el lugar adecuado para establecer el entorno global para cshy tcsh. Por ejemplo

root@test_01:~ # cat /etc/csh.cshrc
setenv NODE_ENV production

El shell predeterminado de rootes 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

información relacionada