Por que o setuid em / sbin / dhclient não funciona como previsto?

1

Sou o único usuário em minha máquina e prefiro não digitar sudo sempre que usar dhclient . Portanto, eu tentei sudo chmod u+s /sbin/dhclient .

No entanto, quando subsequentemente executo dhclient wlan0 de um shell não raiz, ainda recebo RTNETLINK answers: Operation not permitted

Estou executando Ubuntu 13.10 .

Por que a configuração do UID bit não atinge o efeito desejado e existem soluções alternativas?

    
por merlin2011 22.01.2014 / 20:18

1 resposta

1

sudo define os uids reais e efetivos. Tornar um executável setuid apenas faz com que o uid efetivo seja definido quando o executável é executado. Se o executável manipula uids para bifurcar filhos desprivilegiados como dhclient, você pode facilmente desabilitá-lo executando-o com um uid real não-root.

Uma solução seria escrever um executável de wrapper que não faça nada além de definir o uid real para corresponder ao uid efetivo e, em seguida, executar o dhclient. Faça o wrapper setuid root e remova o bit setuid do dhclient.

    
por 22.01.2014 / 21:11