Мне нужно установить общесистемную переменную среды (например, NODE_ENV = production) в тюрьме FreeBSD.
Я попытался установить его в / etc / profile, но когда я его нашел
root@www:/ # source /etc/profile
я получил
export: Command not found.
Он работает в хост-системе.
Я также пробовал установить его /.chsrc. Но это делает переменную доступной только для root, но не для других пользователей тюрьмы.
Вопрос: «Установить общесистемную переменную среды в тюрьме FreeBSD».
A: Установите переменную как в /etc/profile
и /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