
FreeBSD 감옥에서 시스템 전체 환경 변수(예: NODE_ENV=production)를 설정해야 합니다.
/etc/profile에 설정하려고 했지만 소스를 제공했을 때
root@www:/ # source /etc/profile
나는 얻었다
export: Command not found.
호스트 시스템에서 작동합니다.
또한 /.chsrc 설정을 시도했습니다. 그러나 이는 변수를 루트에서만 사용할 수 있게 만들고 감옥의 다른 사용자는 사용할 수 없게 만듭니다.
답변1
큐:"FreeBSD 감옥에 시스템 전체 환경 변수를 설정합니다."
/etc/profile
A: 및 에서 변수를 모두 설정하십시오 /etc/csh.cshrc
.
세부
에서 인용3.9. 포탄
환경 변수를 설정하는 방법은 쉘마다 다릅니다. tcsh(1) 및 csh(1)에서는 setenv를 사용하여 환경 변수를 설정합니다. sh(1) 및 bash에서는 내보내기를 사용하여 현재 환경 변수를 설정합니다.
아래의 모든 사례는 감옥에서 처형되었습니다.
FreeBSD test_01.example.org 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC i386
기본 쉘을 사용하는 sh
사용자bash
/etc/profile
글로벌 환경을 설정하기에 적합한 곳입니다. 예를 들어
$ cat /etc/profile
NODE_ENV=production; export NODE_ENV
에서 인용프로필(4)
쉘 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.
기본 쉘을 사용하는 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
production