~/.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
Другие вопросы по тегам