Задать системную переменную среды с помощью bash-скрипта?

У меня есть скрипт bash, для которого мне нужно добавить системную переменную среды , доступную для всех пользователей, и она должна быть постоянной . Я попытался:

#!/bin/bash
$EDITOR ~/.profile
export MY_VAR="123"

Но я получаю сообщение об ошибке: line 2: /root/.profile: Permission denied, даже если я выполняю его как root.

0
задан 12 January 2018 в 22:59

1 ответ

Ошибка, которую Вы получаете, вероятна потому что EDITOR не установлен - таким образом, Ваша команда становится

~/.profile

который пытается выполниться .profile из пользователя вызова (ясно root в этом случае).

Даже если установленный $EDITOR обычно точки к интерактивному текстовому редактору - это не собирается волшебно проводить следующую строку и вставлять его в файл. В любом случае /root/.profile персональное .profile файл для пользователя root - никакая справка, если Вы хотите изменить среду в масштабе всей системы.

Для внесения изменения в масштабе всей системы необходимо изменить также /etc/profile или /etc/environment1 - или (лучше) создайте пользовательский файл в /etc/profile.d/ каталог, например.

echo 'export MY_VAR="123"' >> /etc/profile.d/myvars

Ваш скрипт должен будет, конечно, быть запущен как корень, например, использование sudo


[1] обратите внимание на это, если Вы используете /etc/environment, удалите export (переменные в этом файле просто определяются как простые name=value пары)

1
ответ дан 12 January 2018 в 22:59

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

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