当我将它与 sudo 一起使用时,python 2.7 不起作用 [关闭]
Posted
技术标签:
【中文标题】当我将它与 sudo 一起使用时,python 2.7 不起作用 [关闭]【英文标题】:python 2.7 not working when I use it with sudo [closed] 【发布时间】:2014-09-01 07:20:26 【问题描述】:我正在尝试在 centos 6.5 的 VM 上安装 python2.7。我按照以下指南安装它
http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
但是,当我尝试安装 run python as sudo 时,出现以下错误。
-bash: python2.7: command not found
只运行 python2.7 即可。当我以 root 用户身份运行它时,它甚至可以工作。我还注意到:
which python2.7
返回
/usr/bin/which: no python2.7
当我执行 sudo -i 然后运行命令时。
知道为什么会这样吗?
【问题讨论】:
python2.7安装在哪里,你的$PATH
是什么?
它安装在 /usr/local/bin/python2.7 和 $PATH 是 /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/ sbin:/sbin:/home/yazmataz/bin
【参考方案1】:
如果您使用的是 CentOS 6.5,这可能是因为 sudo
没有将 /usr/local/bin
设置为 PATH
的一部分。
CentOS 6.x 的/etc/sudoers
文件将secure_path
(在sudo
会话期间使用)设置为一组非常有限的路径。
使用visudo
命令并查看/etc/sudoers
文件的内容。您可能会找到此部分:
#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults env_keep += "HOME"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
所以sudo
不使用/usr/local/bin
路径。
您可以通过以下几种方式解决您的问题:
将/usr/local/bin
添加到secure_path
- 如果您不知道/usr/local/bin
目录中的内容,这可能会引发安全问题。虽然通常情况下,这可能不是一个大问题,因为默认情况下只有 root 具有对 /usr/local/bin
的写入权限。
通过将 secure_path
注释掉来完全禁用它 - 再次,您正在覆盖旨在限制访问和提高安全性的功能。
【讨论】:
我想我会选择选项一,因为它似乎更好。更改后我还需要做其他事情吗?喜欢重新加载一些东西? 我已经尝试过您的解决方案,但仍然无法正常工作。我试过重启系统,还是一样。 @hjelpmig - 好吧,事实证明,secure_path
会覆盖其他任何内容,因此env_keep
将无效。选择选项#2(或现在编辑的选项#1)。
成功了。非常感谢:)【参考方案2】:
试试下面的
sudo env PATH=$PATH python2.7
它的作用是将当前路径复制到新的sudo
环境中。
【讨论】:
以上是关于当我将它与 sudo 一起使用时,python 2.7 不起作用 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
解析:如果我将它与指针类型一起使用,“containedIn”将不返回任何内容
TextInput 在本机反应中不起作用我将它与堆栈导航一起使用
当我将 ImageView 添加到 CardView 或 Fragment 时,为啥我的应用程序会崩溃?