Sobes.tech
Middle+

Kaip spręstumėte problemą, jei jūsų kolega ištrynė /usr/bin/chmod ir nėra donorų sistemos atsisiuntimui? Kaip keistumėte prieigos teises ir failų modifikacijas šiame sistemoje?

sobes.tech AI

Atsakymas iš AI

Naudosiu /lib/ld-linux-x86-64.so.2 /bin/busybox chmod arba panašią komandą, priklausomai nuo architektūros ir busybox prieinamumo.

Jei busybox nėra prieinamas, bandysiu naudoti /lib/ld-linux-x86-64.so.2 su kita sistemine priemone, kuri gali keisti teises, pavyzdžiui, /usr/bin/install.

# Pavyzdys naudojant install teisių keitimui
/lib/ld-linux-x86-64.so.2 /usr/bin/install -m 755 /failo/kryptis /failo/kryptis

Jei /lib/ld-linux-x86-64.so.2 arba panašus ld nėra, arba reikalaujama priemonė nėra prieinama, svarstysiu šiuos variantus:

  1. Naudoti kitus įrankius su integruota funkcionalumu: Kai kurios programos gali keisti teises kaip savo darbo dalį (pavyzdžiui, kai kurios archyvavimo priemonės išpakuojant). Tai mažai tikėtina, kad veiks jau esamuose sistemų failuose, bet gali būti naudinga specifinėse situacijose.
  2. Shell skriptai (bash, sh), jei yra shell: Kai kurios pagrindinės failų operacijos, įskaitant galimą teisių keitimą, gali būti netiesiogiai pasiekiamos per branduolio iškvietimus, tačiau tai labai žemo lygio ir sudėtingas būdas, priklausantis nuo prieinamų įrankių shell'e. Labai mažai tikėtina, kad bash pats galės keisti teises be išorinių įrankių.
  3. Perkrauti į atkūrimo režimą (Recovery Mode) arba su LiveCD/LiveUSB: Tai patikimiausias būdas atkurti chmod arba tiesiogiai keisti teises, įmontuojant šaknies failų sistemą kitame aplinkoje.
  4. Naudoti perl arba python, jei yra: Jei prieinami skriptų kalbų interpretatoriai, jie dažnai turi įmontuotas funkcijas darbui su failų sistema, įskaitant teisių keitimą.
# Python pavyzdys
import os

try:
    os.chmod('/failo/kryptis', 0o755)
    print("Teises pakeistos")
except Exception as e:
    print(f"Klaida: {e}")
# Perl pavyzdys
#!/usr/bin/perl
chmod(0755, "/failo/kryptis") or die "Negaliu pakeisti teisių: $!";
print "Teises pakeistos\n";

Veiksmų prioritetas priklausys nuo to, kokie įrankiai ir interpretatoriai yra prieinami sistemoje. Pirmiausia patikrinsiu busybox, tada kitus sisteminius binarus, ir jei nepavyks, pereisiu prie LiveCD/Recovery režimo kaip patikimiausio sprendimo.