Установка переменных среды для оболочек входа в систему под учетной записью 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 -", поэтому кажется, что проблема больше связана с тем, как Судо используется, чем оболочка.