1

Я использую OpenSuse 12.1 KDE. Ранее я работал под управлением Ubuntu. В Ubuntu появилась опция суперпользователя sudo -s сохранившая исходного пользователя HOME ENV вара (и другой вариант, sudo -i что установить целевой пользователя HOME ENV вар).

Я хочу иметь такую же функциональность в OpenSuse. Тем не менее, по умолчанию каждый вариант su или sudo который я пробовал, устанавливает значение HOME env var для целевого пользователя.

Может ли кто-нибудь дать мне точные шаги для реализации одного варианта (т.е. псевдоним или что-то) из su или sudo который будет делать следующее:

  • сохранение исходного пользователя HOME ENV вар
  • объединить исходный пользователь PATH ENV вар с целевым пользователем PATH окр варом
  • в противном случае работайте аналогично sudo -s в Ubuntu или su в OpenSuse.

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

1 ответ1

1

Вы можете передать переменные окружения в среду sudo из командной строки:

sudo env HOME=$HOME PATH=$PATH <command>

Поскольку подстановки переменных происходят в первую очередь, текущие версии переменных подставляются в командной строке, а затем запускаются с командой env в новой среде, а затем выполняется <command> .

Однако это не соответствует вашей второй критерии объединения путей, но вы можете заключить это в сценарий и передать именно тот путь, который хотите, в среду sudo . Пути на уровне системы не сильно меняются, особенно если учесть, что вы оставляете как можно больше ванили. Таким образом, в вашем скрипте вы можете установить новую переменную пути и затем перейти к sudo:

#!/bin/bash
PATH2=$PATH:/usr/sbin:/sbin
sudo env PATH=$PATH2 HOME=$HOME $@

Назовите это «mysudo», возможно, и вы даже можете использовать псевдоним sudo для mysudo в вашем профиле bash, чтобы ваша мышечная память для ввода sudo все еще работала .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .