admin_grundlagen:capabilities
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:capabilities [2018/07/09 09:20] – [einer (root) shell eine cap. entziehen] ingo_wichmann | admin_grundlagen:capabilities [2026/10/08 12:29] (aktuell) – ingo_wichmann | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | 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, | ||
| + | |||
| + | Mittels '' | ||
| + | |||
| + | ====== Backup ohne root: rsync soll alle Dateien lesen dürfen ====== | ||
| + | ===== remote ===== | ||
| + | cp / | ||
| + | setcap cap_dac_read_search+ep / | ||
| + | |||
| + | ===== local ===== | ||
| + | rsync --rsync-path=/ | ||
| + | |||
| + | |||
| + | |||
| ====== ping mit capability statt suid-Bit ====== | ====== ping mit capability statt suid-Bit ====== | ||
| - | chmod u-s /bin/ping | + | |
| - | setcap cap_net_raw+p /bin/ping | + | |
| - | | + | cat /usr/ |
| + | ./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:// | ||
| + | | ||
| + | |||
| + | |||
| + | Moderne Kernel :?: (oder eine andere black magick) erlauben '' | ||
| + | sysctl -a | grep ping | ||
| + | |||
| + | setcap cap_net_raw, | ||
| + | |||
| + | Danach kann jeder User tcpdump benutzen | ||
| ====== einer (root) shell eine Capability entziehen ====== | ====== einer (root) shell eine Capability entziehen ====== | ||
| - | | + | '' |
| + | |||
| + | | ||
| chown kurt /etc/passwd | chown kurt /etc/passwd | ||
| + | ping 9.9.9.9 | ||
| - | ====== | + | ====== |
| - | * http://www.admin-magazin.de/ | + | Pakete: libcap-ng-utils |
| - | | + | pscap |
| + | getpcap < | ||
| + | |||
| + | == low level == | ||
| + | grep ^Cap /proc/<pid>/status | ||
| + | | ||
| + | | ||
| + | CapPrm: | ||
| + | CapEff: | ||
| + | CapBnd: | ||
| + | CapAmb: | ||
| + | |||
| + | capsh --decode=000001ffffffdffe | ||
| - | Unter Fedora 15 soll Capabilities an Stelle von SUID-Bit verwenden: | + | ===== rsync read only ===== |
| - | https:// | + | zu sichernder Server: |
| - | RHEL/CentOS 6 basiert auf Fedora 12 | + | |
| - | Problem: | + | apt install rsync acl libcap2-bin |
| + | useradd -r -d /srv/rosync -s /usr/bin/sh rosync | ||
| + | install -d -o rosync -g rosync -m 700 / | ||
| + | install -o rosync -g rosync -m 600 /dev/null /srv rosync/ | ||
| - | Unter Debian nicht update-fest: | + | cp / |
| - | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662845 | + | chown root:root / |
| - | http://bugs.debian.org/cgi-bin/bugreport.cgi? | + | chmod 700 / |
| + | setfacl -m user:rosync: | ||
| + | setcap cap_dac_read_search+ep / | ||
| + | |||
| + | |||
| + | TODO: include rrsync? | ||
| + | |||
| + | pull initierender Server: | ||
| + | apt install rsync | ||
| + | ssh-keygen -N '' | ||
| + | ssh root@otherserver 'cat > / | ||
| + | rsync -ax -e 'ssh -i .ssh/id_ed25519_rosync' | ||
| + | |||
| + | Was nicht gehen sollte: | ||
| + | rsync -ax -e 'ssh -i .ssh/ | ||
| + | |||
| + | ==== systemd + caps ==== | ||
| + | systemctl show < | ||
| + | ====== Doku ====== | ||
| + | | ||
| + | * [[http:// | ||
| - | Unter OpenSuSE nicht update-fest: | ||
| - | https:// | ||
admin_grundlagen/capabilities.1531128004.txt.gz · Zuletzt geändert: 2018/07/09 09:20 von ingo_wichmann
