Python dist-packages 权限
Python dist-packages permissions
我在 Python 2.7 的 dist-packages 文件夹中搞砸了一些权限,我担心它会导致问题。
这源于一个完全独立的导入问题,这导致我更改了此文件夹的权限以进行测试。
我接受了 运行 的建议:
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.
我在 Python 2.7 的 dist-packages 文件夹中搞砸了一些权限,我担心它会导致问题。
这源于一个完全独立的导入问题,这导致我更改了此文件夹的权限以进行测试。
我接受了 运行 的建议:
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.