Rust Coreutils 0.9 kiadásra került, amely a biztonságra összpontosító frissítést jelent a GNU Coreutils Rust-alapú újraimplementációjában. Ez a verzió széleskörű fájlrendszer-biztonsági fejlesztéseket, a nem biztonságos kód csökkentését, a GNU kompatibilitás javítását és a teljesítmény növelését hozza.
Akik nem ismerik, a uutils Coreutils a GNU Coreutils által biztosított standard parancssori segédprogramok, például
cp
,
mv
,
rm
,
ls
,
cat
,
head
,
tail
,
wc
,
chmod
stb. Rust megvalósítása. A projekt célja, hogy kompatibilis alternatívákat kínáljon ezekhez az eszközökhöz, miközben kihasználja a Rust biztonsági modelljét és modern eszközeit.
A Rust Coreutils 0.9 kulcsfontosságú biztonsági változásai közé tartozik az új TOCTOU-ellenálló
uucore::safe_copy
modul. A kiadás TOCTOU (time-of-check to time-of-use) javításokat is biztosít a
cp
,
mv
és rekurzív
chmod
parancsokhoz, valamint javított védelmet nyújt a
rm
számára a pont és a pont-pont útvonalak elemzésében.
További biztonsági fejlesztések közé tartozik a
nohup.out
létrehozása
0600
módban, valamint az összes azonosító megoldása a chroot környezetbe lépés előtt.
Ez a kiadás továbbra is csökkenti a nem biztonságos Rust kódot, több tucat nem biztonságos kód eltávolításával a segédprogramok, tesztek, fuzz célok és megosztott
uucore
komponensek között. Az alacsony szintű syscall használat is átkerül a
nix
és
libc
helyett a
Rustix
rendszerre olyan eszközökben, mint a
id
,
tr
,
timeout
,
sort
,
wc
,
tail
,
cp
,
who
és
factor
.
A kiadás teljesítményjavításai közé tartozik a zero-copy I/O gyors útvonalak használata Linux mechanizmusokkal, mint például a
splice()
,
tee()
és
pipe()
olyan eszközökben, mint a
cat
,
wc
,
head
,
tail
,
yes
,
cp
,
tee
és
unexpand
.
A kiadási megjegyzések kiemelik a
unexpand
7,5%-os teljesítményjavítását, a
cp
gyorsabb teljesítményét csőből való olvasáskor Linuxon, a
tee
javításait nyers syscall-ok révén, valamint a
yes
most már a tee syscall-t használja.
A GNU kompatibilitás szempontjából a Rust Coreutils 0.9 frissíti a GNU referenciát a Coreutils 9.10-ről 9.11-re, ezzel bővítve a felfelé irányuló tesztcsomagot 665-ről 690 tesztre. Ennek következtében a hibás tesztek száma 21-ről 56-ra nőtt. A projekt megjegyzi, hogy a hibás tesztek számának növekedése a kibővített GNU tesztcsomagnak köszönhető, nem pedig a meglévő funkciók regressziójának.
Ezen felül több segédprogram is kapott GNU kompatibilitási javításokat, beleértve a
numfmt
,
date
,
tr
,
cksum
,
factor
,
head
,
stat
és
sort
parancsokat.
A
ls
parancs több fejlesztést is kapott. A Rust Coreutils 0.9 javítja a
ls -lF
szimbolikus linkek célpontjainak jelölését, korrigálja a linkszám oszlop viselkedését az ACL-ekkel rendelkező fájlok esetén, foglalkozik a verzió szerinti rendezéssel és a rekurzív mód problémáival, valamint javítja a jogosultságok oszlopának szélességkezelését.
Továbbá a
ls
átalakításra került, így a crate felhasználók, beleértve a Nushell-t, közvetlenül a standard kimenetre írás nélkül is hívhatják.
ln,
dd
,
mktemp
és
tty.wasm
parancsokhoz, valamint Cygwin CI és build fejlesztések a
date
és
stdbuf
eszközök számára. A Windows támogatás a tty számára, beleértve az MSYS2 útvonalakat, szintén javult.
További részletekért lásd a changelogot.

