Portál AbcLinuxu, 30. dubna 2025 12:40

Bashová hádanka

3.6.2011 14:23 | Přečteno: 1351× | Linux | poslední úprava: 3.6.2011 14:23

Před časem jsem si napsal skript na stahování nových informací i balíčcích s ruby ve Fedoře, když jsem si soubory z VPSky skopíroval na lokální PC, abych tu VPSku poladil, nestačil jsem se divit co se mi na lokální VPSce děl a co může způsobit obyčejný bash skript v cronu.

#!/bin/bash
cd /srv/www/hosts/werzo.net/werzo.net/repo/centos/5/SRPMS
rm -fr new_pkgs;
for i in `repoquery 'ruby*' --repofrompath=f14-upd,ftp://ftp.fi.muni.cz/pub/linux/fedora/linux/updates/14/x86_64/ -s --quiet|sort|uniq`;
do 
        new_pkg=`echo $i|sed -e 's@fc14@el5.lpp@g'`
        if [ ! -f $new_pkg ]; then 
                echo $i >> new_pkgs;
         fi; 
done
cd news
rm -fr *
for i in `cat ../new_pkgs`
do
        if [ ! -f $i ]; then
                wget ftp://ftp.fi.muni.cz/pub/linux/fedora/linux/updates/14/SRPMS/$i > /dev/null 2>&1
        fi
done
for i in ../../testing/SRPMS/*
do
        pkg=`echo $i|sed -e 's@el5.lpp@fc14@g' -e 's@../../testing/SRPMS/@@g'`
        rm -fr $pkg
done
rm -fr libdmtx* libguestfs* qpid-cpp* redland* rubygem-boxgrinder* rubygem-cairo-* rubygem-gdk_pixbuf* rubygem-gio2* rubygem-glib2* rubygem-gtk2* rubygem-pango* rubygem-poppler* rubygem-rsvg2* ruby-gnome2* rubygem-scruffy* rubygem-vte-0.90.8-2.fc14.src.rpm rubygem-cloudservers* rubygem-gtksourceview2*

Tak mě napadlo, že otestuju pozornost uživatelů tohoto portálu. Kde se v tomto bashovém skriptu spouštěném z cronu nachází citlivé místo a proč? Schválně, kdo na to příjde jako první. ;)

       

Hodnocení: 80 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

3.6.2011 14:30 R
Rozbalit Rozbalit vše Re: Bashová hádanka
Odpovědět | Sbalit | Link | Blokovat | Admin
No "rm -fr *" a neskontrolovat, ci je to v spravnom adresari, to zavana pruserom...
3.6.2011 14:36 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
Rozbalit Rozbalit vše Re: Bashová hádanka
jj, přesně to je ta chyba, kterou jsem měl na mysli. Na lokální VPSku jsem samozřejmě ten adresář, kde mám dost RPM balíčků zbytečně nekopíroval a pak jsem se divil, proč mi vždycky po čase práce na té lokální VPSce zmizely skoro všechny soubory v kořenovém adresáři.

Takže z toho vyplývá, že si je třeba dávat pozor na * u rm -fr nejen na klávesnici, kde je nebezpečně blízko lomítko, ale i ve skriptech.
3.6.2011 14:59 R
Rozbalit Rozbalit vše Re: Bashová hádanka
V skriptoch minimalizovat pouzitie prikazu "cd" a radsej uvadzat plne cesty. A ked uz "cd", tak skontrolovat, ci sa to podarilo. Alebo aspon "rm -fr news/*".
Petr Tomášek avatar 3.6.2011 17:02 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Bashová hádanka
Jojo, kdysi dááávno, tak nějak kolem RH 6.2, jsem se snažil vytvořit .spec soubor pro vytvoření jakéhosi RPM'ka. A v tom .spec souboru bylo něco jako "rm -rf %{jakysi_dir}" a já v zachvatu „zkrášlování“ to změnil na "rm -rf %{jakysi_dir}/". Pochopitelně, podle Murphyho zákonů ten %{jaksi_dir} byl prázdný...

(Jojo, to ještě byla doba, kdy se balíčky vyráběly pod rootem :-O )
multicult.fm | monokultura je zlo | welcome refugees!
3.6.2011 18:31 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Bashová hádanka
(Jojo, to ještě byla doba, kdy se balíčky vyráběly pod rootem :-O )
A byl v té době v rm defaultní --preserve-root? :-D
Petr Tomášek avatar 5.6.2011 17:26 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Bashová hádanka
Blázníš? To tenkrát vůbec neexistovalo.

Tenkrát ještě "rm -r" skutečně šlo do podadresářů a poctivě mazalo soubor po souboru (dnes to dělá tuším jádro). Takže se mi to nějak nezdálo a rychle jsem to utnul... stejně byla 1/2 systému v pr...
multicult.fm | monokultura je zlo | welcome refugees!
pavlix avatar 7.6.2011 23:51 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Bashová hádanka
Tenkrát ještě "rm -r" skutečně šlo do podadresářů a poctivě mazalo soubor po souboru (dnes to dělá tuším jádro).
Tak o tom jádře dost pochybuju, máš k tomu nějaký zdroj?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
3.6.2011 15:07 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Bashová hádanka
Odpovědět | Sbalit | Link | Blokovat | Admin
cd "...cesta..." || exit 1
SPD vůbec není proruská
3.6.2011 15:44 Radovan Garabík
Rozbalit Rozbalit vše Re: Bashová hádanka
Odpovědět | Sbalit | Link | Blokovat | Admin
Kde se v tomto bashovém skriptu spouštěném z cronu nachází citlivé místo ?
Riadok č. 2, chýba tam sed -e.
3.6.2011 15:44 Radovan Garabík
Rozbalit Rozbalit vše Re: Bashová hádanka
s/sed/set/

grr...
4.6.2011 12:52 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Bashová hádanka
Odpovědět | Sbalit | Link | Blokovat | Admin
pouzivat rm -rf $foo misto rm -rf "$foo", taky neni zrovna dobry napad, obzvlast, kdyz hodnota $foo je brana z nekde vnejsku.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
Sleep_Walker avatar 13.6.2011 09:11 Sleep_Walker
Rozbalit Rozbalit vše Re: Bashová hádanka
Odpovědět | Sbalit | Link | Blokovat | Admin
1] nekontrolujes, zda probehne to co ma (set -e by mohlo krapet pomoci)

2] '"' je Tvuj kamarad, nekde se objevi mezera, strednik atd a nestacis se divit

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.