Другая среда при запуске sudo от имени пользователя root?

Я пытаюсь установить сопроцессор Xeon Phi. Специфическое поведение, вероятно, связано с используемыми инструментами - мой вопрос носит более общий характер.

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

i72:~ # whoami
root
i72:~ # micctrl -s
Segmentation fault
i72:~ # sudo micctrl -s
[no segfault]

Какие различия существуют в окружающей среде micctrl вбегает?

(Правка:) Я думаю, что мы исключили переменные окружения, как вариант ниже.

Система SLES 11.2.

Спасибо!

2 ответа

Решение

sudo удаляет LD_LIBRARY_PATH, LD_PRELOAD из среды (я подозреваю, что он делает это как для root, так и для обычных пользователей). Это может привести к загрузке разных библиотек для программы.

Можно настроить sudo на то, какие переменные он сбрасывает / очищает - см. http://brandonhutchinson.com/wiki/Sudo_and_environment_variables

Оказывается, что sudo просто скрывает сообщение "Ошибка сегментации". Это все еще происходит, но не отображается на терминале. Мы узнали, потому что micctrl никогда не дал нам никакого результата, даже когда это должно было иметь.

Изменить: Кроме того, если кто-то должен столкнуться с проблемой с micctrlВ нашем случае Phi не был правильно распознан системой. lspci нашел его, но он не был указан в /sys/class/mic,

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