As capacidades de arquivo (setcap) não estão sendo aplicadas no Linux Mint 17.1

2

Estou tentando fazer com que um aplicativo seja executado corretamente, mas parece não conseguir encontrar nenhuma interface de rede. Ele é projetado para ser executado sem direitos administrativos e, portanto, requer recursos de arquivo específicos. No entanto, ainda é incapaz de encontrar qualquer interface de rede através da libpcap.

Eu testei um script simples para replicar o comportamento usando o libpcap para listar interfaces de rede para testar o problema:

#include <stdio.h>
#include <pcap.h>

int main(int argc, char *argv[]) {
    char *dev, errbuf[PCAP_ERRBUF_SIZE];

    dev = pcap_lookupdev(errbuf);
    if(dev == NULL) {
        printf("Error: %s\n", errbuf);
        return(2);
    }

    printf("Device: %s\n", dev);
    return(0);
}

Aplicando recursos de arquivo e verificando se eles foram aplicados,

$ sudo setcap cap_net_raw,cap_net_admin=eip pcap_test
$ getcap pcap_test
pcap_test = cap_net_admin,cap_net_raw+eip

Ainda não é possível encontrar nenhuma interface de rede, embora ela afirme ter as permissões corretas. Correr como super usuário funciona sem problema, claro.

$ ./pcap_test
Error: no suitable device found
$ sudo ./pcap_test
Device: eth0

Passar por essa sequência idêntica funciona como desejado no Ubuntu 14.04 (com a versão do kernel 3.13.0-35-generic e versões anteriores), mas não consegui fazer com que ela funcionasse com o Mint 17 ou 17.1 ( com a versão do kernel 3.13.0-24-generic).

Há alguma alteração no kernel que afeta os recursos de arquivo? Qualquer coisa relevante que eu tenha encontrado on-line tem vários anos e está em referência a um kernel desatualizado. Obrigado!

    
por Sajjan Singh 15.01.2015 / 22:16

1 resposta

0

O problema se deu devido ao fato de que eu estava trabalhando em uma partição inicial que foi montada com a opção nosuid . Eu não tinha percebido que essa opção limita os privilégios de root através dos recursos de arquivo.

Aplicar os recursos de arquivo e executar a partir da minha partição raiz (montada sem a opção nosuid ) funcionou como desejado.

    
por 14.01.2016 / 08:24