não permite que o usuário mate o programa iniciado como outro usuário usando o bit setuid

0

Eu tenho um binário com permissões abaixo. %código% então, quando algum usuário X tenta executar o binário, ele é executado como root. Além disso, o usuário é capaz de matar este processo (rodando como root) de seu id usando %código% Qualquer forma de impedir que o usuário mate o processo.

    
por varun 01.04.2016 / 08:47

1 resposta

0

O usuário pode matar o processo porque o processo é iniciado com Effective UID de root , mas Real UID de si mesmo. Outros usuários não conseguirão matar esse processo.

Você pode tentar definir o bit SETUID e SETGID para id :

# chmod u+s,g+s $(which id)

e, em seguida, compare a saída de:

id

e

sudo id

e você verá a diferença.

Além disso, você pode tentar matar um processo, que tem bits SETUID e SETGID definidos e é iniciado pelo usuário atual, com sudo -u SOMEOTHERUSER . Você verá que não pode ser morto.

Eu acho que o ponto dos bits SETUID e SETGID é não deixar a raiz possuir o processo, mas apenas escalar o privilégio, mas deixar o processo pertencente ao usuário em execução. E eu duvido que você possa mudar isso, não importa o que você goste ou não (exceto por hackear o kernel ou algo assim?).

    
por 01.04.2016 / 12:10

Tags