É possível alterar os privilégios de um programa durante a execução?

3

É possível iniciar um programa normalmente, e depois dar root ou algum outro nível de permissão sem reiniciá-lo?

    
por Benjamin Lindley 15.03.2012 / 04:36

2 respostas

1

Não. Em geral, um programa só pode reduzir seus privilégios (embora haja maneiras de os programas pertencentes à raiz abandonarem temporariamente os privilégios e recuperá-los).

A melhor prática atual para esses programas é separar as partes privilegiadas e não privilegiadas em processos separados e fazer com que o processo não privilegiado invoque o privilegiado conforme necessário (por exemplo, é assim que o painel de preferências do indicador de relógio permite alterar a hora do sistema ou como o terminal atualiza a lista de usuários logados).

Isso precisa fazer parte do design do programa: se um programa não for projetado para funcionar dessa forma, será necessário executá-lo em sudo ou similar se ele precisar de privilégios de administrador.

    
por James Henstridge 15.03.2012 / 06:27
0

Sim. O software tem que solicitá-lo especificamente embora. O PolicyKit é provavelmente o melhor caminho.

Setuid também permite a mudança de privilégios, mas não é um começo tão normal, em seguida, ir para a coisa raiz tanto como um começo como um serviço / drop / recuperar o tipo de coisa.

    
por RobotHumans 15.03.2012 / 05:12