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 поскольку это не правильная область, плюс, будет трудно поддерживать без переменных.

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

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

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]]). Так что, возможно, в них вообще нельзя сделать ссылку на переменную.

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

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

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

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