Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:capabilities [2021/02/23 12:52] holger_jakobs [Welcher Prozess hat welche Capabilities?] |
admin_grundlagen:capabilities [2025/06/03 12:50] (aktuell) sh [Welcher Prozess hat welche Capabilities?] |
||
---|---|---|---|
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 | Pakete: libcap-ng-utils | ||
pscap | pscap | ||
+ | getpcap <pid> | ||
+ | | ||
+ | == low level == | ||
+ | grep ^Cap /proc/<pid>/status | ||
+ | | ||
+ | CapInh: 0000000000000000 | ||
+ | CapPrm: 000001ffffffdffe | ||
+ | CapEff: 000001ffffffdffe | ||
+ | CapBnd: 000001ffffffdffe | ||
+ | CapAmb: 0000000000000000 | ||
+ | | ||
+ | capsh --decode=000001ffffffdffe | ||
+ | ==== systemd + caps ==== | ||
+ | systemctl show <unit> | grep -i cap | ||
====== Doku ====== | ====== Doku ====== | ||
* http://www.admin-magazin.de/Das-Heft/2009/03/Rechte-ueber-File-Capabilities-einschraenken | * http://www.admin-magazin.de/Das-Heft/2009/03/Rechte-ueber-File-Capabilities-einschraenken |