Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:capabilities [2018/08/16 10:12] ingo_wichmann |
admin_grundlagen:capabilities [2023/09/12 10:17] (aktuell) sh [ping mit capability statt suid-Bit] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== ping mit capability statt suid-Bit ====== | ====== ping mit capability statt suid-Bit ====== | ||
- | chmod u-s /bin/ping | + | |
- | setcap cap_net_raw+p /bin/ping | + | 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. |
- | getcap /bin/ping | + | |
+ | 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: | ||
+ | * [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662845|Debian Bug 662845]] | ||
+ | * [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502580|Debian Bug 502580]] | ||
+ | |||
+ | |||
+ | 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 ====== | ====== einer (root) shell eine Capability entziehen ====== | ||
- | capsh --drop=cap_chown -- | + | ''capsh'' startet eine neue Shell mit veränderten Capabilities. |
+ | |||
+ | 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 | ||
Zeile 15: | Zeile 40: | ||
* 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 | ||
* [[http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/capability.h|Liste der Capabilities im Kernel]] | * [[http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/capability.h|Liste der Capabilities im Kernel]] | ||
- | |||
- | Unter Fedora 15 soll Capabilities an Stelle von SUID-Bit verwenden: | ||
- | https://bugzilla.redhat.com/show_bug.cgi?id=646440 | ||
- | RHEL/CentOS 6 basiert auf Fedora 12 | ||
- | |||
- | Problem: | ||
- | |||
- | Unter Debian nicht update-fest: | ||
- | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662845 | ||
- | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502580 | ||
- | Unter OpenSuSE nicht update-fest: | ||
- | https://features.opensuse.org/307254 |