ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ. ΠΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΈ Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π· ΡΠ½ΡΠ°ΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡΠ½ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈΡ. ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΎΠ±ΡΠ²Π΅Π½ Π΅ Π½Π°Π±ΠΎΡ Π·Π° Π½ΠΎΠ² ΠΏΠΎΡΠΎΠΊ ΠΎΡ ΠΎΠ±ΠΈΡΠ°Π½ΠΈΡ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΊΡΡΡ. Π Π½Π°Π²Π΅ΡΠ΅ΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°ΡΡΠ° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΡΠΏΠΎΠ΄Π΅Π»ΡΠΌΠ΅ ΠΏΡΠ΅Π²ΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».

Π€Π°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ SUID, Π½ΠΎ Π½Π° ΠΏΡΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΎΠ±ΡΡΠΊΠ²Π°ΡΠΈ.
ΠΡΠΈΡΠΊΠΈ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ΅ βprimary/secondaryβ. ΠΠ° ΡΠ°ΡΡΠΈΠ΅, Π°ΠΊΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π²ΠΈ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄, Π½Π°ΡΠ΅ΡΠ΅Π½ .
Π©Π΅ ΡΠΏΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π³ΠΎΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ: ΡΡΡΠ½ΠΎΡΡΡΠ° Π΅, ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ root ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠ°Ρ ΠΏΡΠ°Π²ΠΎ Π΄Π° ΠΏΡΠ°Π²ΡΡ ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅, Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ ΡΠΈ ΠΈ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ Π½Π΅ΠΏΡΠΈΠ»Π°Π³Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π». Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π°ΠΊΠΎ Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΡΡ ΡΡΠΏΠ΅Π΅ Π΄Π° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π±ΡΡΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡ, ΡΠΎΠΉ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ Π½ΠΈΡΠΎ ΠΎΡΠ²Π΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΏΡΠΎΡΠ΅ΡΡΡ.
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΡΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ root, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡΠ΅ ΡΡΠΈΠ»ΠΈΡΠΈ? ΠΠ° ΡΠ°ΡΡΠΈΠ΅, ΡΠΎΠ²Π° ΡΡΡΠΎ Π΅ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΡΠ½ΠΎ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ ΡΡΠΈΠ»ΠΈΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Ubuntu, ΡΠ΅ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΠΊΠ΅ΡΡΡ libcap2-bin.Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π΅ Π°ΡΡ
Π°ΠΈΡΠ½ΠΎ ΡΠ΄ΡΠΎ (ΠΎΡ Π²Π΅ΡΡΠΈΡ 2.6.24).
Π’Π΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΡΠ° SUID, Π½ΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π£ΡΠΈΠ»ΠΈΡΠ°ΡΠ° setcap ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ°ΠΉΠ»Π°.
ΠΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌ, ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½ tracewalk,ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π° ΡΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ root, Π½ΠΎ ΠΏΡΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΈΠ·ΡΡΠ½ΡΠ²Π° ΡΠ΅, ΡΠ΅ Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ CAP_NET_RAW.
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΉΠΊΠΈ, ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°ΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π±ΠΈΠ½Π°ΡΠ½ΠΈΡ ΡΠ°ΠΉΠ» tracewalk,, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
sudo setcap cap_net_raw=eip tracewalk ΠΠΎΠΊΠ°ΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°ΡΠ΅ ΡΡΡΠΈΠΊΡΠ° =eip Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ΅ Π²ΠΈ ΠΎΠ±ΡΡΠ½Ρ Π·Π° Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Ρ ΠΌΠ°Π»ΠΊΠΈ Π±ΡΠΊΠ²ΠΈ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ ΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π°:
setcap -v cap_new_raw=eip tracewalkΠΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±ΡΠΎΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° Π΄Π°Π΄Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ»:
getcap tracewalk
ΠΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» Ρ:
setcap -r tracewalkΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ» ΠΊΠ°ΡΠΎ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΡΠΎΠΊΠ΅ΡΠΈ, Π½ΠΎ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π° root-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ.
Π ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠΎΠ·ΠΈ ΡΡΡΠ°Π½Π΅Π½ ΡΡΡΠΈΠΊΡ =eip? ΠΠ΄Π΅ΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΠΈΠΊΠ° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈΡΠΎΠ΄Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ Π½Π°Π±ΠΎΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ β Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ (effective, inheritable ΠΈ permitted):
- ΠΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ (Effective) ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ β ΡΠΎΠ²Π° ΡΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΄Π° ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Ρ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΡΠΎΠΊΠ΅ΡΠΈ, Π°ΠΊΠΎ
CAP_NET_RAWΠ½Π΅ Π΅ Π² Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡ Π½Π°Π±ΠΎΡ. - ΠΠΎΡΡΡΠΏΠ½ΠΈ (Permitted) ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ β ΡΠΎΠ²Π° ΡΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π΄Π° ΠΈΠΌΠ°, Π°ΠΊΠΎ Π³ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΏΠΎΠ²ΠΈΠΊ. Π’Π΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π°ΠΈΡΡΠΈΠ½Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ, ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ Π½Π΅ Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½, Π·Π° Π΄Π° ΠΏΠΎΠΈΡΠΊΠ° ΡΠΊΠ°Π·Π°Π½ΠΎΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΈΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²Π°ΠΆΠ½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡ Π½Π°Π±ΠΎΡ ΡΠ°ΠΌΠΎ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ.
- ΠΠ°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΈ (Inheritable) ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ β ΡΠΎΠ²Π° ΡΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ Π² Π΄ΠΎΡΡΡΠΏΠ½ΠΈΡ Π½Π°Π±ΠΎΡ Π½Π° ΠΏΠΎΡΠΎΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΌΡΡΠ²Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ°
fork()ΠΈΠ»ΠΈclone()Π½Π° ΠΏΠΎΡΠΎΠΌΡΡΠ²Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ Π΄Π°Π²Π° ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠΉ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΡΡΠΈΡ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ». ΠΠ°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΈΡΡ Π½Π°Π±ΠΎΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎexec()(ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³) ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°, Π·Π° Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ» Ρ Π΄ΡΡΠ³. ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π΄ΠΎΡΡΡΠΏΠ½ΠΈΡΡ Π½Π°Π±ΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π΅ ΡΠΊΡΠΈΡ Π·Π°Π΄ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΈΡ Π½Π°Π±ΠΎΡ, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΈΡ Π½Π°Π±ΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π½ΠΎΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ.
Π’Π°ΠΊΠ° ΡΠ΅, ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° setcap Π’ΠΎΠ²Π° Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ΅Π·ΠΈ ΡΡΠΈ Π½Π°Π±ΠΎΡΠ° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π·Π° Π΄Π°Π΄Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ». ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π³ΡΡΠΏΠ°ΡΠ° ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ Π·Π° ΠΏΡΠ°Π²Π°ΡΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
- ΠΠ°Π»ΠΈΡΠ½ΠΈ Π€Π°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ», Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π³ΠΎ Π΅ ΠΈΠ·Π²ΠΈΠΊΠ°Π», Π½Π΅ Π΅ ΠΈΠΌΠ°Π» ΡΡΡ . ΠΠΎ-ΡΠ°Π½ΠΎ ΡΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ°Ρ Π° "ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΈ" ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ.
- Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΈ Π€Π°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ Π½Π°Π±ΠΎΡΠ° Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. Π’Π΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΈΡ Π½Π°Π±ΠΎΡ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΈ Π² Π΄Π²Π°ΡΠ° Π½Π°Π±ΠΎΡΠ°.
- Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ Π€Π°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π±ΠΈΡ, Π° Π½Π΅ Π½Π°Π±ΠΎΡ, ΠΈ Π°ΠΊΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½, ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅Π»ΠΈΡΡ Π½Π°Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΡΡΡΠΎ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° Π² Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡ Π½Π°Π±ΠΎΡ Π½Π° Π½ΠΎΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΡΠΌ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π±ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ, Π·Π° Π΄Π° Π³ΠΈ ΠΏΠΎΠΈΡΠΊΠ°Ρ. ΠΠΎΠ½Π΅ΠΆΠ΅ ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ Π±ΠΈΡ, Π°ΠΊΠΎ Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π·Π° Π½ΡΠΊΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΌΠΈΡΠ»ΠΈΡΠ΅ ΠΊΠ°ΡΠΎ Π±ΠΈΡ Π·Π° Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠΉ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ.
ΠΠΎΠ³Π°ΡΠΎ Π·Π°Π΄Π°Π²Π°ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π· setcap ΡΡΠΈ Π±ΡΠΊΠ²ΠΈ e, i ΠΈ p ΠΎΡΠ½Π°ΡΡΡ ΡΠ΅ Π΄ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΈ Π½Π°Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ. Π ΡΠ°ΠΊΠ°, ΠΏΠΎ-ΡΠ°Π½Π½Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ:
sudo setcap cap_net_raw=eip tracewalk β¦ ΡΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ CAP_NET_RAW ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΊΡΠΌ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΈΡΠ΅ Π½Π°Π±ΠΎΡΠΈ ΠΈ ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡΡ Π±ΠΈΡ. Π’ΠΎΠ²Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°. ΠΠ° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π²Π΅Π΄Π½ΡΠΆ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠΏΠΈΡΡΠΊ ΡΡΠ΅Π· Π·Π°ΠΏΠ΅ΡΠ°Ρ:
sudo setcap cap_net_admin,cap_net_raw=eip tracewalkΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, Π½ΠΎ, Π½Π°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠΎΠ·ΠΈ ΠΏΠΎΡΡ ΠΌΠ°Π»ΠΊΠΎ Π΄Π΅ΠΌΠΈΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²a ΡΠ»ΡΡΠ²Π°ΡΠΎΡΠΎ ΡΠ΅. ΠΡΡΠ°Π½Π° Π΄Π° ΡΠΏΠΎΠΌΠ΅Π½Π° ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅.
ΠΡΡΠ²ΠΎ, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠΎΠ²Π΅ β ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΊΡΠΌ ΡΠ°ΠΌΠΈΡ Π±ΠΈΠ½Π°ΡΠ΅Π½ ΡΠ°ΠΉΠ» (Ρ.Π΅. ΠΊΡΠΌ ΡΠ΅Π»ΡΠ° Π½Π° ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠ°).
ΠΠ° Π²ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Python ΡΠΊΡΠΈΠΏΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½Π° ΡΠ°ΠΌΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΠΊΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ Ρ ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΡΠ΅ ΠΈΠΌΠ°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° SUID. ΠΠ°ΠΉ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡΡ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π΅ Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» Π½Π° C ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΎΡ ΡΠΊΡΠΈΠΏΡΠ°. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΎΡ Wireshark, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ½Π°ΡΠ΅Π½ ΡΠ°ΠΉΠ». /usr/bin/dumpcap Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip ΠΠ° ΡΡΠ΅ΡΠΎ ΠΌΡΡΡΠΎ, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Ρ, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° LD_LIBRARY_PATH ΠΏΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°(1). Π‘ΡΡΠΎΡΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° LD_PRELOAD, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΌΠΈ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ.
1. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈ Π΅Π΄Π½Π° ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° LD_LIBRARY_PATH, Π·Π° Π΄Π° Π½Π°ΠΊΠ°ΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΏΡΠ΅Π΄ ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ°, ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠΎΠ΄ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° ΠΊΡΡΡΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ Π½Π°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
