【问题标题】:pip: inconsistent permissions issuespip:不一致的权限问题
【发布时间】:2012-06-25 01:57:45
【问题描述】:

当通过sudo pip-python(CentOS 6 包:python-pip-0.8-1.el6.noarch)安装包时,我有时会遇到权限问题,因为安装的包只能由 root 读取。

重新安装一到两次通常可以解决问题。有没有人经历过这个?或者任何人都可以提出任何故障排除步骤来确定原因吗?

【问题讨论】:

    标签: python centos pip python-module


    【解决方案1】:

    如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志

    -H, --set-home 将 HOME 变量设置为目标用户的主目录

    例如

    sudo -H pip install virtualenv

    【讨论】:

      【解决方案2】:

      当您使用sudo 运行命令时,它将保留用户umaskpip 只是安装文件,它不会更改访问权限,因此您最终会得到具有与当前用户的 umask 一致的访问权限设置的文件,这可能是所有者可读的 (0077),因此可以通过仅根。

      这意味着您可以在运行sudo pip install 之前将umask 设置为umask 0022 之类的合理值。或者使用sudo su打开一个默认设置的root shell,然后pip install

      【讨论】:

      • 最初,当我们的一位工作人员报告此事时,我也有同样的想法。但是,它现在发生在我身上几次,它首先设置了限制性权限,但是当我再次运行它而不进行任何更改时,它工作正常。
      • 嗯,这真的很奇怪,特别是“没有改变任何东西”部分。我只在通过 sudo 运行 pip 时才看到这个问题,现在我总是从 root shell 使用适当的 umask 运行 pip,从那以后它就没有发生在我身上。不知道这里发生了什么......
      • 你也可以运行 sudo bash,然后 umask 0022,然后 pip install
      • 很好的提示,谢谢。安装后我更改了权限: cd /usr/local/lib/python2.7/site-packages; chmod -R o+rw * 一切正常
      • @artejera 这是一个非常糟糕的主意,因为它打开了一个很大的安全漏洞。现在任何人都可以在那里放置或修改文件,并损害这些包的任何其他用途。 /usr 下的任何内容都不应该是世界可写的!
      猜你喜欢
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2017-03-12
      相关资源
      最近更新 更多