Existem duas perguntas e respostas diferentes no stackoverflow, respondendo à sua pergunta: aqui e aqui .
Ambas as respostas usam o comando gksudo
(já mencionado por @khamer). Se você executar gksudo command
(também sem python), ele basicamente fará o que sudo
faz, mas com uma interface gráfica - ou seja, solicite uma senha ao usuário e execute o comando como root se o usuário estiver no arquivo sudoers.
Para implementar a solução sugerida a partir das respostas vinculadas no python, você pode usar algo como mostrado no exemplo a seguir:
Crie um arquivo run.py
:
#!/usr/bin/python
import subprocess
subprocess.call(['gksudo','python create.py'])
E um arquivo create.py
:
#!/usr/bin/python
# Create test file..
f = file("mytestfile", "w")
Em seguida, execute python run.py
e depois de digitar sua senha, um arquivo pertencente ao root será criado. Se você executar, python create.py
ele será de sua propriedade (o arquivo não deverá existir antes da execução do script).