Você pode fazer isso com o PolicyKit .
Eu escrevi um applet de painel personalizado do GNOME no Python que precisa gravar em alguns arquivos de propriedade da raiz. Existe uma maneira de começar com privilégios de root sem usar o suid?
Você pode fazer isso com o PolicyKit .
Melhor solução: não execute o applet inteiro com permissões de root. Coloque tudo o que for possível no applet que está sendo executado com permissões normais de usuário. Crie um programa separado que modifique os arquivos necessários e execute isso por meio de sudo
(ou suid).
Para a configuração de sudoers, execute visudo
. Tente algo como
yourusername ALL=(ALL) NOPASSWD: /usr/local/bin/your_command.py
Para permitir a execução de comandos específicos com permissões de root.
Outra forma: adicione o arquivo acl a esses arquivos de propriedade da raiz para permitir alterações por seu usuário.
Veja man setfacl
para mais informações (do pacote acl
).
Você deve separar os procedimentos que requerem acesso root em um programa python separado e iniciá-lo com gksudo
.