Используйте внимательно, есть проблемы безопасности с sudo и переменными.
Из man sudoers
я обнаружил, что вы должны использовать
Defaults env_reset
Defaults env_keep += "PYTHONPATH OTHERVARIABLE YETANOTHER"
В Ubuntu sudo
сохраняет некоторые переменные. sudo -i
больше похоже на вход в систему от имени пользователя root и последующее выполнение команды.
И то, и другое может быть неудобно: первый для sudo nano myfile
оставляет файлы, принадлежащие root, в вашем доме, а второй для sudo -i nano myfile
попытается открыть /root /myfile.
Бежать
sudo printenv PATH
и посмотрим, что это даст. Здесь это дает
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
например. Теперь запустите sudo visudo
и добавьте строку
Defaults secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
заменив тем, что вы нашли прямо перед этим. Добавьте новый путь к нему, если вам нужно.
О библиотеках:
sudo LD_LIBRARY_PATH=/usr/lib/path/to/a/safe/library your command
В дистрибутивах Linux много внимания PATH
, и вы действительно должны быть осторожны, прежде чем поиграть с ним.
Будьте особенно осторожны при добавлении путей типа " .
" Или /home/username
, это небезопасно.
Одна из опасностей добавления путей заключается в том, что он открывает возможность запуска файлов по этим путям root
, открывая окна в системе безопасности, которые могут быть использованы вредоносным программным обеспечением. Могут быть и другие опасности. Просто убедитесь, что вы знаете, что делаете. Обход мер безопасности sudo
может сделать ваш Solaris таким же безопасным, как Windows XP.