2

Фон

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

Эта проблема

У меня есть несколько псевдонимов, переменных, функций и настроек, которые существуют в моем личном логине .bash_profile. Ни один из них не доступен в .bash_profile общего суперпользователя. Моя текущая работа заключается в том, что каждый раз, когда я становлюсь суперпользователем, я заново запускаю свой файл .bash_profile из домашнего каталога моего личного пользователя. Мне не разрешено редактировать материал инициализации для супер пользователя

Вопрос

Есть ли какой-нибудь способ, которым я могу автоматизировать мою последовательность sudo так, чтобы она выполняла мой личный .bash_profile после того, как я выполнил sudo, не требуя, чтобы я редактировал материал инициализации bash суперпользователя?

3 ответа3

1

sudo есть возможность сохранить окружение человека, ссылающегося на него, хотя и с некоторыми оговорками. Со страницы руководства

-E Параметр -E (сохранить среду) переопределит параметр env_reset в sudoers (5)). Он доступен только в том случае, если соответствующая команда имеет тег SETENV или опция setenv установлена в sudoers (5).

1

редактировать /etc /sudoers (visudo)

создать или изменить переменную по умолчанию env_keep

Defaults    env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
                        LS_COLORS MAIL PS1 PS2 QTDIR"

Это сохранит указанные переменные среды в вашей среде после выполнения sudo.

Или закомментируйте значения по умолчанию env_reset, но учтите, что это опасно!

#Defaults    env_reset

Это удерживает всю оболочку от оболочки до выполнения sudo.

1

Вы можете сохранить псевдонимы с помощью этой небольшой хитрости:

alias sudo='sudo '

Что позволяет проверить следующий аргумент на предмет расширения псевдонима (из вашего текущего профиля!)

От псевдонима человека:

Завершающий пробел в значении вызывает проверку следующего слова на предмет замены псевдонима при раскрытии псевдонима.

YMMV для функций и т.д.

Env_reset в /etc /sudoers - это другой обходной путь, который я нашел.

http://blog.edwards-research.com/2010/07/keeping-aliases-with-sudo-sort-of/

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