Existem dois tipos de 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 fará basicamente o que sudo
faz, mas com uma interface gráfica - ou seja, solicitar uma senha ao usuário e executar o comando como root se o usuário estiver no arquivo sudoers.
Para implementar a solução sugerida das respostas vinculadas em python, você pode usar algo conforme 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, após digitar sua senha, será criado um arquivo de propriedade do root. Se você executar python create.py
, ele será de sua propriedade (o arquivo não deve existir antes de executar o script).