ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Canonical ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΡΠΎΠ³ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ Π°ΡΠ΄ΠΈΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ uutils coreutils (Rust Coreutils), Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Ubuntu Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° GNU Coreutils. ΠΡΠ΄ΠΈΡ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Zellic, ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ ΠΎΠΏΡΡ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. Π Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΡΠ»ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΎ 113 ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΎΡΡΡΡ (PDF, 156 ΡΡΡΠ°Π½ΠΈΡ) Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ° Π°ΡΠ΄ΠΈΡΠ°, ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° uutils. ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½ Ρ Π΄Π΅ΠΊΠ°Π±ΡΡ 2025 ΠΏΠΎ ΡΠ½Π²Π°ΡΡ 2026 Π³ΠΎΠ΄Π°, Π±ΡΠ»ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΎ 73 ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ 7 ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, 11 β ΠΎΠΏΠ°ΡΠ½ΡΠ΅, 29 β ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ 26 β Π½Π΅ΠΎΠΏΠ°ΡΠ½ΡΠ΅.
ΠΡΠΎΡΠΎΠΉ ΡΡΠ°ΠΏ Π°ΡΠ΄ΠΈΡΠ° Π±ΡΠ» ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½ Ρ ΡΠ΅Π²ΡΠ°Π»Ρ ΠΏΠΎ ΠΌΠ°ΡΡ ΠΈ ΠΎΡ Π²Π°ΡΡΠ²Π°Π» Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅. ΠΠ° Π²ΡΠΎΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ 40 ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π΄Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ (ΠΎΡΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΡΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅). ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ΅Ρ Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ uutils ΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π±ΡΠ»Π° ΡΡΡΡΠ°Π½Π΅Π½Π° Π² Π²ΡΠΏΡΡΠΊΠ°Ρ uutils 0.5-0.8 Π±Π΅Π· Π»ΠΈΡΠ½Π΅ΠΉ ΠΎΠ³Π»Π°ΡΠΊΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·ΠΈ Π²Π½ΠΎΡΠΈΠΌΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΠΊΠ΅Ρ rust-coreutils Π±ΡΠ» Π²ΠΊΠ»ΡΡΡΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΎΡΠ΅Π½Π½Π΅ΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Ubuntu 25.10, Π½ΠΎ Ρ ΡΡΡΡΠΎΠΌ Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π² Ρ ΠΎΠ΄Π΅ Π°ΡΠ΄ΠΈΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² LTS-Π²Π΅ΡΠΊΠ΅ Ubuntu 26.04 Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ ΡΡΠΈΠ»ΠΈΡΡ cp, mv ΠΈ rm ΠΈΠ· Π½Π°Π±ΠΎΡΠ° GNU Coreutils. ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 22 Π°ΠΏΡΠ΅Π»Ρ Π² Π΄Π°Π½Π½ΡΡ ΡΡΠΈΠ»ΠΈΡΠ°Ρ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ 8 ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ ΠΈΠ· Π²ΡΠΏΡΡΠΊΠ° rust-coreutils 0.8.0. Π Ubuntu 26.10 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° rust-coreutils.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡΠ°Ρ ΠΎΠΏΠ°ΡΠ½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ , Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΡΠ°Π½ΡΠ½Π½Π°Ρ Π² Π²ΡΠΏΡΡΠΊΠ΅ uutils coreutils 0.3.0 ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠΈΠ»ΠΈΡΠ΅ rm ΠΌΠΎΠ³Π»Π° Π±ΡΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈΠ· cron ΡΠΊΡΠΈΠΏΡΠ° /etc/cron.daily/apport, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° /var/crash, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π½Π° Π·Π°ΠΏΠΈΡΡ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π‘ΡΠ΅Π΄ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΡΡΡΡΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ:
- Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠΈΠ»ΠΈΡΠ΅ chroot, Π²ΡΠ·Π²Π°Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Β«βuserspecΒ» ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° chroot(), Π½ΠΎ Π΄ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ glibc ΡΠ΅Π·ΠΎΠ»Π²ΠΈΠ½Π³ ΠΈΠΌΡΠ½ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ getpwnam() ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° /etc/nsswitch.conf, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² NSS (Name Service Switch), ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π½ΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ NSS (libnss_*.so.2). Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ NSS Π²ΡΠΏΠΎΠ»ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ² chroot() ΡΠ°ΠΉΠ» /etc/nsswitch.conf Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Ρ, Π½ΠΎ NSS-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π΄ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ Π½Π° Π·Π°ΠΏΠΈΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΠΊΠΎΡΠ½Ρ, ΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ NSS-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root.
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° (FIFO) ΡΡΠΈΠ»ΠΈΡΠΎΠΉ mkfifo β Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ», ΡΠΎ mkfifo Π²Π΅ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ, Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π²ΡΠ·ΠΎΠ² set_permissions() ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ°ΠΉΠ»Ρ. Π‘ ΡΡΡΡΠΎΠΌ umask 022 ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ Π½Π° 644 (rw-r-r-) ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΡΠ΅Π½ΠΈΠ΅.
- ΠΠ±Ρ ΠΎΠ΄ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Β«βpreserve-rootΒ» Π² ΡΡΠΈΠ»ΠΈΡΠ΅ chmod, Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Ρ Π€Π‘. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2026-35338) Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΡΠΈ Ρ Β«/Β» ΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΊΠ°Π½ΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΡΠΈ. ΠΠ»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΡ Π²ΠΈΠ΄Π° Β«/../Β» ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠΎΡΠ΅Π½Ρ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΎΠΏΠ°ΡΠ½Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π€Π‘.
- Π ΡΡΠΈΠ»ΠΈΡΠ΅ rm Π΄ΠΎΠΏΡΡΠΊΠ°Π»Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π»ΡΠ±ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΎΠΏΡΠΈΠΈ Β«βno-preserve-rootΒ» (Β«βnΒ», Β«βnoΒ», Β«βno-pΒ», Β«βno-presΒ» ΠΈ Ρ.ΠΏ.) Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠΎΡΠ½Π΅ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Β«rm -rf βn /Β» ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π GNU Coreutils ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.
- ΠΠ±Ρ ΠΎΠ΄ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Β«βpreserve-rootΒ» Π² ΡΡΠΈΠ»ΠΈΡΠ΅ rm, Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Ρ Π€Π‘, ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° Β«/Β».
- ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΡ Ρ ΡΠΎΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Β«rm -rf .Β» ΡΡΠΈΠ»ΠΈΡΠ° Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, Π½ΠΎ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ Β«rm -rf ./Β» ΠΈΠ»ΠΈ Β«rm -rf .///Β» ΠΌΠΎΠ»ΡΠ° ΡΠ΄Π°Π»ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
- ΠΡΠΈΠ±ΠΊΠ° Π² ΠΊΠΎΠ΄Π΅ ΡΠ°Π·Π±ΠΎΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠΈΠ»ΠΈΡΡ kill ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΠ³Π½Π°Π» Π²ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° Β«-1Β» (kill -1).
Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ TOCTOU (Time-Of-Check-To-Time-Of-Use), ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠ΅ΠΌΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½ΠΎ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π½ΠΈΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠ» Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ»ΠΊΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ Π½Π°ΡΠ°Π»ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡ cp ΠΈ mv Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠΊΡΠΈΠΏΡΠ°Ρ
, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ
Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
