Почему в ubuntu нет файла /etc/zsh.d/ и куда мне добавить общесистемные параметры?

Я пытаюсь написать ответную роль, которую необходимо добавить в PATH. Для bash я могу легко добавить файл в /etc/profile.d. Но Zsh, очевидно, не идет с /etc/zsh.d. Есть ли другой рекомендуемый метод?

Обратите внимание, что я, очевидно, мог бы написать в .zshenv, но это возможно для многих систем, и я не хочу касаться файлов, установленных системой. Все в ~/ также не работает, так как я хочу изменить PATH для всей системы.

0
задан 24 April 2016 в 00:42

1 ответ

В масштабе всей системы zprofile (/etc/zsh/zprofile) в Ubuntu содержит:

# /etc/zsh/zprofile: system-wide .zprofile file for zsh(1).
#
# This file is sourced only for login shells (i.e. shells
# invoked with "-" as the first character of argv[0], and
# shells invoked with the -l flag.)
#
# Global Order: zshenv, zprofile, zshrc, zlogin

emulate sh -c 'source /etc/profile'

/etc/profile, в свою очередь, источники .sh файлы в /etc/profile.d программно:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

/etc/profile.d не является особенным ни в каком другом уважении.

Дополнения к PATH Вы делаете в /etc/profile.d должен влиять на оболочки входа в систему zsh. И для пользователей GUI, источников LightDM /etc/profile, так любые дополнения к PATH должно быть доступно любой программе, которая не сбрасывает его, включая zsh.

IMO дополнения В масштабе всей системы к PATH должен быть сделан с помощью pam_env (любой в /etc/environment или /etc/security/pam_env.conf, или пользовательские файлы, указанные дополнительным правилом PAM).

1
ответ дан 24 April 2016 в 10:42

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

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