Opasne Linux naredbe

Razne diskusije o Linuxu, neovisno o distribuciji.

Moderator/ica: Moderatori/ce

Avatar
jurastublic
Postovi: 1907
Pridružen/a: 16 tra 2011, 08:34
Spol: M
OS: Mint 10 LXDE itd...
Lokacija: i grupa Film

Re: Opasne Linux naredbe

Post Postao/la jurastublic »

Meni se ta naredba (rm -rf .*) ponaša kako treba, bez iznenađenja.
. i .. nisu pobrisani.
Sustav je Mint 17.3, bash 4.3.11(1)-release (i686-pc-linux-gnu)
"Hodor bre foobar"
Avatar
rusty
Postovi: 135
Pridružen/a: 09 sij 2015, 17:24
Spol: M
OS: Debian bullseye

Re: Opasne Linux naredbe

Post Postao/la rusty »

Malo sam kopao što se događa...

Referenciranje na skrivene datoteke kao .* je pogrešno jer uključuje . i .. direktorije.
Rm naredba i dalje prima listu stvari za brisanje koja uključuje navedene direktorije.

Razlog zašto naredba nije završila sa dodatnom štetom je što GNU rm naredba (prema POSIX standardu ) provjerava ovaj slučaj i odbija obrisati . i .. direktorije.

Izvadak iz info rm
Any attempt to remove a file whose last file name component is `.'
or `..' is rejected without any prompting.
E sad, GNU rm nije jedina implementacija rm naredbe (jedno je /bin/rm, dok shell može imati svoj rm), niti je rm jedina naredba koja prihvaća listu datoteka.

Tako da je bolje razumjeti što .* radi nego se pouzdati u nekakvu zaštitu.
Avatar
rusty
Postovi: 135
Pridružen/a: 09 sij 2015, 17:24
Spol: M
OS: Debian bullseye

Re: Opasne Linux naredbe

Post Postao/la rusty »

Kad smo već kod opasnih naredbi... koliko se zečeva ovdje skriva?

Kod: Označi sve

zec(){ zec|zec& };zec
Ovo je modificirani fork bomb!
Avatar
bertone
Site Admin
Postovi: 11554
Pridružen/a: 01 kol 2012, 12:39
Spol: M
OS: LMDE 6

Re: Opasne Linux naredbe

Post Postao/la bertone »

slika slika :hmm
[+ Prikaži] Klik
ThinkPad T14s Gen. 1
AMD Ryzen 7 PRO 4750U
16 GB DDR4-3200
Samsung SSD 970 EVO Plus 2TB
14" FHD IPS (Innolux N140HCG-GQ2)
WiFi Intel® Wi-Fi® 6 AX200
OS: LMDE 6
Slika: [url=https://i.postimg.cc/fs6gNqZt/Slika-zas ... -58-57.png[/url]

***

ZEN
"Charlie. What are you thinking?"
"I'm thinking about what I want and what I need."
"What do you want?"
"I want a peaceful soul."
"And what do you need?"
"I need a bigger gun."
Avatar
rudar
Postovi: 1208
Pridružen/a: 27 ruj 2012, 12:39
Spol: M
OS: Kub 24.04 LTS,Deb 13 KDE

Re: Opasne Linux naredbe

Post Postao/la rudar »

Referirajući se na raniju raspravu, htio bih samo dodati da sam našao odgovor na svoje pitanje.

Dakle, prije spomenuta 'opasna' naredba i njoj srodne naredbe su složene naredbe. Sastavljene su od dijelova koji sami po sebi nisu opasni, ali kad se nađu zajedno može nastati pakleni stroj. Slično izradi bombe od potrepština koje ima svako kućanstvo, o čemu govore mnogi filmovi. Eto, taj bitan element nisam mogao razumjeti, čisto teorijski govoreći.

Nije odlučio Linus, ili netko drugi, da u Linux jednostavno ubace naredbu koja može sve uništiti. Nastala je slučajno, kao što bezazlene riječi mogu povrijediti osobu, htjeli mi to ili ne.

Osobno sam više puta koristio naredbu za pretraživanje fajlova koja bi počinjala s grep i završavala s .*. Također, rm sama po sebi predstavlja jednostavnu, standardnu i korisnu naredbu, također više puta primjenjivanu. Sve je sad na svome mjestu, što se mene tiče, a posebno zahvaljujem @rustyju i @shrikeu na važnom doprinosu da razjasne stvar.
Avatar
jurastublic
Postovi: 1907
Pridružen/a: 16 tra 2011, 08:34
Spol: M
OS: Mint 10 LXDE itd...
Lokacija: i grupa Film

Re: Opasne Linux naredbe

Post Postao/la jurastublic »

rusty je napisao/la:E sad, GNU rm nije jedina implementacija rm naredbe (jedno je /bin/rm, dok shell može imati svoj rm), niti je rm jedina naredba koja prihvaća listu datoteka.
Tako da je bolje razumjeti što .* radi nego se pouzdati u nekakvu zaštitu.
Da, totalno se slažem. Ja nikad ne pokrećem takve naredbe prije nego dobro testiram izlaz, recimo sa echo, i pomalo namještam dok nisam zadovoljan. Tek onda može ona prava u akciju. I normalno, backup glavu čuva.

@rudar: Tvoj problem je što si u svom upoznavanju s računalima očito preskočio najosnovnije stvari, a jedna od njih je da naredbe mogu imati OPCIJE. Ili kako ti kažeš, "složene su od više dijelova". U stvari, velika većina naredbi ima opcije. Mislio sam da je takvo nešto očigledno samo po sebi, ali izgleda da nije.
"Hodor bre foobar"
Avatar
rudar
Postovi: 1208
Pridružen/a: 27 ruj 2012, 12:39
Spol: M
OS: Kub 24.04 LTS,Deb 13 KDE

Re: Opasne Linux naredbe

Post Postao/la rudar »

jurastublic je napisao/la:@rudar: Tvoj problem je što si u svom upoznavanju s računalima očito preskočio najosnovnije stvari, a jedna od njih je da naredbe mogu imati OPCIJE. Ili kako ti kažeš, "složene su od više dijelova". U stvari, velika većina naredbi ima opcije. Mislio sam da je takvo nešto očigledno samo po sebi, ali izgleda da nije.
Ovo je zlobna primjedba i ne stoji. Rad s računalom dolazi u raznim oblicima. Uspješan je onoliko koliko je korisnik samostalan i koliko uspješno rješava zadatke koje ima. Meni to ide dobro, nekoć kroz MS Win, a zadnjih nekoliko godina kroz GNU/Linux. To je jedino očigledno samo po sebi. Ako ti nisi razumio jednostavno pitanje koje sam ranije postavio, problem je tvoj. Kao i uvredljiva optužba za trolanje.
Avatar
rusty
Postovi: 135
Pridružen/a: 09 sij 2015, 17:24
Spol: M
OS: Debian bullseye

Re: Opasne Linux naredbe

Post Postao/la rusty »

Drago mi je ako sam pomogao.

Svi imamo rupa u znanju, i nemaju svi vremena za beskonačno istraživanje dubina Linux dokumentacije.
Jedini način je da si međusobno pomažemo, zato podržavam ovakve rasprave.

Da budem dosljedan, objasnit ću kako radi "fork bomb":

Kod: Označi sve

zec(){               <- kreira bash funkciju naziva "zec"
    zec | zec&       <- tijelo funkcije koje se izvršava prilikom poziva funkcije
};                   <- kraj definicije funkcije

zec       <- prvi poziv funkcije koji pokreće lavinu

Problem je što funkcija poziva samu sebe (rekurzivno) dva puta bez ikakvog dodatnog uvjeta – što izaziva eksponencijalno povećavanje broja pokrenutih funkcija.
Dodatni problem je što se funkcija poziva kao drugi proces u pozadini (&) - što dodatno troši resurse jer je broj paralelno pokrenutih procesa ograničen.

Rezultat je spora smrt sustava pod "stampedom zečeva" i jedini efikasni izlaz je restart računala.

Na netu je popularan drugi (kriptičniji) oblik "fork bomba" oblika : (){ : |:&};: radi se o istoj stvari samo je naziv funkcije :


Da ne bi bilo nesporazuma, bash funkcije su korisna stvar kod pisanja kompleksnih skripti.
Pokretanje naredbi u pozadini (&) je također zgodna stvar kod pokretanja naredbe koja dugo traje (npr unzip velike arhive), a da pri tome možete dalje koristiti shell.
Zadnja izmjena: rusty, dana/u 08 ožu 2016, 15:43, ukupno mijenjano 1 put.
Avatar
Abzeenth
Site Admin
Postovi: 6502
Pridružen/a: 06 lip 2009, 23:16
OS: Kubuntu & Fedora
Lokacija: Online

Re: Opasne Linux naredbe

Post Postao/la Abzeenth »

rudar je napisao/la:To je jedino očigledno samo po sebi. Ako ti nisi razumio jednostavno pitanje koje sam ranije postavio, problem je tvoj. Kao i uvredljiva optužba za trolanje.
Objasnio ti je u više navrata i spomenuo opciju -r i što ona radi u kombinaciji s rm. Nije samo ta "opasna" naredba i njoj srodne (??) "složena" - valjda 90%, ako ne i više, naredbi ima nekakve opcije, ako ništa, barem --help ili -v za verbose. Najobičniji ls ima gomilu opcija. Iskreno, i meni je nejasno kako ti je ovakvo nešto "novost", budući da si već dugo na forumu i pretpostavljam, dugo koristiš Linux. Vjerojatno se zato učinilo da trolaš.

</glasnogovornik>
Avatar
vision
Postovi: 1799
Pridružen/a: 15 sij 2014, 09:37
Spol:
OS: Leap 15.1 / Hera 5.1
Lokacija: Zaljev svetaca

Re: Opasne Linux naredbe

Post Postao/la vision »

Njegovo pitanje se odnosilo zašto su te naredbe korisne da se uopšte pišu "javno", ili barem na ovome forumu koji najviše služi da se pomogne novim korisnicima – bar ja tako shvaćam.

Takve i slične naredbe bi trebale da imaju ovako posebno mjesto, vidljive svima sa objašnjenjem i opaskom radi edukacije, testiranja i sličnog. Tko to želi zloupotrijebiti neka mu – to nije njegova krivica već vlasnika računala što nije isti zaštitio od fizičkog pristupa ili čega drugog.
Abzeenth je napisao/la:</glasnogovornik>
Odgovori