这是PATH没有sudo的变量:
$ echo 'echo $PATH' | sh
/opt/local/ruby/bin:/usr/bin:/bin
这是PATHsudo的变量:
$ echo 'echo $PATH' | sudo sh
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
据我所知,sudo应该PATH保持不变。这是怎么回事?我该如何改变?(这是在Ubuntu 8.04上)。
更新:据我所知,没有一个脚本PATH以任何方式以root身份更改启动。
来自man sudo:
为了防止命令欺骗,当在用户PATH中搜索命令时(如果一个或两个都在PATH中),sudo最后检查
。''和
’‘(均表示当前目录)。但是请注意,实际的PATH环境变量不会被修改,并且会原样传递给sudo执行的程序。
这是 烦人的功能 功能须藤的许多分布。
要解决ubuntu上的“问题”,请在〜/ .bashrc中执行以下操作
alias sudo='sudo env PATH=$PATH'
请注意,以上内容适用于不会自行重置$ PATH的命令。但是`su’将其重置为$ PATH,因此您必须使用-p告诉它不要这样做。IE浏览器:
sudo su -p
问题内容: 我有个问题。我正在编写一个软件,该软件需要执行要求用户处于sudo模式的操作。运行’sudo python filename.py’不是一个选项,这使我想到了我的问题。有没有一种方法可以在python脚本中途更改为sudo,安全性不是问题,因为用户将知道程序应以以下方式运行以说明问题的sudo密码 以普通用户身份运行的程序 ......执行操作 用户输入sudo密码 用户更改为sudo
考虑: 为什么改变的值会改变的值?
问题内容: 尝试使用pip安装virtualenv之后 我收到一个权限被拒绝的错误 所以我用sudo安装virtualenv 但是随后出现警告: 目录“ / Users / petertao / Library / Caches / pip / http”或其父目录不属于当前用户,并且缓存已被禁用。请检查该目录的权限和所有者。如果使用sudo执行pip,则可能需要sudo的-H标志。 目录“ /
问题内容: 我正在我的网站上工作,每当我在CSS文件中添加一些新行时,它只是不想使用我所做的行。 但是,他们应该没事。 举个例子。 CSS文件只在某一部分起作用,但是从某处开始只是停止使用我的文件。但是,它链接在< head >中。 我的HTML代码如下(请注意,这只是代码的一部分): 有人知道解决方案吗? 问题答案: 我忘了在CSS文件中关闭。这就是为什么所有代码都没有显示在页面上的原因。
问题内容: 我知道在某些版本中,Hibernate异常已更改为未经检查。是什么原因?这是哲学问题还是实际问题? 问题答案: 实际的。因此,您不必将有关Hibernate的每一项操作都包装在try catch块中。 摘自Hibernate的Java Persistence: 异常的历史-异常及其应如何处理始终以Java开发人员之间的激烈辩论而告终。hibernate也具有一些值得注意的历史也就不足为
为什么下面的印的是boss而不是BASS?
首先,我使用的是Ubuntu12.04,Eclipse Juno和maven 3.0.4(m2eclipse),我必须在一个从SVN存储库中获得的遗留项目中工作。
问题内容: 我知道在某些版本中,Hibernate异常已更改为未经检查。是什么原因?这是哲学问题还是实际问题? 问题答案: 实际的。因此,您不必将所有与Hibernate有关的操作都包装在try catch块中。 摘自Hibernate的Java Persistence: 异常的历史-异常及其处理方式总是以Java开发人员之间的激烈辩论而告终。休眠也具有一些值得注意的历史也就不足为奇了。在Hibe