为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要改变路线?

为什么要改变路线?

为什么要改变路线?这是PATH没有sudo的变量:$ echo 'echo $PATH' | sh  /opt/local/ruby/bin:/usr/bin:/bin这是PATH变量与sudo:$ echo 'echo $PATH' | sudo sh /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin据我所知,sudo应该离开PATH没碰过。到底怎么回事?我该怎么改变这个?(这是在Ubuntu8.04上)。更新:据我所见,没有一个脚本是以根更改启动的。PATH无论如何。从…man sudo:为了防止命令欺骗,sudo检查`.‘。和“`”(都表示当前目录)在搜索用户路径中的命令时最后(如果其中一个或两者都在路径中)。但是,请注意,实际的PATH环境变量没有被修改,而是不改变地传递给SUDO执行的程序。
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

特征在许多分布上。

为了在ubuntu上解决这个“问题”,我在我的~/.bashrc中做了以下工作

alias sudo='sudo env PATH=$PATH'

注意,上面的命令适用于不重置$path本身的命令。然而,‘su’重置它是$path,所以您必须使用-p来告诉它不要这样做。即:

sudo su -p


查看完整回答
反对 回复 2019-06-24
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如果其他人运行了,并且只想禁用所有用户更改的所有路径变量。
使用以下命令访问sudoers文件:visudo..您应该在某个地方看到以下一行:

默认env重置

应该在下一行中添加以下内容

缺省值!安全路径

在默认情况下,安全路径是启用的。此选项指定在执行操作时创建$path的内容。感叹号禁用该功能。


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 538 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信