Como dou privilégios de root a um aplicativo?

4

Eu tentei enviar um aplicativo para o Ubuntu Software Center, mas ele foi rejeitado porque você precisava inserir a senha do administrador para usá-lo. Eu preciso conceder privilégios de root para o aplicativo para que ele funcione, então eu usei o sudo. Mas eles disseram que não posso usar o sudo no meu aplicativo. Como posso dar privilégios de root?

    
por thelostlambda 24.05.2013 / 02:45

3 respostas

5

Você precisa usar as APIs PolicyKit para solicitar o escalonamento de privilégios. Em geral, você só deve fazer isso quando for absolutamente necessário e não executar o aplicativo com privilégios escalados em todos os momentos.

Vale a pena notar que, se você precisa apenas de privilégios de root na inicialização, você pode e deve iniciar como root, mas depois passar para um usuário sem privilégios. Se você estiver operando como um programa voltado para o usuário, isso provavelmente significa o usuário que executou o programa; se isso significar um daemon, como um httpd ou sshd , provavelmente significará um usuário incrivelmente bloqueado que foi criado especificamente para o seu programa ser executado.

Além disso, há frontends gráficos para sudo chamados gksudo e kdsudo para o GNOME e o KDE, respectivamente. Se alguém recomenda que você use isso, não . Esteja ciente de que esses programas estão obsoletos em favor de PolicyKit , não estão instalados por padrão e provavelmente terão seu aplicativo rejeitado.

    
por dobey 24.05.2013 / 04:07
2

Seu aplicativo pode não ser permitido. De acordo com o wiki do Ubuntu , o Conselho de Revisão de Aplicativos rejeitará aplicativos que toquem arquivos do sistema:

  

Seu aplicativo parece tocar nos arquivos do sistema como parte de sua operação, no entanto, não permitimos que os aplicativos façam isso como parte de uma política de segurança para extras.ubuntu.com. Para essas aplicações, recomendamos que você siga os passos no link para enviar seu pacote para o Debian ou Ubuntu.

Um aplicativo de limpeza estaria tocando nos arquivos do sistema.

Embora esta diretriz só se aplique a aplicativos de código aberto ( a política para aplicativos proprietários não é publicada ) , Imagino que regras semelhantes se aplicam a aplicativos proprietários.

Se o seu aplicativo é de código aberto, você ainda pode obtê-lo no Software Center empacotando e enviando para o Ubuntu principal ou repositórios da Debian .

    
por Mechanical snail 31.05.2013 / 08:57
0

Você não precisa do PolicyKit ou de nada disso. Basta alterar o proprietário do aplicativo e o nível de permissão:

sudo chown root:root /path/to/app
sudo chmod 4755 /path/to/app

Claro, você precisará de privilégios de root para executar esses comandos.

    
por Chef Pharaoh 16.09.2016 / 22:26