~/.pam_environment не работает для root
Я хочу использовать zsh за root с oh-my-zsh, у меня уже есть oh-my-zsh клонирован моим обычным пользователем, так что все, что мне нужно сделать, это установить ZSH Переменная env в этот каталог. Так что я положил это в моем /root/.pam_environment:
ZSH=/home/madhead/oh-my-zsh
Это единственная строка в этом файле. Но когда я пытаюсь войти в систему как root (после полной перезагрузки), переменная не устанавливается. Я пробовал оба sudo su а также sudo -iu root, Вот некоторая информация об используемом программном обеспечении:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
# zsh --version
zsh 5.0.2 (x86_64-pc-linux-gnu)
Кроме того, такая же настройка (/root/.pam_environment) нормально работает на моем ноутбуке с Arch Linux.
1 ответ
Официальная документация гласит
... у sudo есть политика по умолчанию для сброса Среды и установки безопасного пути (это поведение определено в /etc/sudoers).
А также
... вы можете настроить sudo, чтобы не сбрасывать определенные переменные окружения, добавив некоторые явные настройки окружения, которые будут храниться в / etc / sudoers.
Просто сделай это
user@here:$ sudo su
root@here:$ visudo
И добавьте эту строку:
Defaults env_keep += "ZSH"
Чтобы проверить, существует ли ваша переменная, выполните выход, затем снова sudo su и запустите export или
printenv ZSH