Использовать пользовательскую конфигурацию без полномочий root для учетной записи root

Когда я работаю с терминалом и использую su или sudo для выполнения команды с правами пользователя root, можно ли применить конфигурацию моего «пользователя без полномочий root» (из которого я вызываю su или sudo ), хранящегося в этом пользователе домашний каталог?

Например, учтите, что (будучи зарегистрированным как пользователь без полномочий root) я хотел бы отредактировать файл конфигурации /etc/some_file с помощью vim и что мой файл конфигурации vim находится по адресу /home/myuser/.vimrc . Запустив командную строку и набрав sudo vim /etc/some_file , я хочу, чтобы появился «мой» красивый и хорошо сконфигурированный vim . Но то, что я получаю, является уродливым vim с конфигурацией по умолчанию, без плагинов и т. Д.

Могу ли я использовать su или sudo использования файлов конфигурации моего пользователя вместо файлов пользователя root, расположенных в / root?

2 Solutions collect form web for “Использовать пользовательскую конфигурацию без полномочий root для учетной записи root”

Используйте sudo -E для сохранения вашей среды:

 $ export FOO=1 $ sudo -E env | grep FOO FOO=1 

Это сохранит $HOME и любые другие переменные среды, которые у вас были, поэтому к тем же файлам конфигурации, с которых вы начали, будут доступны программы с правами root.

Вы можете обновить sudoers чтобы отключить параметр env_reset , который очищает все переменные среды и обычно включается по умолчанию. Возможно, вам придется включить возможность использования sudo -E вообще там. Есть несколько других настроек sudoers , которые могут быть релевантными: env_keep , который позволяет указывать определенные переменные для хранения по умолчанию и env_remove , который всегда объявляет переменные. Вы можете использовать sudo sudo -V чтобы увидеть, какие переменные / не сохраняются.

Альтернативой, если вы не можете изменить sudoers , является предоставление вашей среды явно:

 sudo env HOME=$HOME command here 

Вы можете сделать псевдоним оболочки, чтобы сделать это автоматически, поэтому вам не нужно вводить его.

Обратите внимание, что выполнение этого (в любом случае) может иметь потенциально нежелательные побочные эффекты: если программа, которую вы запускаете, пытается сделать файлы в вашем домашнем каталоге, например, эти файлы будут созданы как root, и ваш обычный пользователь не сможет писать им.

Для конкретного случая vim вы также можете поместить свой .vimrc как общесистемный /etc/vimrc если вы единственный пользователь этой системы.

Настройте sudo для сохранения переменной среды HOME .

Запустите visudo чтобы отредактировать конфигурацию sudo. Убедитесь, что параметр always_set_home не установлен, и этот HOME присутствует в списке env_keep . Добавьте следующие строки:

 Defaults !always_set_home Defaults env_keep+="HOME" 

Удалите строку, такую ​​как Defaults always_set_home если она есть.

  • как получить доступ к другому пользователю может получить доступ к моей учетной записи?
  • Выбор редактора при работе в sudo
  • RHEL sudo еще не разрешено для пользователя tina '
  • Ошибка аутентификации su, ошибка sudo
  • Может ли Webmin работать как sudoer вместо root?
  • Какие плохие вещи могут произойти, если мы не будем использовать sudoedit?
  • Управление другими системными модулями пользователя
  • Как вставить текст в файл root, используя sudo?
  • «Команда не найдена», когда функция sudo'ing от ~ / .zshrc
  • Какой сценарий может позволить обычным пользователям использовать пространства имен в сети?
  • Как только sudo su'd root, есть ли команда, чтобы увидеть мое имя пользователя?
  • sudo и fish: нет кэширования учетных данных
  • Linux и Unix - лучшая ОС в мире.