ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Qualys Π²ΡΡΠ²ΠΈΠ»Π° ΡΡΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΡΠΈΠ»ΠΈΡΠ΅ needrestart, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Ubuntu 21.04 ΡΡΠΈΠ»ΠΈΡΠ° needrestart Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠΎΡΡΠ°Π² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Ubuntu Server, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° APT, ΡΠΊΠ°Π½ΠΈΡΡΠ΅Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ ΠΈΡ Π½ΠΈΡ , ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½Ρ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠΈΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²Π° root Π² Ubuntu Server Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² needrestart Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 0.8 (2014 Π³ΠΎΠ΄) ΠΈ ΡΡΡΡΠ°Π½Π΅Π½Ρ Π² Π²ΡΠΏΡΡΠΊΠ΅ needrestart 3.8. ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΆΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Debian ΠΈ Ubuntu. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΡΠΊΠ°Π·Π°Π² Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ /etc/needrestart/needrestart.conf ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «$nrconf{interpscan} = 0».
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
- CVE-2024-48990 — Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Python-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Ρ Π²ΡΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH. ΠΡΠΎΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Python Π°ΡΠ°ΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° (CVE-2024-48992) ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Ruby Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ RUBYLIB.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ·Π²Π°Π½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° needrestart Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° /proc/pid/environ, ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Python-ΠΊΠΎΠ΄Π°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° APT, ΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π² needrestart Python-ΠΊΠΎΠ΄Π° («import sys\n print(sys.path)»), Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΈΡΡΡΠΈΠΉ Π² ΠΏΠ°ΠΌΡΡΠΈ Python-ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΡΡΠ°Π²ΠΈΠ² Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ «PYTHONPATH=/home/test», ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ «/home/test/importlib/__init__.so», ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Python-ΠΊΠΎΠ΄Π° Π² needrestart.
- CVE-2024-48991 — Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ (race condition), Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ needrestart Π·Π°ΠΏΡΡΡΠΈΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python, ΠΏΠΎΠ΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python. Π‘ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΡ
ΠΎΠΆΠ° Π½Π° Π²ΡΡΠ΅ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°Π·Π½ΠΈΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ needrestart ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Python (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, /usr/bin/python3) ΡΠ΅ΡΠ΅Π· ΡΡΠ΅Π½ΠΈΠ΅ «/proc/pid/exe».
ΠΠ»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ /home/test/race, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° inotify Π΄ΠΎΠΆΠ΄ΡΡΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° needrestart Π½Π°ΡΠ½ΡΡ ΡΠΈΡΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ /proc/pid/exe, ΠΈ ΡΡΠ°Π·Ρ Π·Π°ΠΏΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ execve ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python. Π’Π°ΠΊ ΠΊΠ°ΠΊ needrestart Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ Π»ΠΈ ΡΡΠΎ Python, ΡΠΎ ΠΎΠ½ ΠΏΠΎΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ /home/test/race ΠΈ Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
- CVE-2024-11003 — Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ
shell-ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² needrestart ΠΈΠΌΡΠ½ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ «ΠΊΠΎΠΌΠ°Π½Π΄Π°|», ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΡΠΎΡΡΡ
Π² Perl-ΡΡΠ½ΠΊΡΠΈΡ open() ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π·Π°ΠΏΡΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² Perl-ΠΌΠΎΠ΄ΡΠ»Π΅ ScanDeps (CVE-2024-10224), Π½ΠΎ Π²ΡΠ·Π²Π°Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π² ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π±Π΅Π· Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
ΠΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½Π° ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΠΊ Perl-ΡΠΊΡΠΈΠΏΡΠ° Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ «|» Π² ΠΈΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «/home/test/perl|». Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ scan_deps() Π² needrestart Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ open(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» «|» ΠΊΠ°ΠΊ ΡΠ»Π°Π³ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «/home/test/perl» ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru