почему нельзя просто запускать приложение от root? или это единичная необходимость ?
Конечно, можно. Так оно и работает сейчас. Но не хочется, чтобы пользователь это делал "руками", запуская из терминала. А как сделать лаунчер стандартными средствами quickly не понятно. Проблема не в работе приложения как в таковой, а в usability.
Что, больше совсем никаких идей нет?
а какие ещё идеи нужны?
права root - это область компетенции системы, а не программы ... на чём бы вы её не писали: Python, C/C++ ... или BASIC.
никаких иных способов получения root кроме системных вы не найдёте, а именно:
- запуск от root
- sudo
- SUID бит
всё!
и это замечательно! ибо именно поэтому в Linux нет головной боли с вмирусами.
P.S. а если вы ищите способ получить root "из-за угла", злонамеренно, то ищите не там (в языке, библиотеках), ищите в обсуждениях хакинг-хвастовства и проколах в безопасности .
Нет, я не ищу способов получить рут из-за угла, я ищу способ попросить систему дать рут права текущему процессу из приложения. Возможно есть такая библиотека (policykit не предлагать, это overhead). Получение рут прав средствами системы и так есть, но для этого приложение запускается пользователем через sudo/gksu. Хотелось бы это делать более элегантно.
Есть несколько идей, но это тоже костыли, рожденные в результате отсутствия знаний как это можно сделать с помощью стандартных средств quickly:
1. Написать скрипт, который при первом запуске создает лаунчер, через который уже и осуществляется запуск приложения с необходимыми привилегиями.
2. Написать ряд отдельных скриптов, запускаемых из кода приложения, каждый из которых осуществляет необходимое действие, предварительно попросив рут права.
3. Использовать из кода приложения при помощи os.system() стандартные средства системы для чтения и записи, например, cat и echo.
Но на мой взгляд, так делать уж совсем не правильно и криво. Вот и ищу хороший способ.