PATH не зависит от .pam_environment

Запустив Ubuntu 13.04, я пытаюсь добавить переменные в PATH для сеанса, который рекомендуется делать внутри .pam_environment , но, похоже, ничего не работает. Вот как это выглядит:

JAVA_HOME          DEFAULT=/usr/lib/jvm/java-7-oracle
IDEA_HOME          DEFAULT=/usr/local/idea-IU-129.451/bin
LIGHTTABLE_HOME    DEFAULT=/usr/local/LightTable
CLOUDIFY_HOME      DEFAULT=/home/eliranm/builds/gigaspaces-cloudify
PATH               DEFAULT=${PATH}    OVERRIDE=${PATH}:${JAVA_HOME}:${IDEA_HOME}:${LIGHTTABLE_HOME}:${CLOUDIFY_HOME}

Кажется, что все переменные установлены, кроме PATH, или что он каким-то образом переопределен. Я пытался добавить или добавить переменную ${PATH}, чтобы использовать только DEFAULT, только OVERRIDE, пытался просто указать жестко закодированный путь в качестве значения, но все безрезультатно.

Я следую рекомендациям сообщества помощи Ubuntu и хочу избежать конкатенации жестко запрограммированных путей к PATH внутри /etc/environment, так как это неправильная область действия, плюс, его будет сложно поддерживать с помощью без переменных.

Другие могут быть затронуты этой проблемой, , как указано здесь , но пока никто не дал решения.

Как заставить это работать?

4
задан 13 April 2017 в 15:24

2 ответа

Я думаю, что использование переменной $PATH внутри области видимости /etc/environment или ~/.pam_environment не разрешается, а присваивается точно так же, как и буквально.

На самом деле я вижу, что использование $PATH или любой переменной внутри ~/.pam_environment не рекомендуется в большинстве постов, которые я читаю, как здесь: Почему моя переменная среды не устанавливается .

Так что я действительно не знаю, почему здесь ( переменные среды всего сеанса ) они говорят использовать $PATH в нем.

Я знаю, что Debian удалил разбор локального ~/.pam_environment, так как это представляет большой риск для безопасности.

В любом случае, для моего понимания два файла /etc/environment и ~/.pam_environment используют более простой синтаксис (простые пары KEY=VAL для каждой строки), чем /etc/security/pam_env.conf (VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]). Так что, возможно, внутри них вообще нельзя сделать ссылку на переменную.

0
ответ дан 13 April 2017 в 15:24

Я тоже сталкивался с этим, потому что пытался сделать так, как сказано в документации (я традиционно использую системы на базе Redhat).

Я думаю, что использование $ {PATH} работает, только если ваш путь был изначально задан в файле /etc/security/pam_env.conf. Мне кажется, что исходный путь указан в /etc/login.defs, а затем недоступен.

Я вернулся к установке значений в ~ / .profile, я потратил слишком много времени на отладку этой, казалось бы, простой вещи. Это заставляет меня задуматься о том, что делают другие пользователи Ubuntu, мы не можем быть первыми, кто хотел добавить к переменной path. Я предполагаю, что они сделали то же самое и проигнорировали ~ / .pam_environment.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: