abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 12:00 | Nová verze

Po cca 3 týdnech od vydání Linux Mintu 18.3 s kódovým jménem Sylvia a prostředími MATE a Cinnamon byla oznámena také vydání s prostředími KDE a Xfce. Podrobnosti v poznámkách k vydání (KDE, Xfce) a v přehledech novinek s náhledy (KDE, Xfce). Linux Mint 18.3 je podporován do roku 2021.

Ladislav Hagara | Komentářů: 0
včera 12:55 | Nová verze

Byla vydána verze 17.12.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi. Aplikace, které nebyly dosud portovány na KDE Frameworks 5, byly z KDE Aplikací odstraněny.

Ladislav Hagara | Komentářů: 28
včera 03:00 | Komunita

Na Humble Bundle lze získat počítačovou hru Company of Heroes 2 (Wikipedie, YouTube) běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 0
včera 02:00 | Zajímavý software

Christian Kellner představil na svém blogu projekt Bolt řešící bezpečnost rozhraní Thunderbolt 3 na Linuxu. Pomocí příkazu boltctl nebo rozšíření GNOME Shellu lze komunikovat s démonem boltd a například zakázat neznámá zařízení a předejít tak útokům typu Thunderstrike nebo DMA.

Ladislav Hagara | Komentářů: 6
včera 01:00 | Nová verze

Po půl roce vývoje od vydání verze 11.0 byla vydána verze 11.1 svobodného softwaru pro vytváření datových úložišť na síti FreeNAS (Wikipedie). Nejnovější FreeNAS je postaven na FreeBSD 11.1. Přehled novinek v příspěvku na blogu. Zdůraznit lze zvýšení výkonu OpenZFS, počáteční podporu Dockeru nebo synchronizaci s cloudovými službami Amazon S3 (Simple Storage Services), Backblaze B2 Cloud, Google Cloud a Microsoft Azure

Ladislav Hagara | Komentářů: 0
14.12. 23:55 | Nová verze

Po dvou měsících vývoje od vydání verze 235 oznámil Lennart Poettering vydání verze 236 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 7
14.12. 20:00 | Nová verze Ladislav Hagara | Komentářů: 0
14.12. 19:33 | Pozvánky

Pražská Fedora 27 Release Party, oslava nedávného vydání Fedory 27, se uskuteční 19. prosince od 19:00 v prostorách společnosti Etnetera (Jankovcova 1037/49). Na programu budou přednášky o novinkách, diskuse, neřízený networking atd.

Ladislav Hagara | Komentářů: 0
14.12. 18:11 | Nová verze

Byla vydána verze 2.11.0 QEMU (Wikipedie). Přispělo 165 vývojářů. Provedeno bylo více než 2 000 commitů. Přehled úprav a nových vlastností v seznamu změn.

Ladislav Hagara | Komentářů: 0
14.12. 17:44 | Komunita

Canonical oznámil dostupnost kryptografických balíčků s certifikací FIPS 140-2 úrovně 1 pro Ubuntu 16.04 LTS pro předplatitele podpory Ubuntu Advantage Advanced. Certifikace FIPS (Federal Information Processing Standards) jsou vyžadovány (nejenom) vládními institucemi USA.

Ladislav Hagara | Komentářů: 3
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (76%)
 (14%)
Celkem 998 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Nebezpečné uninstall.sh

    22.11.2013 18:58 | Přečteno: 1350× | Bash | poslední úprava: 25.11.2013 17:17

    Podíváme se blíže na skript uninstall.sh, který šíří Princeton Instruments ve svém Picam_SDK-v2.6.0.run.

    #!/bin/sh
    # Default variables
    START_DIR=`dirname $0`
    START_DIR=`cd $START_DIR; pwd`
    echo "Start_DIR is" $START_DIR
    
    USR_LIB=/usr/lib64
    USR_LOC_LIB=/usr/local/lib64
    
    INSTALL_ROOT=$START_DIR
    PI_ROOT=`cd ..; pwd`
    PLEORA_ROOT=`cd $START_DIR/../../pleora; pwd`
    
    REMOVE_LINKS=yes
    INSTALL_DIR_OVERWRITE=yes
    
    # Initial screen
    clear
    echo -n "Remove Picam SDK installed in directory '$INSTALL_ROOT' (yes/no) ? "
    read ANSWER
    if [ ! "$ANSWER" = "yes" ]; then
      echo "Uninstall cancelled."
      exit;
    fi
    
    if [ ! -w $INSTALL_ROOT ]; then
      echo "You do not have write permissions to '$INSTALL_ROOT'."
      echo "Run installer as super user (root)."
      exit 1
    fi
    
    echo "Removing software on $INSTALL_ROOT"
    if [ -d $PI_ROOT ]; then
        rm -rf $PI_ROOT 
    fi
    
    #pleora removal
    if [ -d $PLEORA_ROOT ]; then
        rm -rf $PLEORA_ROOT 
    fi
    
    if [ "$REMOVE_LINKS" = "yes" ]; then
      rm -rf $USR_LOC_LIB/libPv*
      rm -rf $USR_LOC_LIB/libEb*
      rm -rf $USR_LOC_LIB/libPt*
      rm -rf $USR_LOC_LIB/libEbuser*
      rm -rf $USR_LOC_LIB/liblog*
      rm -rf $USR_LOC_LIB/libapr*
      rm -rf $USR_LOC_LIB/libG*
      rm -rf $USR_LOC_LIB/liblog*
      rm -rf $USR_LOC_LIB/libM*
    # Picam references
      rm -rf /var/run/pits
      rm -rf $USR_LOC_LIB/libpi*
      rm -rf $USR_LOC_LIB/*.dat
      rm -rf /etc/ld.so.conf.d/picam.conf
    fi
    
    
    echo "Removal complete."
    echo ""
    echo ""
    

    Skript se zachová třemi různými způsoby, dle toho odkud je zavolán. Před příkazy rm -rf dáme echo, abychom zjistili co se stane, ale bez následků.

    Smaže co má:

    # /opt/PrincetonInstruments/picam/
    # ./uninstall.sh
    Remove Picam SDK installed in directory '/opt/PrincetonInstruments/picam' (yes/no) ? yes
    Removing software on /opt/PrincetonInstruments/picam
    rm -rf /opt/PrincetonInstruments
    rm -rf /opt/pleora
    

    Zachrání nás inteligentní chování příkazu rm, jinak by nám smazal celý /:

    rm: it is dangerous to operate recursively on `/'
    rm: use --no-preserve-root to override this failsafe
    
    # cd /root
    # /opt/PrincetonInstruments/picam/uninstall.sh
    Remove Picam SDK installed in directory '/opt/PrincetonInstruments/picam' (yes/no) ? yes
    Removing software on /opt/PrincetonInstruments/picam
    rm -rf /
    rm -rf /opt/pleora
    

    Smaže nám celý /home:

    # cd /home/user
    # /opt/PrincetonInstruments/picam/uninstall.sh
    Remove Picam SDK installed in directory '/opt/PrincetonInstruments/picam' (yes/no) ? yes
    Removing software on /opt/PrincetonInstruments/picam
    rm -rf /home
    rm -rf /opt/pleora
    

    Chyba je na následujících řádcích:

    START_DIR=`cd $START_DIR; pwd`
    PI_ROOT=`cd ..; pwd`
    

    Autor si neuvědomil, že spouští příkaz cd v subshellu, takže pracovní adresář v nadřízeném shellu zůstane stejný.

    Pokud by se skript alespoň před spuštěním rm -rf zeptal, zda-li má smazat adresář XY, byla by větší šance, že si toho uživatel všimne.

    V případě, že by se skript správně otestoval, tak by tato chyba neprobublala až k zákazníkovi.

    Takže ponaučení na závěr. Nevěřte nikomu. Není od věci mrknou co je obsahem skriptu uninstall.sh, obzvláště pokud není příliš dlouhý. A do třetice. Zálohovat, zálohovat, zálohovat.

    UPDATE: David ještě správně poukázal na řádek:

    START_DIR=`dirname $0`
    

    Skript by v případě zavolání, pomocí symbolického linku z jiného adresáře, také selhal.

    Šlo by to vylepšit voláním:

    START_DIR=$(readlink -f ${BASH_SOURCE[0]})
    
           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    gtz avatar 22.11.2013 20:27 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    měl jste to autorovi reportovat ... ale jinak máte pravdu zálohovat, zálohovat.
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    Fuky avatar 22.11.2013 21:23 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Samozřejmě jsem to tvůrcům reportoval, ovšem nedělám si iluze o rychlé nápravě, jejich reakční doba je několik měsíců, Linuxová verze pro ně evidentně není prioritou a malý zákazník pro ně nic neznamená. Je to velká škoda, protože by stačilo velice málo, aby jejich zákazníci byli nadmíru spokojeni.
    23.11.2013 17:54 trekker.dk | skóre: 71
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Ponaučení na závěr: skripty install.sh a uninstall.sh nikdy nespouštět a už vůbec ne pod rootem.
    Quando omni flunkus moritati
    23.11.2013 18:07 R
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Pripomina mi to uninstall nejakej hry pre Windows. Default cesta pri instalacii bola "C:\Program Files\Sierra\blabla". Zmenil som to na "C:\games\blabla". Ked som to potom chcel odinstalovat, trvalo to nejako podozrivo dlho. Tak som pozrel do C:\games, ze co to robi - a polovica hier uz bola v prdeli...
    23.11.2013 19:18 pavel
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Mohl by někdo napsat, jak se zjišťuje aktuální umístění souboru (absolutní cesta)? Co jsem se díval na internet, není to až tak triviální záležitost. Zajímalo by mě nejpoužívanější řešení v bashi - aby byla cesta správně v případě použití adresáře, symbolického odkazu, souboru a při použití .source ve skriptu.
    Jendа avatar 23.11.2013 19:57 Jendа | skóre: 74 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    readlink -f by mohl pomoct
    Why did the multithreaded chicken cross the road? to To other side. get the
    Fuky avatar 23.11.2013 20:01 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh

    Pokud jsem něco neopomněl, tak by to mělo jít např. takto:

    readlink -f ${BASH_SOURCE[0]}
    
    23.11.2013 22:55 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Mimo readlink by tě mohlo zajímat:
    includepath="$( cd -P "$( dirname "$0" )" && pwd )"
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    24.11.2013 13:52 z
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Autor si neuvědomil, že spouští příkaz cd v subshellu, takže pracovní adresář v nadřízeném shellu zůstane stejný.
    Tak v tom problém teda opravdu není.
    Fuky avatar 24.11.2013 14:09 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh

    Autorovi nikdo z nás do hlavy samozřejmě nevidí, ale nevidíme tam ani Tobě, takže klidně svou myšlenku rozveď.

    David Watzke avatar 25.11.2013 13:49 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Problém je očividně hned v
    START_DIR=`dirname $0`
    Tohle prostě v $0 dostane cestu toho, jak byl program zavolanej...
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    25.11.2013 14:46 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    To je pěkná ptákovina, co už jsem několikrát udělal taky :-(.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Fuky avatar 25.11.2013 16:58 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Nebezpečné uninstall.sh
    Jasně, určitě to není dobré takto řešit a je třeba na to upozorňovat, ostatní chyby mě tak naštvaly, že jsem si toho ani nevšiml, i když to řešíme v diskuzi. ;-) Každopádně pokud se špatně nastaví $START_DIR, tak to alespoň vypíše hlášku, kde uživatel zjistí, že se ho to ptá na smazání špatného adresáře, v případě, že se nezavolá skript přímo svým názvem, ale třeba pomocí linku, nebo se přesune na jiné místo.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.