Я использую Python в Linux и OS X и пытаюсь придумать вескую причину не chmod мой каталог пакетов сайта Python на 777. Похоже, это лучше, чем делать sudo каждый раз, когда я хочу внести малейшие изменения. Или я сошел с ума? Обратите внимание, что это в первую очередь для моих машин разработки, а не для каких-либо производственных серверов.
Отказ от ответственности: Да, я знаю предостережения. Плохо pip install
или easy_install
вещи, которые предоставляет менеджер пакетов. И в большинстве случаев лучше использовать virtualenv, чем изменять глобальную установку Python.
Если это ваша машина, то вы можете делать то, что вам подходит. Моя основная причина, по которой я оставляю разрешения такими, какие они есть, заключается в том, что это означает, что я с меньшей вероятностью что-то уничтожу случайно.
На самом деле все зависит от того, какой уровень ответственности вы хотите взять на себя, если это ваш собственный ящик, и вы счастливы, что не запускаете вредоносное ПО и ничего не выбрасываете случайно, нет веской причины не делать этого.
Единственное, что меня беспокоит, это то, что если бы я разрабатывал пакет и хотел протестировать его и его развертывание в реальных условиях, я бы не смог этого сделать, поскольку все доступно для записи.
Я знаю некоторых экспертов по безопасности, которые не согласятся, но в конечном итоге безопасность должна быть сбалансирована с удобством использования. Во время одного из выступлений, в котором я был, один охранник настаивал на том, чтобы операционная система была изменена, чтобы пользователи просто не могли выполнять определенные действия. К счастью, в этот момент кто-то сказал: «Прости, Дэйв, я не могу тебе этого позволить» ...
Это не очень хорошая идея. 777 означает, что любой пользователь может писать модули, включая, скажем, пользователя веб-сервера, управляемого взломанным сценарием веб-приложения. Если этот пользователь может написать py или pyc для пакетов сайта, которые затем будут импортированы другим пользователем, таким как root, ваш компромисс с низким уровнем привилегий перерастет в серьезный компромисс на уровне машины. Если вы настолько уверены, что ваша машина защищена от всех атак, что это приемлемо, хорошо ... но если это так, тогда вы можете просто запускать все как root!
Лучше: если вам нужны модули, к которым только ваш пользователь имеет доступ и которые могут обновлять без необходимости sudo
, добавьте путь к пользовательскому модулю. Вы можете сделать это с помощью PYTHONPATH
или изменив sys.path
, но из Python 2.6 в этом нет необходимости, поскольку вы получаете его по умолчанию, ~/.local/lib/python2.6/site-packages
. Видеть PEP 370 для подробностей.