Мне нужно слушать порт linux для запуска моего сервиса. Итак, я всегда запускаю программу python, чтобы начать с sudo previlage, что сделало файлы, созданные программой, такими как pycahee и .pyc-файлы также получают полномочия суперпользователя, файлы и каталоги могут быть удалены только в режиме sudo. Это очень неудобно. Итак, есть ли способ указать python для создания обычной папки и файлов?Python как создать папку pycache, не используя полномочия суперпользователя?
ответ
Выполнение скрипта как root, так что вы можете прослушивать в привилегированных портах, не является хорошей практикой (если только сценарий действительно не требует root).
Если ваш сценарий не требует root, то я бы рекомендовал использовать setuid/setgid
для удаления привилегий после того, как вы установили привилегированный порт;
Об этом подробно было сказано здесь;
Dropping Root Permissions In Python
Edit: OP отметил, что pyc
файл, созданный еще имеет прав суперпользователя. Вы можете использовать бит suid (chmod u+s script.py
), затем setuid(0)
, чтобы получить права доступа root во время выполнения, гарантируя, что права собственности на файл не являются root. Установка бита suid только для владельца файла также означает, что другие пользователи не могут злоупотреблять битом suid.
- 1. django не может создать суперпользователя
- 2. Как создать суперпользователя postgresql без учетной записи суперпользователя?
- 3. Openstack создать суперпользователя, как admin
- 4. Python GAE UrlFetch полномочия
- 5. создать папку в python
- 6. Как создать папку, используя дату и время?
- 7. Невозможно создать суперпользователя в django
- 8. Назначить все полномочия компьютера Python
- 9. не может создать расширение без роли суперпользователя
- 10. не может создать суперпользователя с обычаем профиль_пользователя
- 11. Python - не удается удалить, затем создать папку
- 12. Запустите команду linux system в качестве суперпользователя, используя скрипт python
- 13. Как создать суперпользователя с помощью mongoengine?
- 14. Laravel4 Полномочия, определяющие полномочия
- 15. не суперпользователя в Докер
- 16. создать китайскую папку использовать python
- 17. Как создать папку в процессе импорта [python]
- 18. Выполнение команды как суперпользователя из сценария python
- 19. Невозможно создать суперпользователя на Django 1.8 с помощью python 3.2
- 20. DefaultLdapAuthoritiesPopulator не предоставляет полномочия
- 21. Полномочия матрицы
- 22. умножение сдвига битов в c, не используя полномочия 2
- 23. Как создать учетную запись суперпользователя в Django 1.9.6
- 24. Дайте полномочия администратора сценария python для mac
- 25. Как создать новую папку?
- 26. Как создать папку .vimrc?
- 27. Редактирование файла не похоже на обновление Django pycache
- 28. Как создать папку/каталог
- 29. Как создать складную папку?
- 30. создать строку даты при создании суперпользователя
drop привилегия может работать, но как насчет самого первого файла py? Pyc все еще создан под правом прав root? – user2003548
Хорошая точка, ответ обновлен, чтобы отразить бит suid. – sleepycal
Это исправить вашу проблему в конце? Не забывайте повышать, если это сработает для вас :) – sleepycal