Capabilities Beispiele: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=password=
+
*[[Capabilities Beispiel readlogs]]
==User-SBit==
+
*[[Capabilities Beispiel passwd]]
*Das Programm "password" muss auf die Datei /etc/shaddow zugreifen.
+
*[[Capabilities Beispiel ping]]
*Wenn ein Benutzer dieses Programm auf ruft läuft der Prozess unter seiner UID
 
*Diese hat kein Recht die Datei /etc/shaddow zu beschreiben.
 
*Darum gibt es das User-SBIT Recht, dies hat zur Folge, das der Prozess unter der UID des Besitzers des Programms läuft.
 
*ls -l /bin/passwd
 
-rwsr-xr-x 1 root root 63960 Feb  7  2020 /bin/passwd
 
==Lösung per Capabilities==
 
*cp /bin/passwd /bin/pw
 
*chmod u-s /bin/pw
 
*setcap cap_dac_override=ep /bin/pw
 
=ping=
 
*Ping braucht Privilegien, um die speziellen ICMP-Pakete ins LAN senden zu dürfen.
 
*Normalerweise verschafft das Set-UID-Root-Bit dem Tool diese Fähigkeiten.
 
*siehe Oben.
 
*Debian hat ping so kompiliert das es die nicht braucht.
 
*Wir nutzen deshalb ein selbst kompiliertes ping
 
=Download=
 
*cd /usr/local/bin
 
*wget https://xinux.de/downloads/ping-orig
 
*chmod +x ping-orig
 
=Test=
 
;als normaler Benutzer
 
*su - xinux
 
*ping-orig 1.1.1.1
 
ping-orig: socktype: SOCK_RAW
 
ping-orig: socket: Operation not permitted
 
ping-orig: => missing cap_net_raw+p capability or setuid?
 
==Lösung per Capabilities==
 
*sudo setcap cap_net_raw+p /usr/local/bin/ping-orig
 
*sudo getcap  /usr/local/bin/ping-orig
 
/usr/local/bin/ping-orig cap_net_raw=p
 
*ping-orig 1.1.1.1
 
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
 
64 bytes from 1.1.1.1: icmp_seq=1 ttl=56 time=4.86 ms
 
==Links==
 
*http://unixetc.co.uk/2016/05/30/linux-capabilities-and-ping/
 

Aktuelle Version vom 12. Mai 2024, 13:05 Uhr