执行 sudo 时如何保留环境变量?(csh,CentOS)

执行 sudo 时如何保留环境变量?(csh,CentOS)

我读过了 如何让 sudo 保留我的环境变量?并且我的 /etc/sudoers 文件中有下面的几行。

Defaults        env_reset
.....
Defaults        env_keep += "PATH"

但是当我执行 sudo 时,我的 PATH 变量不同,如下所示。

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

有什么问题?我在 CentOS 6.7 (Final) 上的 tcsh 上执行此操作。

编辑(问题已更改):(感谢 quixotic)在 sudoers 文件中的 secure_path 中添加“。”后,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

我怎样才能让 shell 不忽略 secure_path 中的“.”?我不想输入“./executable”,这就是我提出这个问题的原因。

相关内容