Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:capabilities [2021/02/05 09:37] holger_jakobs [einer (root) shell eine Capability entziehen] |
admin_grundlagen:capabilities [2023/09/12 10:17] (aktuell) sh [ping mit capability statt suid-Bit] |
||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
Mittels ''man capabilities'' kann man die vom verwendeten Kernel angebotenen Capabilities auflisten. | Mittels ''man capabilities'' kann man die vom verwendeten Kernel angebotenen Capabilities auflisten. | ||
- | chmod u-s /bin/ping | + | cat /usr/bin/ping > PING |
- | setcap cap_net_raw+p /bin/ping | + | ./PING 9.9.9.9 |
- | getcap /bin/ping | + | als root |
+ | setcap cap_net_raw=p ./PING | ||
+ | getcap ./PING | ||
+ | als user | ||
+ | ./PING 9.9.9.9 | ||
Unter Debian nicht update-fest: | Unter Debian nicht update-fest: | ||
Zeile 14: | Zeile 18: | ||
- | Unter OpenSuSE nicht update-fest: | + | Moderne Kernel :?: (oder eine andere black magick) erlauben ''ping'' auch ohne Capabilities. |
- | * [[https://features.opensuse.org/307254|Opensuse Bug 307254]] | + | 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 ====== | ====== einer (root) shell eine Capability entziehen ====== | ||
''capsh'' startet eine neue Shell mit veränderten Capabilities. | ''capsh'' startet eine neue Shell mit veränderten Capabilities. | ||
- | capsh --drop=cap_chown -- | + | capsh --drop=cap_chown,cap_net_raw -- |
chown kurt /etc/passwd | chown kurt /etc/passwd | ||
+ | ping 9.9.9.9 | ||
====== Welcher Prozess hat welche Capabilities? ====== | ====== Welcher Prozess hat welche Capabilities? ====== | ||
- | Pakete: libcap-ng-utils (Debian, Ubuntu) | + | Pakete: libcap-ng-utils |
pscap | pscap | ||