当我使用sudo时,python 2.7无法正常工作

时间:2014-07-10 19:22:32

标签: linux python-2.7 centos6

我正在尝试在cmos 6.5的VM上安装python2.7。我按照以下指南进行安装

http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

但是当我尝试将run python作为sudo安装时,我收到以下错误。

-bash: python2.7: command not found

只运行python2.7。它甚至可以在我以root用户身份运行时运行。我也注意到了:

which python2.7

返回

/usr/bin/which: no python2.7

当我做sudo -i然后运行命令时。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:3)

如果您使用的是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路径。

您可以通过以下几种方式解决问题:

  1. /usr/local/bin添加到secure_path - 如果您不知道/usr/local/bin目录中的内容,可能会出现安全问题。虽然通常情况下这可能不是一个大问题,因为默认情况下只有root对/usr/local/bin具有写入权限。

  2. 通过评论完全禁用secure_path - 再次,您将覆盖旨在限制访问并提高安全性的功能。

答案 1 :(得分:3)

尝试以下

sudo env PATH=$PATH python2.7

这样做是将您当前的路径复制到新sudo的环境中。