Разрешения дистрибутивов Python - PullRequest
0 голосов
/ 30 августа 2018

Я испортил некоторые разрешения в папке 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, а затем установил - 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

1 Ответ

0 голосов
/ 30 августа 2018

Возможно, есть более короткие пути, но я использую find, чтобы сделать chmod для каталогов иным, чем для файлов. В dist-пакетах нет исполняемых файлов (по крайней мере, я их никогда не видел), поэтому вы можете сделать:

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), но их установка разрешения не должна иметь значения .

...