Python dist-packages权限

问题描述 投票:1回答:1

我在我的dist-packages文件夹中搞砸了Python 2.7的一些权限,我担心它会导致问题。

这源于完全独立的导入问题,这导致我更改此文件夹的权限以测试出来。我接受了建议:chmod -R 775 /usr/local/lib/python2.7/dist-packages/

当这不起作用时,我试图将其改回原来的状态:

chmod 765 /usr/local/lib/python2.7/dist-packages/ 注意缺少递归标志。傻我。

当我做了ls -l时,我看到我在文件夹上拥有drwxrwSr-x的权限。它应该是drwxrwsr-x。所以我给了它chmod +x的执行权限,然后setgid - chmod g+s mydir

好的,所以我的文件夹权限现在恢复正常了。但是现在在文件夹中我看到大多数(不是全部)文件都是drwxrwSr-x

我该怎么做来解决这个烂摊子?这是凌乱文件夹内容的摘录:

drwxrwSr-x  2 root staff    4096 Jul 19 12:48 wheel-0.30.0.dist-info
drwxrwSr-x 12 root staff    4096 Jul 19 12:48 whoosh
drwxrwSr-x  2 root staff    4096 Jul 19 12:48 Whoosh-2.7.4.dist-info
drwxrwSr-x  2 root staff    4096 Jul 19 12:48 xmltodict-0.11.0.dist-info
-rwxrw-r-x  1 root staff   17356 Jul 19 12:48 xmltodict.py
-rwxrw-r-x  1 root staff   15128 Jul 19 12:48 xmltodict.pyc
drwxrwSr-x  2 root staff    4096 Jul 19 12:48 yaml
-rwxrw-r-x  1 root staff 1115503 Jul 19 12:48 _yaml.so
python file-permissions chmod
1个回答
2
投票

可能有更短的方法,但我使用find在目录上做不同的chmod而不是文件。在dist-packages下没有可执行文件(至少我从未见过一些)所以你可以这样做:

find /usr/local/lib/python2.7/dist-packages/ -type d -exec chmod 755 {} +
find /usr/local/lib/python2.7/dist-packages/ -type f -exec chmod 644 {} +

或者,您可以使用775作为目录(上)行,使用664作为文件。

可能会在dist-packages(我的基于Debian的系统)下有符号链接,但是他们的permission setting should not matter

© www.soinside.com 2019 - 2024. All rights reserved.