Я прочитал Как заставить sudo сохранить переменные окружения? и у меня есть строки ниже в моем файле /etc /sudoers.
Defaults env_reset
.....
Defaults env_keep += "PATH"
но моя переменная PATH отличается, когда я делаю sudo, как показано ниже.
ckim@stph45:~/testsocket] printenv PATH
/home/ckim/Neuro/py-faster-rcnn/caffe-fast-rcnn/.build_debug/tools/:/home/ckim/anaconda2/lib:/home/ckim/anaconda2/bin:/home/ckim/uClinux/sparc-uclinux-3.4.4/bin:/opt/abde-rtems/bin:/opt/abde/bin:/opt/abocd/bin:/usr/lib64/qt4/bin:/home1/vivado-2014.3.1/DocNav:/home1/vivado-2014.3.1/Vivado/2014.3.1/bin:.:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/sbin:/usr/X11R6/bin:/usr/local/Acrobat7.0/bin:/home1/cadence/installs/INCISIV152/tools/bin:/home1/cadence/installs/INCISIV152/tools/bin/64bit:/home1/cadence/installs/INCISIV152/tools.lnx86/bin/64bit:/home1/ise132/ISE_DS/ISE/bin/lin64:/home1/ise132/ISE_DS/ISE/synopsys:/home1/ise132/ISE_DS/PlanAhead/bin:/home1/ise132/ISE_DS/ChipScope/bin/lin64:/home/ckim/bin
ckim@stph45:~/testsocket] sudo printenv PATH
/sbin:/bin:/usr/sbin:/usr/bin
Что может быть не так? Я делаю это на tcsh на CentOS 6.7 (Final).
РЕДАКТИРОВАТЬ (вопрос изменен): (спасибо quixotic) После добавления "." для secure_path в файле sudoers, secure_path действует, поэтому я могу позволить ему найти мой исполняемый файл в текущем каталоге, но он выдаёт мне эту ошибку.
ckim@stph45:~/testsocket] sudo TCPEchoServer 7
sudo: ignoring `TCPEchoServer' found in '.'
Use `sudo ./TCPEchoServer' if this is the `TCPEchoServer' you wish to run
Как сделать так, чтобы оболочка не игнорировала "." в secure_path? Я не хочу ставить «./executable», поэтому я начал этот вопрос.