我在我的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
可能有更短的方法,但我使用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。