Настройка ПУТИ таким образом, чтобы он применялся ко всем пользователям, включая root/sudo

Инструкции в Как мне установить переменные ПУТИ для всех пользователей на сервере? поработайте над тем, чтобы задать ПУТЬ для всех "обычных" пользователей. Однако, если я это сделаю sudo -s и затем printenv PATH обновленный путь не отображается. Я взглянул, например, на Настройка TeX Live path для root, но мне кажется, что это не имеет смысла, возможно, потому, что я из Windows. Есть ли какой-либо способ установить действительно общесистемный путь, чтобы записи наследовались абсолютно каждым процессом, запущенным в системе?

Обновление:

Установка глобальных переменных среды по-прежнему должна выполняться в /etc/environment, но, как вы указали, используя sudo -s имеет эффект, когда эти переменные "исчезают".

Причиной этого является sudo проводит политику сброс настроек среды и установив безопасный путь. Он включен по умолчанию:

/etc/sudoers:Defaults  env_resetDefaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Таким образом, все, что установлено в /etc/environment ибо путь переопределен sudo.

Страница руководства для sudoers состояния:

   env_reset       If set, sudo will reset the environment to only contain                   the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*                   variables.  Any variables in the caller's environment                   that match the env_keep and env_check lists are then                   added.  The default contents of the env_keep and                   env_check lists are displayed when sudo is run by root                   with the -V option.  If the secure_path option is set,                   its value will be used for the PATH environment                   variable.  This flag is on by default.

В качестве обходного пути вы можете использовать sudo su это обеспечит оболочку с правами суперпользователя, но содержащую правильный ПУТЬ.


Оригинальный Ответ

Вы должны установить его в /etc/environment.

Попробуй sudo YOUR_TEXT_EDITOR /etc/environment (сначала обязательно создайте резервную копию).

Для получения дополнительной информации: Переменные среды

Общесистемные переменные среды

Параметры переменных среды, которые влияют на систему в целом (а не только на конкретного пользователя), не должны помещаться ни в один из многих сценариев системного уровня, которые выполняются при загрузке системы или сеанса рабочего стола, а в

/etc/environment - Этот файл специально предназначен для общесистемных настроек переменных среды. Это не файл сценария, а скорее состоит из выражений присваивания, по одному на строку. В частности, в этом файле хранятся общесистемные настройки локали и пути.

Не рекомендуется:

/etc/profile - Этот файл выполняется всякий раз, когда вводится оболочка входа в систему bash (например, при входе в систему с консоли или по ssh), а также DisplayManager при загрузке сеанса рабочего стола. Вероятно, это тот файл, на который вы будете ссылаться, когда будете спрашивать опытных системных администраторов UNIX о переменных среды. Однако в Ubuntu этот файл делает немногим больше, чем вызывает файл /etc/bash.bashrc.

/etc/bash.bashrc - Это общесистемная версия файла ~/.bashrc. Ubuntu по умолчанию настроен на выполнение этого файла всякий раз, когда пользователь входит в оболочку или среду рабочего стола.

sudo -i будет имитировать вход в систему (аналогично sudo su -) и, таким образом, предоставить вам эти переменные среды.

В случае, если нам нужно добавить /usr/local/bin в root's PATH путем добавления той же записи в /etc/sudoers файл, затем используйте команду sed следующим образом

sudo sed -i '/^Defaults secure_path/ s/$/\:\/usr\/local\/\bin/' /etc/sudoers