У меня есть скрипт bash, для которого мне нужно добавить системную переменную среды , доступную для всех пользователей, и она должна быть постоянной . Я попытался:
#!/bin/bash
$EDITOR ~/.profile
export MY_VAR="123"
Но я получаю сообщение об ошибке: line 2: /root/.profile: Permission denied
, даже если я выполняю его как root.
Ошибка, которую Вы получаете, вероятна потому что EDITOR
не установлен - таким образом, Ваша команда становится
~/.profile
который пытается выполниться .profile
из пользователя вызова (ясно root
в этом случае).
Даже если установленный $EDITOR
обычно точки к интерактивному текстовому редактору - это не собирается волшебно проводить следующую строку и вставлять его в файл. В любом случае /root/.profile
персональное .profile
файл для пользователя root
- никакая справка, если Вы хотите изменить среду в масштабе всей системы.
Для внесения изменения в масштабе всей системы необходимо изменить также /etc/profile
или /etc/environment
1 - или (лучше) создайте пользовательский файл в /etc/profile.d/
каталог, например.
echo 'export MY_VAR="123"' >> /etc/profile.d/myvars
Ваш скрипт должен будет, конечно, быть запущен как корень, например, использование sudo
[1] обратите внимание на это, если Вы используете /etc/environment
, удалите export
(переменные в этом файле просто определяются как простые name=value
пары)