Naco Ti je palma miesto tvare? http://www.brainlesstales.com/images/2012/Jan/face-palm.jpg
V tomto konkrétním případě stačilo zadat set -u, ještě lépe pak set -eu.
Připomnělo mi to ale 8 let starou chybu v Audacity, kterou také bylo možné zneužít k mazání souborů.
Nejen Steam bych řekl. Mám na všechny relevantní appky v xubuntu extra usery: firefox, thunderbird, chrome, skype, youtube-dl; chystám se oddělit i pidgina... Pouštím přes sudo na hotkeys či shellové aliasy.
Profilové adresáře těch aplikací v hlavním uživateli stačí vypráznit a zrušit jim právo `w`, takže si ty aplikace omylem nespustím.
Stojí to nastavování navíc, ale cítím se líp.
Tak to prvni je jednodussi pres ty usery;) Vzdyt v jednoduchosti je krasa. Navic SELinux mas jenom v Linuxu. Ty usery mas na vice unixech takze je to multiplatformni reseni.
Navic si je muzu dynamicky generovat a dam to zpameti. SELinux fakt ne a clovek se musi hodne snazit. Nestaci totiz jen pustit si v permissive rezimu bliti hlasek o zamitnutem pristupu a podle toho generovat templatu.
U aplikaci se slozitou funkcionalitou muze dojit k tomu ze nepodchytis ze zacatku vsechny pripady kdy ti hrabe na prostredky. Ve vyjimecnych pripadech ti hrabne jinam a jses v haji.
I progros co si ke sve aplikaci udela sam selinuxova pravidla udela chybu. Co teprv kdyz to delas v cizi aplikaci nebo aplikaci ktera saha na spoustu zdroju.
Takze to co jsi napsal mi prijde typicky bezpecacko-extremisticko-programatorsky plkanec cislo 7.
Tohle sice funguje krásně, ale pokud taková proměnná neexistuje, shell interpretuje...
Zase na druhou stranu, že nějaká proměnná neexistuje, neznamená, že se budu tvářit, že je vše ok a vyložím si ji po svém, tedy jako prázdný řetězec (tak, jak to shell udělá), něco jako chyba scriptu, že proměnná není definovaná? A nadpis zprávičky je docela odfláknutý, protože co je na rm -rf špatného? Ten příkaz je absolutně v pořádku, jen jde o to, kde se spustí.
Proč by shell měl nějak reagovat? Neexistující = prázdná je archaické a dobře dokumentované pravidlo. Navíc je dáno technologií, shell býval jednoduché prostředí s jednoduchými konstrukcemi. Konstrukt "try catch finally" je nad rámec historických možností. A shell, který při jakékoliv chybě prostě spadne je k ničemu. Proto se místo cestou "vypiš chybu a skonči" (to by milovali autoři init scriptů) šlo cestou "chování je vždy definováno".
Ten, kdo si to měl ošetřit, je autor toho scriptu. Měl tam dát podmínku, zda je proměnná definována, a teprve pokud ano, tak ten příkaz provést. A ještě pro jistotu ověřit nějak její hodnotu na něco, co dává smysl.
Ne, tak to neni, nezalezi, kde se to pusti, dopadne to stejne. Zalezi pouze, jaky uzivatel to provede. Proste smazeme si uplne vsechno, co jako dany uzivatel muzeme. Jelikoz "/"* je vlasne /* a to se ve fazi globbing expanduje na /bin /boot ... a tak dal...
Takze nakonec se spousi rm -rf /bin /boot /dev /etc /home /mnt ....
Pokud tomu nerozumíš, chyba je pravděpodobně na Tvém přijímači. Nicméně, co se týká toho tvého WTF - učinil jsi kroky k tomu, aby i ne**amotní lidé jako Ty příště neměli problém s pochopením českého překladu (překladatelé rádi ocení pomoc)? Konec konců, kvůli komu myslíš, že tam to varování je?
"Oprava" zcela k ničemu. Jinak by mě zajímalo, jak opravili ten samý brainfart ve Windows. Viz...
Steam pro Windows nepoužívá environment variables ani shell skripty. To co je popsané v tom manuálu pro odinstalaci říká jedinou věc: cesta kam byl nainstalovaný Steam se kompletně odstraní, a pokud jste nainstaloval Steam například přímo do Program Files bez podadresáře, smázne vám veškerý obsah Program Files. To je sice potenciální problém (a asi nejen tohoto setup package), ale uživatelských dat by se to nemělo dotknout.
Ja sa na to dívam tak, že BFU nakliká "Next", "Next", "Finish" a hotovo. Aplikácia funguje a pri odinštalácii robí to, čo má. Akonáhle vyberám zložku to znamená, že už niesom BFU a tuším, čo robím, ak nie holt ešte som BFU.
Kedysi by sa tí, čo by prišli o data označili termínom "lama". A položte si otázku, čo všetko chcete za užívateľa riešiť a koľko slobody mu v tom prípade môžete dať.
Bože. Uložit si log nainstalovaných souborů a smazat po sobě jen to, co jsem vytvořil, uměl i ten nejtupější instalátor už v době W98. Pokud produkuju takové sračky, že nic takového neumím a místo toho rekurzivně mažu, co mi přijde pod ruku, tak prostě uživatele holt ten adresář nesmím nechat vybrat.
OK. Mne šlo skôr o to že, keď inštalátoru podsúvam nejaké informácie, tak viem čo robím. Hlavne, keď ide o takú serióznu činnosť ako hranie sa. Jadnoducho tí, ktorí v tomto prípade prišli o dáta sú v mojich očiach lamy.
Že vy by ste to vedeli vyriešiť lepšie o tom nepochybujem a ani to nespochybňujem.
To je teda pěkná blbost! To, že si uživatel vybere jiný adresář než výchozí z něj nečiní více než jen BFU. Nevím kde jste takovou ptákovinu sebral. Důvody pro změnu cesty můžou být různé - třeba hry chci mít na zvláštním místě nebo uživatel zazmatkuje apod. S chybou uživatelského vstupu by se v dnešní době mělo počítat zcela běžně. Dále která činnost na PC nepatří mezi seriózní aniž by ji nezvládl BFU? A prosím nepleťte si BFU = totální pitomec!
Předpokládám, že při své jasnozřivosti, která je bezpochyby součástí tvojí osobnosti, Lole, soudě podle způsobu, kterým tu s námi jednáš, sis všiml, že v poslední době spěje celý svět ke zjednodušování. Týká se úplně čehokoli.
Navrhovat promyšlené věci je drahé, neboť to umí stále menší kroužek expertů. A promyšlenost nemá zřejmě takový byznys efekt jako rychlost vývoje.
To, že se některé clever věci dělaly dřív, vůbec neznamená, že se u toho zůstane. Dnešní svět funguje na principu good enough, přičemž laťka enough je stále níž, jak si na to lidé zvykají.
My náročnější na to musíme nějak přistoupit, že majorita je optimalizovaná pro blby (a pro nepoctivé). Obranou proti tomu je například držet se v komunitě podobně smýšlejících. Slušné chování tomu pomůže.
majorita je optimalizovaná pro blby
Aha. Takže optimalizací pro blby se rozumí to, že jako kretén mažu všechno, co mi přijde pod ruce, přičemž upozornění blbům, že jim eventuálně zničím nemalou část jejich dat nebo systému realizuju tím, že debilní chování odinstalace "zdokumentuju". :-)
No, to je skvělé. Já s dovolením budu produkty těchto mamrdů ze Steamu i nadále ignorovat.
Dělej si co chceš, reaguj jak chceš. Mně rm -rf "$STEAMROOT/"* taky přijde jako špatně, i pokud STEAMROOT je definován. Aplikace nemá na typicky nechráněném FS co takhle úřadovat.
Nijak to nehájím, jen popisuju, že to je součástí dnešní reality. Takhle "se" to dneska dělá skoro všude. Nadávat je k ničemu, budeš za věčně navrčenýho debila. A budeš takhle muset "ignorovat" čím dál víc věcí.
Stát pro nerdy ještě nikdo nezaložil. Budem si muset najít způsob, jak s tím vyjít.
Problém je, ako už nižšie napísal Lael Ophir, že domovský adresár Steam klienta je root pre ďaľšie aplikácie. Neviem, či všetci autori to, tak používajú, ale majú tú možnosť. Ako som spomenul, vyšši akonáhle zmením cestu, tak som viac ako BFU. A to, že je to dokumentované beriem ako plus, aspoň, tí, čo precenili svoje sily môžu napraviť svoj omyl.
A okrem toho, takýchto bugov bolo viac aj na linuxe. Jeden za všetky:
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6f1dafc8beb84f2ac
Ako som spomenul, vyšši akonáhle zmením cestu, tak som viac ako BFU.
Ano. Např: "Pepo, přestaň mi zasírat disk tim svým bordelem a ty hry si instaluj na H:\" Ach jo. Končím diskusi, na debatu s obhájci podobných prasáren totálně neschopných programátorů fakt nemám náladu.
Cesta do které instalujete program by měla být plně pod jeho kontrolou. Zvlášť pokud jde o aplikaci typu Steam, která dotahuje další SW, o kterém toho moc neví. Takže samozřejmě neinstalujete do H:\, ale do "H:\Program Files\Steam", nebo v horším případě do H:\Steam.
Problém při odinstalaci SW nainstalovaného do špatně vybraného adresáře bych rozhodně nesrovnával se situací, kdy Steam smaže všechno co může ze všech namountovaných FS.
Problém je v tom, že Steam ve svém adresáři za běhu zakládá řadu dalších adresářů a souborů. Řadu jich také zakládají hry, a o tom co založily Steam nic neví. Když pak Steam odinstaluje jen to co bylo součástí instalace (i když přidá třeba vlastní cache), zbyde v adresáři pořád spousta věcí.
Ty nejtupější instalátory v dobách W9x ukládaly tuny logů. Jen s tou odinstalací a následným úklidem všeho nainstalovaného bordelu to poněkud haprovalo - nesmazané adresáře a soubory programu, už zbytečné .dll ponechané v systému a jako bonus i spousta zapomenutých klíčů v registru, které pak uměly vyrábět hezká překvapení při opakované instalaci téhož sw. A dodnes to odstraňování zbytků ve windows nefunguje na 100%.
To si musíte vybrat: buď má instalátor odstranit všechno co v adresáři najde, nebo jen to co nainstaloval. V prvním případě dojde na problém když SW nainstalujete přímo do adresáře C:\. V druhém případě odinstalace neodstraní soubory v cestě aplikace, které založila při svém běhu, protože nebyly součástí instalace.
BTW na Linuxu při odinstalaci balíčku také neodstraňujete závislosti které byly nutné jen pro něj. A po odinstalaci také zůstává nastavení v home adresářích uživatelů, v horším případě i soubory ve /etc.
Problém je to jen potenciální:
- Při instalaci je by default vybraný podadresář Program Files, něco typu "C:\Program Files\Steam".
- Pokud někdo instalační cestu mění, tak se problém projeví jen pokud nainstaloval aplikaci do adresáře, který má v podadresářích jiné aplikace (například přímo "C:\Program Files"). Takový výběr cesty je ale zjevně bad practice.