Як встановити стійкі змінні середовища для root?


40

Щоб створити стійкі змінні середовища, я додаю файл сценарію в каталог /etc/profile.d, наприклад:

# мій сценарій
експортувати MY_VAR = var_value

Це працює належним чином для поточного користувача:

alex @ alex-64: ~ $ echo $ MY_VAR
вар-значення

Тепер мені потрібні ті ж змінні середовища для користувача root, але сценарій /etc/profile.d не працює для root:

alex @ alex-64: ~ $ echo $ MY_VAR
вар-значення
alex @ alex-64: ~ $ sudo su
root @ alex-64: / home / alex # echo $ MY_VAR

root @ alex-64: / home / alex # 

Як я можу встановити однакові змінні для кореня?


2
Це питання про те, як зберегти певну змінну з оточення абонента під час запуску sudo, дуже пов'язане. (Але це не дублікат, тому що це питання про те, як налаштувати власне середовище root .)
Eliah Kagan

Відповіді:


44

Судо зазвичай не зберігає змінні локального середовища. Ви повинні використовувати його з -Eкомутатором, щоб зробити це, тобто sudo -E suзбережете $ MYVAR для root.

Крім того, для створення стійких змінних, які справді є загальносистемними, вам слід встановити їх /etc/environment.


14
Не працює, / etc / environemnt змінні не встановлені для sudo
Frederic Yesid Peña Sánchez,

3
@ FredericYesidPeñaSánchez це зробив для мене на CentOS. Ви не займаєтеся сценарієм там, ви просто виконуєте прості завдання в кожному рядку, тобтоFOO=bar
iamyojimbo

10

Подібно до процесу, який ви визначаєте власну змінну середовища, наприклад, редагуючи '~ / .bashrc', ви можете визначити змінну середовища root, відредагувавши '/root/.bashrc'.


8

Defaults env_resetin /etc/sudoersскине корінь, PATHвизначений /etc/environment.

Ви можете змінити його, Defaults !env_resetщоб відключити скидання або додати:

Defaults secure_path="my/custom/path:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin

Якщо я хочу використовувати друге рішення (означає додати шлях до secure_path), що є ключовим ?! шлях - це просто значення. Я хочу додати ANDROID_NDK до змінних середовища для root. Тож наразі я просто використовую перший (! Env_reset) .Дякую.
Dr.jacky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.