Raw-Capture-Funktionen (CAP_NET_RAW, CAP_NET_ADMIN) arbeiten nicht außerhalb von / usr / bin und friends für Paketerfassungsprogramme mit libpcap

8

TL; DR: Warum funktionieren cap_net_raw , cap_net_admin nur in /usr/bin (oder /usr/sbin ), aber nicht an anderen Stellen? Kann dies irgendwo konfiguriert werden?

Ich habe Probleme, meinem c-Programm mit libpcap in Ubuntu 14.04 Funktionen zuzuweisen. Auch nachdem ich Funktionen mit setcap(8) zugewiesen und mit getcap(8) überprüft habe, erhalte ich immer noch einen Berechtigungsfehler. Es scheint, dass Fähigkeiten nur für ausführbare Dateien in \usr\bin und Freunden funktionieren.

Mein Programm test.c sieht folgendermaßen aus:

%Vor%

und ist mit

kompiliert %Vor%

generiert a.out ausführbar. Ich stelle Fähigkeiten ein:

%Vor%

Und überprüfen Sie, ob es richtig aussieht:

%Vor%

das gibt mir

%Vor%

Running a.out gibt mir:

%Vor%

Das Ausführen mit sudo funktioniert wie erwartet (das Programm gibt nichts aus und wird beendet).

Hier ist der interessante Teil: Wenn ich a.out nach /usr/bin verschiebe (und die Fähigkeiten wieder anwende), funktioniert es. Umgekehrt: das capability-enabled /usr/bin/dumpcap von wireshark (was für Benutzer in der wireshark -Gruppe funktioniert) und das out von /usr/bin , sagen wir zu meinem Home-Verzeichnis, Wenn Sie dieselben Funktionen erneut anwenden, funktioniert nicht . Es zurück zu bewegen, es funktioniert.

SO: Warum funktionieren diese Funktionen nur in /usr/bin (und /usr/sbin ), aber nicht an anderen Stellen? Kann dies irgendwo konfiguriert werden?

    
dirkhas 17.03.2015, 13:02
quelle

1 Antwort

8

Dies liegt möglicherweise daran, dass Ihr Home-Verzeichnis mit nosuid gemountet ist, wodurch die Funktionen nicht funktionieren. Ubuntu verschlüsselt das Home-Verzeichnis und mountet das mit ecryptfs als nosuid.

Binärdateien mit Fähigkeiten funktionieren für mich in /usr/ und /home/ , aber nicht in meinem Home-Verzeichnis.

Die einzige Referenz, die ich finden könnte, um nosuid Fähigkeiten zu besiegen, ist dieser Link: Ссылка . Ich würde gerne eine autoritative Quelle finden.

    
Graham King 14.06.2015 05:10
quelle