Установка переменных среды для оболочек входа в систему под учетной записью root в FreeBSD

В настоящее время я нахожусь в процессе настройки Open Grid Scheduler во FreeBSD. В рамках этого процесса мне нужно установить переменную средыSGE_ROOTкак корень.

Для этого я экспериментировал с попыткой установить это значение с помощью учетной записи root. ~/.profile поскольку эта учетная запись настроена на использование оболочки Bourne в качестве оболочки по умолчанию. Я экспортировал SGE_ROOT следующее: export SGE_ROOT="/usr/local/sge"

Однако при входе в корневую оболочку с SGE_ROOT настроен в это ~/.profile может показаться, что этот метод установки переменной среды не работает с момента запуска команды env возвращает следующее:

SUDO_COMMAND=/usr/bin/su
LOGNAME=root
MAIL=/var/mail/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/ec2-user/bin:/usr/local/sge/bin/fbsd-amd64
SUDO_GID=1001
PWD=/usr/home/ec2-user
TERM=xterm
HOME=/root
USER=root
SHELL=/bin/sh
SUDO_USER=ec2-user
SUDO_UID=1001
USERNAME=root

Однако я заметил, что PATH переменная, которую я также настроил через root ~/.profile включение бинарных файлов Open Grid Scheduler, похоже, было успешно установлено.

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

Поэтому мне интересно, возможно, есть ли лучший способ установить эту переменную для учетной записи root в оболочке Bourne?

Я понимаю, что, вероятно, было бы проще использовать tcsh в качестве оболочки по умолчанию для root, так как обычно это конфигурируется FreeBSD. Однако до сих пор мне пришлось скомпилировать Open Grid Scheduler без поддержки tcsh из-за проблем с utmp.h больше не доступен во FreeBSD.

1 ответ

Я заметил, что у вас есть переменные среды SUDO, поэтому я предполагаю, что вы запускаете это с помощью sudo. Чтобы проверить, я установил оболочку моего пользователя root на / bin / sh и добавил

SGE_ROOT="/ USR / местные / SGE"

экспорт SGE_ROOT

в мой /root/.profile

И я не вижу переменную окружения, если я просто запускаю "sudo sh", но она у меня есть, если я запускаю "sudo -i" или "sudo su -", поэтому кажется, что проблема больше связана с тем, как Судо используется, чем оболочка.

Другие вопросы по тегам