souhlasim ze nektere programy maji prilis 'blizko' u sebe destruktivni a nedestruktivni prikazy, kazdopadne takove programy by se mnely ptat ono zminovane are you sure? :) U win je zase potreba potvrzeni na kazdou blbost, takze uzivatel casem otupi a mazcka ok automaticky aniz by si precetl co tam stoji, a u klikacu nepomuze ani vychozi nastaveni buttonu Cancel na levou stranu okenka :) Ale jsou i horsi priklady, treba mysql , kde se podminka dava az na konec prikazu. Urcite se spouste lidem uz stalo ze provedli neco jako 'delete from tabulka; where id='3'; :)
Rada je jednoducha: zalohovat zalohovat zalohovat. A treba existuji i shelly a programy ktere emuluji recycle.bin nahrazenim prikazu mv, rm a podobne :)
Hehe, se mi stalo primo "delete from tabulka" a to jsem pred tim jeste nejakou chvili dumal, jestli je to OK:))) nastesti tam bylo jen par informaci, bohuzel jsem zalohu nemel, tak jsem musel prosit lidi, aby mi ty informace poslali znovu:) Ale uz zalohuju dvakrat denne a jeste posilam jednou denne kopii na mail:) Jojo, treba s tim find -name ... to chce zkusit nejdriv bez akce a pak teprve -exec. Takhle to taky delam.
No, to mě se jednou stalo, že jsem v našem redakčním systému chtěl upravit datum u 1 článku.
UPDATE Clanky SET Datum='2000-01-15';
Jo a hned, jak jsem bouchnul do Enteru, bylo mi jasný, že něco je jinak (a špatně). Všech (tehdy jenom) cca 200 článků šlo do ...
Zaplaťpánbůh za Oracle SQLWorksheet, kde se defaultně očekává commit za každým příkazem nebo sekvencí příkazů. Obyčejně když vidíte, že 3876 rows processed, tak víte, že je zle a rollback to spraví.
Prostě se mi občas stane že ruce jsou rychlejší než hlava:-(
Zbrkly uzivatel(ka) je silena vec. Takhle koukam kolegovi pres rameno na woknousy najednou vyskoci okenko se stopkou (vic jsem toho nestihl) bum Enter. Ptam se :"Co to bylo ?" - " Nevim, na tom nezalezi."
Takze si myslim, ze to neni o systemu, rozlozeni parametru na klavesnici atp. , ale o tom ze kolikrat po sobe necteme co piseme do radku, nebo to cteme pozde.
Tim 1.padem mnozneho cisla myslim nas zbrkle uzivatele (taky me to obcas chytne)
Ja kdyz pracuji jako root tak si davam pozor, co spoustim :-) Napriklad kdyz neco odstranuji findem tak si necham nejdriv ty soubory vytisknout a teprve kdyz find nachazi to co chci tak mu reknu at dela rm. I kdyz uz se mi take stalo, ze jsem se preklepl v interfacu na firewallu a odpojil celou sit od Internetu :-)
osobne pri carovani s ipchains/iptables a route na dalku nejdrive nastavim do at-u puvodni obsah, neboli reset ipchains/iptables nebo route tabulek za rekneme 5 minut. pak kdyz si odprasknu cestu, tak staci jen pockat 5 minut a nasteveni je zpet. ovsem nesmi se udelat i chyba v tech prikazech, co se spusti v tom at-u:-)))
Chtel bych jenom pridat par prikladu:
rm -rf .*
nekdo by cekal odstraneni souboru zacinajicich teckou... a docka se, i adresar .. zacina teckou (-:
preklep . -> / v tomto pripade jeste doda na dramaticnosti (-:
dalsi krasa je:
rm -rf *~, coz samo o sobe nebezpecne neni, ale
rm -rf * ~ uz sve skody napacha
v tomto pripade radim nepouzivat -r, zachranite tak alespon podadresare (-:
Je to trochu bizardni kombinace, jak odklepnout rm -rf /, ale da se. Pracuji na unixove klavesnici, ktera ma vpravo shift, nad nim jeden radek enter, nad nim backspace a nad nim obraceny apostrof (BS o radek nize). Je to prijemne. Ale umite si predstavit, ze jiste klavesnice na tom jistem miste maji horni cast enteru... Napiste pak na nich "rm -rf /" a reknete si - aaaa, backspace! :-))) A date <enter>. At je layout klavesnice libovolny, je lepsi pracovat na jednom, anebo byt pripraven se "prepinat" okamzite.
Dobry den,
to jsem si tak jednoho vecera vytvarel zachrannou disketu a nejak jsem
si na ni preplnil usr a tak pisu v adresari ~/work , kde jsem ji delal
rm -rf /usr. Samozrejme jako root. Po 10sec mi to doslo, nasledovalo ctrl+c a uz jsem pul roku obnovoval podle /var/lib/rpm, (byl jsem
uplny zacatecnik)....
Hezky den
Nebylo to sice pod linuxem, ale pod AIXem - to sem snad může. Na firemním mailovém serveru jsem si nevšiml aktuálního adresáře a podařilo se mi přesunout celý obsah adresáře /etc někam úplně do ... jinam.
Ten AIX to neustál ani sekundu - nedalo se na něj ani pingnout :-(
Pak jsem už jen zjišťoval jak se bootuje AIX z CDčka a za dvě hodiny jsem to dal zpátky.
Od té doby si dávám VELKÝ pozor nejen na to CO spouštím, ale taky KDE to spouštím.
Mne se zase na Slackware stalo tohle: Je tam nejaka n-curses utilita pro praci s .tgz balicky tusim pkgtool. Prvnim balickem je aaa.tgz - balicek, ktery obsahuje zakladni adreasarovou strukturu systemu[/bin,/usr/,etc,proste vsechno] No a kdyz se po spusteni toho programu stiskne neco jako 2x enter tak se ten balicek odstrani. Neco po mne tenkrat ten program chtel neustale potvrzovat[tusim instalace novych baliku]...no znate to...
Vypadalo to zajimave. Ten Slackware uz jsem pak dohromady nedal. Prvni co jsem po nove instalaci udelal byla instalace balicku, ktery jsem pojmenoval neco jako AAAAA_DELETE_PROTECTION.tgz
Uz som myslel ze tu nic take nenajdem :)
To som raz dokoncoval zadanie do skoly, na objektovo-orientovane programovanie. Uz som mal vsetko hotove, otestovane, okomentovane, zdokumentovane (nastastie v LaTeXu). A chystam sa skopirovat to na disketu (o 1:30 hod. v noci).
mount /mnt/floppy
ls /mnt/floppy ... ejha, nejake veci su na diskete, zmazeme ich
a miesto
rm -rf /mnt/floppy/*
pisem
rm -rf * /mnt/floppy/
a este mi hlavou preblesne myslienka ze ved bash predsa pochopil co chcem.... jujha, nepochopil, a cely vikend programovane zadanie je v ... nikde.
co teraz... e2tools som vtedy velmi neovladal este, undelete filesystem v mc nezafungoval, nastastie som mal home na extra partition ->
strings /dev/hda3 > /tmp/rescue
taak, a mame 30 megabajtov textu, z ktorych som zacal lovit 3x subor.h, 3x subor.cc, 1x Makefile, 1x subor.tex
chyba lavky bola v tom, ze strings odignoroval vsetky riadky na ktorych sa nachadzal len znak '}', teda som ich musel doplnat.
nakoniec o 4tej rano som to mal vsetko hotove. iba jeden '}' bol na zlom mieste, ale kedze sposoboval segmentation fault (delete object; v ramci for-cyklu ktory s objectom pracuje :), tak som ho rychlo nasiel.
poucenie? nemazte diskety o pol druhej v noci :)
Presne toto sa stalo aj mne. Zvlast ked ta kompilacia zbehne uplne bez problemov, potom je to skutocne na zaplakanie...
Hint ale je, ze ak je na pozadi textovy editor, ktory ma ten zdrojak otvoreny, da sa pomocou filedescriptorov v /proc k nemu dopracovat. Totiz subor nie je realne zmazany dovtedy, kym existuje aspon jeden proces, ktory ho ma otvoreny.
Vůbec nejlepší je psát všecky příkazy dobře, jenže do špatnejch oken:-))) Se mi již nekolikrát stalo při přesunech souborů mezi třeba i třema počítačema a při různých nastavovačkách - několik oken a na každej stroj loglej aspoň 2x - pak se přepínat jak ďas - no netrvá dlouho a vaše představa, že jste na stroji X je úplně mílná...
V mojich zaciatkoch sa mi asi dvakrat podarilo 'chmod a-x .*' a potom som sa v domacom adresari nevedel pohnut :) Samozrejme mi to musel urobit iny kto urobil skratka cd / ...
Tiez sa mi uz podarilo 'rm * ~'
Nedavno sa mi podarilo zmazat asi 30kB zdrojovy kod tym ze som pouzival commad completion z tcsh.
Sktatka rm export<TAB><enter><yes>
co malo byt export.o lenze to bol export.c (zaujimavy tcsh, furt mi ponuka .o ked si idem pozriet zdrojak)
Vytiahol som to z bufferu screenu... :)
V kazdom pripade aliasy ako "alias rm 'rm -i'" ma vzdy naseru... clovek sa skratka MUSI naucit co pise.
a s tym ze pred rm musi ist vypis co sa vlastne zmaze detto.
A zalohovat treba nielen pre toto :)
Uz mi napadlo do kazdeho mozneho programu nastavit t est na enviroment premennu FUCKYOU,
ktora keby bola nastavena, kazdy program by MUSEL ignorovat vsetky warningy (aj tie na command line, moze to byt predsa volane zo skriptu)
alebo napisem program rm ktory bude mat viac levelov otazok:
rm a.out
Are you sure? y
Really? y
Do you know what you're doing? y
So you want to remove 'a.out'? y
No doubts? FUCK!
Input error: file 'a.out' not removed
""V kazdom pripade aliasy ako "alias rm 'rm -i'" ma vzdy naseru..."" hehe, je to uplne jedno, kdyz se clovek nauci pod rootem psat rm -f :-) tak ho ani ten alias nezachrani:-) ale je fakt, ze obcas muze pomoct, kdyz se clovek octne ve spatnym okne nebo si mysli ze je na obyc userovi:-)
V mojich zaciatkoch sa mi asi dvakrat podarilo 'chmod a-x .*' a potom som sa v domacom adresari nevedel pohnut :) Samozrejme mi to musel urobit iny kto urobil skratka cd / ...
Tiez sa mi uz podarilo 'rm * ~'
Nedavno sa mi podarilo zmazat asi 30kB zdrojovy kod tym ze som pouzival commad completion z tcsh.
Sktatka rm export<TAB><enter><yes>
co malo byt export.o lenze to bol export.c (zaujimavy tcsh, furt mi ponuka .o ked si idem pozriet zdrojak)
Vytiahol som to z bufferu screenu... :)
V kazdom pripade aliasy ako "alias rm 'rm -i'" ma vzdy naseru... clovek sa skratka MUSI naucit co pise.
a s tym ze pred rm musi ist vypis co sa vlastne zmaze detto.
A zalohovat treba nielen pre toto :)
Uz mi napadlo do kazdeho mozneho programu nastavit t est na enviroment premennu FUCKYOU,
ktora keby bola nastavena, kazdy program by MUSEL ignorovat vsetky warningy (aj tie na command line, moze to byt predsa volane zo skriptu)
alebo napisem program rm ktory bude mat viac levelov otazok:
rm a.out
Are you sure? y
Really? y
Do you know what you're doing? y
So you want to remove 'a.out'? y
No doubts? FUCK!
Input error: file 'a.out' not removed
Super clanek. Sam nemam nic podobne destruktivniho (nastesti), ale zrovna dnes v noci jsem se prepsal takto:
Chci si vypsat databaze, ktere jsou v podadresari, abych vedel cislo posledni, tedy:
# ls Alpha/*
Ale z nepochopitelneho duvodu pisu:
# cat Alpha/*
Vzhledem k tomu, ze ty soubory mely 80GB a ja jsem byl pripojen pres modem, tak jsem na vysledek necekal ;)
Zdravím,
podobné historky vždycky potěší. Akorát mi přijde, že zrovna příklady uvedené v článku moc destruktivní nejsou.
rm -rf .
Nevzpomínám si, že bych viděl shell/rm, který by nenapsal něco jako:
rm: cannot remove `.' or `..'
mv adresar1 adresar2
I když to odmáčknu podruhé, komu to vadí?
Abych pověděl něco na sebe, tak kromě jednoho sice správného mazacího příkazu, ale napsaného na špatném počítači (viz o pár příspěvků výše), můj nejlepší "výkon" byl, když jsem rozbaloval nějakou věc (tuším, že lxdoom) z tgz archívu, a když jsem ho chtěl pak odstranit, použil jsem něco jako:
rm -rf `tar tzvf lxdoom.tgz`
Přičemž mě bohužel pozdě napadlo, že ten archiv začíná:
/usr
/usr/local
/usr/local/games
atd.
Típnul jsem to po pár sekundách, když mi přišlo, že se to maže podezřele dlouho. Promazaný /usr/lib jsem pak dával do pořádku asi dva dny...
- M -
Taky jsem se nesetkal s rm, ktere by mazalo aktualni adresar.
Ale i ten tar je nejaky zvlastni, co si pamatuju, kdykoli jsem pakoval neco s / na zacatku, nahlasil, ze to prvni lomitko vynechava.
Nicmene neco jako rm -r tmp * misto tmp* se mi uz taky podarilo (v $HOME, nastesti jsem si rychle vsiml)
Horsi bylo, kdyz jsem presouval nejaka data z disku na disk, jenze jsem to zkopiroval blbe (asi neco s linkama), tak jsem to chtel smazat a zkopirovat znova.
V /mnt/new jsem napsal
rm -rf /bin /dev /etc /lib /usr /var ...
(proc mam xakru ve zvyku psat tyhle adresare s lomitkem na zacatku...)
Pouceni: data mezi disky presouvat pomoci dump a restore :)
uz jsem se setkal s tarem kterzmu se muselo explicitne rict ze nechci / - delaly to starsi komercni unixy. A trosku do mlyna: kolega chtel smazat adresar #neco se podarilo pomoci cd #neco;rm -r * smazat root serveru (na tomhle klonu totiz # znamenalo root, nastesti od tyhle ficurky vyrobce pozdeji upustil) Jo kdo si alespon jednou poradne nesejmul server, neni root ;-)
Mas pravdu, vetsina shellu zahlasi neco jako:
'Cannot remove `.' or `..'' a skonci bez toho, aby neco udelali.
Nejsem si stoprocentne jist, ale jelikoz ten clovek, kteremu se to stalo docela bedoval (a to i po nejakem case), tak bych rekl, ze ten jeho rm nejdrive smazal vsechno v '.' a pak se pokusil smazat '.'.
Bogdan
no jo. mne sa zas podarilo pod rootom v mojom domacom adresari chown marian.users .* -R (ked som si chcel chownut vsetky adresare aj tie co zacinaju bodkou :) nastastie sa to vnorilo len o 1 uroven nizsie, pretoze v nej uz nebol dovod pokracovat v adresaroch zacinajucich bodkou :)
Kdyz uz jsme u toho povidani, snad nebude vadit, kdyz pridam neco z dob, kdy slovy super pocitac byla minena 486 a vetsina parila pod DOSem. Treba to i nekdo z Vas pamatuje :) Kolega fyzik mel rad program vc a chtel si zformatovat disketu. Vlozil ji do mechaniky, vybral prikaz Formatovat a vybral A: (teda myslel si to). Pak tam byly nejake hlasky, tak je svizne odentroval a cekal. Byl zvykly, ze to neni moc rychle. Ale po chvili se mu zdalo, ze to chroustani ma nejaky jiny zvuk, nez byl zvykly, tak kouka, disketova mechanika nesviti. A to bylo asi tak vsechno, co stihnul, v tu chvili se pocitac zacal sypat. Az pak mu doslo, ze asi pri zadavani prejel a misto A zadal C. Dodnes mi neni jasne, proc tam tato moznost vubec byla. Ty data uz tehdy nikdo nezachranil.
Jisté nepříjemnosti může zdánlivě nevinný překlep způsobit i v obyčejném DOSu. Dle zákona schválnosti se to navíc stává zásadně ve chvíli, kdy má správce sítě dovolenou. Jeden můj uživatel (neměl Windows, používal pouze DOS a aplikace běžící pod ním - shodou okolností to byla mzdová agenda) si chtěl smazat obsah diskety: vzhledem k tomu, že na ní neměl žádné adresáře, usoudil, že by mělo stačit v command promptu napsat DEL A:*.*
Bohužel zapoměl napsat tu dvojtečku a jelikož měl jako pracovní adresář zrovna nastaven C:\, strašně se pak divil, že se mu počítač druhý den ráno po zapnutí ne a ne fungovat.
Ahoj lidi,
taky mam nejaky trosky do mlyna :
1) mam trochu problemy s presmyckama - nevim proc, ale proste mimovolne prehazuji poradi souhlasek.
Obvykle se objevi prima hlaska "command not found" (cp-pc, mv-vm, ls-sl), ale moji oblibenou vijimkou je prikaz cd. Jiste vite, ze kdyz zadate pouze prikaz cd, prepnete se do sveho domovskeho adresare. Kdyz ho ale prevratite na dc spustite si bajecnou zasobnikovou kalkulacku. Problem je v tom, ze se vam nevipise ani znak o tom, ze jste si neco spustili, takze cekate a cekate a rikate si, proc ze mu tentokrat ta zmena adresare trva takdlouho, tak to prerusite ctrl-c, vratite radkem nahoru a spustite jeste jednou :)))).
BTW Jestli nevite co je zasobnikova kalkulackanetruchlete a zkuste (100+100)
100
200
+
p
nebo treba (1+1)*(2+2)
1
1
+
2
2
+
*
2) Druhym oblibenym zradcem je program mcopy z baliku mtools. Da se pouzit ke kopirovani na dosovou (FAT) disketu a nemusite ji pritom mountovat. MTOOLS v podstate kopiruji prikazy MS-DOSu.
Kdyz napisete "mcopy soubor.txt a:" tak to soubor zkoupiruje na disketu. Kdyz to udelate jeste jednou, zepta se vase jestli chcete soubor prepsat.
No a ted kdyz zkusite napsat (nezkousejte to) jenom
"mcopy soubor.txt" objevi se stejna bezelstna hlaska, ze soubor uz existuje, ale tentokrat jde o stejny soubor. Prikaz mdir ze stejneho baliku defaultne predpoklada ze ma vypisovat z A: narozdil od mcopy, ktere defaultne pracuje v aktualnim adresari. Takze kdyz to odkliknete, o soubor prijdete, protoze nez se zkopiruje, tak se smaze a pak uz neni co kopirovat.
Taky bezva finta na pozdni ranni hodiny pred odevzdanim semestralni prace :)))
3) RPM_BUILD_ROOT
Ted jsem prolejzal nejaky SPEC soubory (soubory, ktere obsahuji informace o tom jak se maji zkompilovat a zabalit RPM baliky pro RedHat). Nepral bych nekomu pred prebuildenim nejakeho baliku (rpm --rebuild balik.src.rpm) nastavit tuto promennou na / . Prekvapive mnozstvi SPECU obsahuje bez jakekoli kontroly rm -rf %RPM_BUILD_ROOT
Naprosto stoprocentni je vzit vasi praci (dejme tomu par tydnu), zasifrovat a jelikoz data jsou citliva, tak take bezpecne smazat original (to je takove to trikrat premazat, prepsat nahodnymi daty... proste ze to nedostane uz ani FBI ;)
Pak uz zbyva jen aby vam prijemce odepsal, ze jste to nezasifrovali jeho klicem, ale klicem nejakeho nora o kterem ani poradne nevite, ze ho mate v keyringu a vubec netusite, zda jeste zije a zda umi anglicky.
Stoprocentni.
Dotycny se nastesti tehdy ozval a byl i ochoten spolupracovat :)
Jednou se mi povedlo myší přesunout celý adresář /usr někam do home. Měl jsem totiž blbnoucí levé tlačítko na myši, a zrovna jsem něco někam přesunoval (už nevím co) a povedlo se mi chytnout usr a pustit ho někde v home (zafungovalo automatické rozbalování a skrolování), a já vůbec nevěděl kde. Takže jsem šel do shellu a snažil jsem se to najít (byl to takový testovací počítač, takže v home bylo spousta adresářů s konfigurací). A hledejte to když find byl v /usr/bin! Nakonec jsem zbaběle nabootoval do jiné distribuce, namontoval si disk a našel to v ní. Bylo to někde v .netscape/cache ...
Je neuveritelne, jak si clovek rad plete klavesnice masin, zvlast pri prikazech, jako reboot, nebo ctrl+meta+del. A to presto, ze jedna kbd je notebook a druha normalni, nebo jeden monitor zeleny hercules a druhy 21" VGA - nepomuze nic. Taky ma neco do sebe mit otevrenych tak deset xtermu, z toho tak ctyri rootovsky (kazby na jine masine) a rebootnout si jinou masinu (v idealnim pripade router nebo stroj, ktery poskytuje Xa), nebo si nekde jinde prelozit jadro s make install a nakonfigurovat ho na uplne jiny stroj (vse klinicky testovano na lidech).
Yokotashi
P.S. v RH 5.2 je defaultni editor v mc vi ... asi dva dny po prvni istalaci linuxu (kdy jsem umel akorat spustit dooma a mc) jsem si za vi-ckoval vsech sest konzoli a pak jsem musel rebootnout stroj :-)
Prave dnes som prisiel na to ze vzdialeny pristup nezmamena, ze k pocitacu mam pristup na velku vzdialenost ale to, ze ked spravim preklep tak aj pristup na blizky pocitac (do 100km) sa poriadne vzdiali.
Chcel som dat shutdown -r +1 ale to -r vypadlo.
Kedze je nedela, nezostalo mi nic ine len sadnut do auta a ist vzdialeny pristup nahradit osobnym pristupom.
A co je taky dobry, mame v praci 4 servery, 3xwin, 1xlinux, kvuli bezpecnosti a tak jsou ty windozy odhlaseny (win2000) a kdyz se chci nalogovat (ctrl-atl-del) a omylem zapomenu switch preplej na linuxu :))) Ale porad je to min destruktivni nez kdyz jsem vymenoval jistic a rikal si, pohoda, servery na upsce (apccko 1000W) a najednou to slitlo, tak koukam a zjistil jsem, ze upska odhadla vydrz na min nez mam nastaveny varovani a tak se neobtezovala ty servery shutdownovat :))
Awe.
Podarila sa mi dalsia specialita, tento raz vdaka nie vzdy funkcenmu talcitku minus na klavesnici.
Chcel com napisat: kill -1 222
Ale napisal som: kill 1 222 (vypadlo minus)
Dosledok bol velmi neprijemny. Killol som proces cislo jedna, cize system a vzdialeny pocitac bol nedostupny.