Я испортил некоторые разрешения в моей папке 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-пакетах нет исполняемых файлов (по крайней мере, я их никогда не видел), чтобы вы могли:
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), но их настройка разрешения не должна иметь значения.