Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:capabilities

ping mit capability statt suid-Bit

Statt einem Programm über das SETUID-Bit alle Systemrechte zu geben, ist es sinnvoller, nur die Fähigkeiten (capabilities) zu geben, die das Programm zur Erfüllung seines Zwecks benötigt. Das setzt allerdings die Unterstützung des Kernels voraus, welches bestimmte Capabilities bereitstellt, die dann den Programmen gegeben werden können.

Mittels man capabilities kann man die vom verwendeten Kernel angebotenen Capabilities auflisten.

cat /usr/bin/ping > PING
./PING 9.9.9.9

als root

setcap cap_net_raw=p ./PING
getcap ./PING

als user

./PING 9.9.9.9

Unter Debian nicht update-fest:

Moderne Kernel :?: (oder eine andere black magick) erlauben ping auch ohne Capabilities.

sysctl -a | grep ping
setcap cap_net_raw,cap_net_admin=pe /usr/sbin/tcpdump

Danach kann jeder User tcpdump benutzen

einer (root) shell eine Capability entziehen

capsh startet eine neue Shell mit veränderten Capabilities.

capsh --drop=cap_chown,cap_net_raw --
chown kurt /etc/passwd
ping 9.9.9.9

Welcher Prozess hat welche Capabilities?

Pakete: libcap-ng-utils

pscap

Doku

admin_grundlagen/capabilities.txt · Zuletzt geändert: 2023/09/12 10:17 von sh