Π ΡΡΠΈΠ»ΠΈΡΠ΅ wall, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ util-linux ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ, Π²ΡΡΠ²Π»Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2024-28085), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π°ΡΠ°ΠΊΡ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ Ρ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° wall Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, Π½ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΄Π»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°ΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ‘wall $(printf «\033[33mHI»)’ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π°Π΄ΠΏΠΈΡΡ «HI» ΠΆΡΠ»ΡΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΎΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠΊΠ°Π· ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ Π²Π²ΠΎΠ΄Π΅ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ ΡΡΠΈΠ»ΠΈΡΡ sudo Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΡ ΠΏΠΎΠ΄Π²ΠΎΡ Π° ΠΈ Π²Π²Π΅Π΄ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, ΡΠΎ ΠΏΠ°ΡΠΎΠ»Ρ Π·Π°ΡΠ²Π΅ΡΠΈΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π²Π²ΠΎΠ΄Π° ΠΊΠ°ΠΊ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° (ΠΏΠΎ ΡΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π²Π΅Π΄ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅). «\033[3A» // ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΊΡΡΡΠΎΡ Π²Π²Π΅ΡΡ Π½Π° 3 ΡΡΡΠΎΠΊ «\033[K» // ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ «[sudo] password for a_user:» // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ sudo «\033[?25l» // Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ²Π΅Ρ Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ Π²Π²ΠΎΠ΄Π° «\033[38;2;48;10;36m»
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π²Π΅Π΄ΡΠ½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ /usr/lib/command-not-found, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° command-not-found Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² Π½Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΈΠ΄Π΅Π½ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΡΡΠΊΠ° Π½Π΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ «xsnow» Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅Π½ «/usr/lib/command-not-found — xsnow»). Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ «/proc/$pid/cmdline» Π΄Π»Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° PID) ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠΎΠ»Ρ, Π²Π²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΆΠ΅ΡΡΠ²ΠΎΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΡΠ» ΠΏΠ°ΡΠΎΠ»Ρ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΡΠΈΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ sudo ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡΡΡΠΊ, ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΈΠ»ΠΈΡΡ sudo, ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ ΡΠ΅ΡΠ΅Π· «wall» ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ. Π§Π΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ c escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ sudo Π½Π° ΡΠΈΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠ΅ΡΡΠ²Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΡΠΈΠ±Π»Π°ΡΡ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΈ Π²Π²Π΅ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·, Π·Π°ΡΠ²Π΅ΡΠΈΠ² ΠΏΠ°ΡΠΎΠ»Ρ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° «command-not-found».
ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° «mesg» Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ «y», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² Ubuntu, Debian ΠΈ CentOS/RHEL. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² Ubuntu 22.04 Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ gnome-terminal. Π Debian Π°ΡΠ°ΠΊΠ° Π·Π°ΡΡΡΠ΄Π½Π΅Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ Π²ΠΊΠ»ΡΡΡΠ½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ «command-not-found», Π° Π² CentOS/RHEL Π°ΡΠ°ΠΊΠ° Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈΠ»ΠΈΡΠ° wall ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π±Π΅Π· ΡΠ»Π°Π³Π° setgid ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΆΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°ΠΌ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ windows-terminal Π°ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΎΠ±ΠΌΠ΅Π½Π°.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ util-linux Ρ 2013 Π³ΠΎΠ΄Π°, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π² Π²ΡΠΏΡΡΠΊ 2.24 Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ wall, Π½ΠΎ Π·Π°Π±ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΡΡΠΊΡ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΡΠ°ΡΠ½ΠΈΠΉ Π²ΡΠΏΡΡΠΊ util-linux 2.40. ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² Π²ΡΠΏΡΡΠΊΠ΅ util-linux 2.39 Π±ΡΠ»Π° Π²ΡΡΠ²Π»Π΅Π½Π° Π΅ΡΡ ΠΎΠ΄Π½Π° ΠΏΠΎΡ
ΠΎΠΆΠ°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠΌΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru