7 málo používaných technik v Bashi

Docela zajímavý článek s tímto titulkem se nachází na Linuxárii. Další náměty na zefektivnění práce naleznete na CommandlineFu.

Abych jen neopisoval, tedy alespoň ne jen z jednoho zdroje, mám pro vás ještě jeden drobný tip, pokud někdy budete chtít dělat kontrolní součty adresářového stromu. Pak asi záhy zjistíte, že ani v jednadvacátém století nemají nástroje typu sha1sum přepínač -r pro rekurzivní prohledávání adresářového stromu. Musíte si tedy pomoci jinak, tedy třeba takto:

find /some/path -type f -print0 | xargs -0 sha1sum

Autorem tohoto CommandLineFu je James Nylen.

Prohlížení webu přes SSH SOCK5 proxy

OpenSSH toho umí poměrně hodně a není proto divu, že se o něm píší i celé knihy. Jednou jeho zajímavou vlastností je možnost vytvořit SOCKS5 proxy, která bude veškerou komunikaci směrovat přes SSH. Máte-li tedy SSH účet na nějakém serveru, kde to administrátor nezakázal, můžete surfovat „přes“ něj. Příkaz pro vytvoření SOCKS5 proxy vypadá takto:

ssh -D 8888 -Nf uzivatel@example.com

Parametr volby -D určuje místní port, kde bude sídlit SOCKS5 proxy. Tento port na localhostu je pak samozřejmě třeba nastavit v prohlížeči.

Vlastosti a výhody tohoto nástroje jsou:

  1. komunikace je šifrována mezi vámi a SSH serverem, váš ISP tedy nebude mít šanci sledovat obsah vaší komunikace
  2. SOCKS5 proxy umí tunelovat nejenom vlastní komunikaci, ale i DNS dotazy (doporučuji se ujistit Wiresharkem, ne všechen software to nutně umí), tudíž, pokud váš prohlížeč neprosakuje, váš ISP by neměl mít šanci zjistit s jakými weby komunikujete sledováním DNS provozu
  3. komunikace samozřejmě není šifrována mezi SSH serverem a cílovým serverem, tudíž správce tohoto serveru a/nebo váš „serverový“ ISP uvidí jak komunikaci, tak DNS dotazy

Mezi důvody, proč tento nástroj použít, může patřit:

  • jste někde připojeni přes nešifrovanou nebo neznámou WiFi
  • nedůvěřujete svému ISP
  • jste připojeni přes cenzurujícího ISP
  • chcete obejít omezení přístupu na nějaký web (některé weby jsou dostupné např. pouze z USA nebo jiné země)
  • chcete extra-bezpečně přistupovat k webu umístěném přímo na daném serveru s SSH
  • atd.

Přirozeně, tento nástroj je možné použít i s jiným softwarem než nutně s prohlížečem, stačí podpora SOCKS5.

Připojení virt-manageru z Arch Linuxu na RHEL 6.2

Tento blogpost je čistě technický a obsahuje řešení jednoho nepříjemného problému. O co jde? Mám stanici s RHEL 6.2 klonem (Scientific Linux), kde je rozběhnutá virtualizace (libvirtd). Na druhé stanici je Arch Linux, kde také běží libvirtd. Oba stroje jsou v lokální síti, tak proč nemít možnost přihlásit se z virt-manageru přes SSH z Arch Linuxu do Scientific Linuxu, a mít šanci ovládat virtualizaci „vzdáleně“? Problém je v tom, že to nejde. Proces dokonce ani neskončí chybou, virt-manager se jen nepřipojí. Google odhalí možný problém při absenci balíčku x11-ssh-askpass, který by měl být na klientovi (Arch Linux) nainstalován, Jenomže ani s ním to nefunguje.

Řešení je přesto velmi jednoduché, i když přijít na něj až tak triviální nebylo (musel jsem zkompilovat jinou verzi virt-manageru, která naštěstí chybu ohlásila a podle ní jsem si správně tipnul). Na stroji s RHEL 6.2 stačí vytvořit následující symbolický odkaz:

ln -s /usr/bin/nc /usr/bin/nc.openbsd

A to je celé.

Shell tip: OGG/Vorbis a Jamendo

Doufám, že Jamendo tu nemusím příliš představovat. Řádově desítky tisíc alb pod různými více či méně svobodnými licencemi, převážně Creative Commons, které je možné bezplatně stáhnout a také používat. Oficiálně je na výběr mezi přímým (HTTP) stažením MP3 a stažením torrentů s MP3 a OGG/Vorbis. Kvalita u Vorbisu je vyšší, přesto o něj není příliš velký zájem, což patrně vede k tomu, že OGG/Vorbis není nabízen ke stažení a torrenty s ním nikdo neseeduje.

Po dlouhém hledání jsem konečně objevil způsob, jak se k Vorbisu dostat, a sice přes URL, které může obsloužit wget v skriptu (jediným parametrem je číslo alba):

#! /bin/bash
wget -c http://www.jamendo.com/get/album/id/album/archiverestricted/redirect/$1/?are=ogg3

Shell tip: Co mi to zase blokuje zvukovku?

Jelikož mám tendenci svou workstejšnu nerebootovat a mít hromadu spuštěných aplikací, občas se stane, že si chci něco přehrát, ale nemůžu, protože mi něco zablokovalo zvukovku. Který proces je ovšem v takovém případě viníkem, resp. jak to zjistit? K tomu existují dva nástroje, lsof a fuser:

sudo lsof /dev/snd/*

sudo fuser /dev/snd/*

Více informací viz:

Upgrady aneb adrenalinový sport správců serverů

Myslíte, že správce serverů nemá šanci zažít ve své práci nějaké to napětí a adrenalin? Ale ano, stačí se pustit do upgradu serverů na novější verze distribucí, pokud možno za chodu. Tak jsem se rozhodl upgradovat server, na kterém běží mimo jiné i tento web. Upgradoval jsem Debian z verze 5.0 na verzi 6.0, jelikož včera vyšla (Debian Squeeze vyšel v únoru – omlouvám se za zpoždění publikace). Ano, správně, tohle by se dělat nemělo, mělo by se počkat, mělo by se to pěkně naplánovat, ještě lépe před upgradem otestovat na kopii serveru, ale rozhodl jsem se být odvážný. Ostatně, i když je to „produkční“ server, je to můj server, jehož nefunkčnost vadí pouze mně.

Celý příspěvek

IPv6 privacy extensions

Skutečnost, že IPv4 adresy akutně docházejí, ponechám stranou. Linux podporuje IPv6 již dlouho, a podporuje i jedno z jeho rozšíření, rozšíření soukromí (privacy extensions). Bohužel většina distribucí jej ve výchozím stavu nezapíná, což má jisté následky na vaše soukromí vůči všem serverům, se kterými váš linuxový systém komunikuje přes IPv6.

Je to dáno tím, že v rámci autokonfigurace IPv6 se k prefixu sítě přidává i MAC adresa vaší síťové karty, a ta se tak stává součástí IPv6 adresy, pod kterou vystupujete. Sledováním této části IPv6 adres může jakýkoliv server, se kterým pravidelně komunikujete, sledovat, odkud odevšad k němu přistupujete. Systémy Windows mají privacy extensions ve výchozím stavu zapnuté, u linuxových distribucí je tomu zatím převážně naopak.

Pro konkrétní síťové rozhraní je možné privacy extensions povolit buď dočasně nebo permanentně. Dočasně to lze provést následujícím příkazem:

sysctl -w net.ip6.conf.interface.use_tempaddr=2

Místo slova interface zapište rozhraní, u kterého chcete privacy extensions nastavit (např. eth0. Chcete-li toto nastavení uložit permanentně, tzn. aby přežilo restart, zapište výše zmíněnou řádku do /etc/sysctl.conf, samozřejmě bez úvodního sysctl -w.

Je samozřejmě možné toto nastavit globálně pro všechna rozhraní. V takovém případě se nejprve ujistěte, že načtete ipv6 modul ještě před tímto nastavením (většinou je třeba tento modul explicitně zařadit pro zavedení při startu, ještě před aplikací nastavení ze sysctl.conf). Poté zapište do /etc/sysctl.conf následující dvě řádky:

net.ipv6.conf.all.use_tempaddr=2
net.ipv6.conf.default.use_tempaddr=2

V mém případě toto nastavení bohužel nefungovalo, i když by mělo. Nezbylo mi tedy než do /etc/sysctl.conf přidat specifikaci pro všechna síťová rozhraní, takto:

net.ipv6.conf.eth0.use_tempaddr=2
net.ipv6.conf.wlan0.use_tempaddr=2

Přátelé Open Source

Dnes jsem uzřel zprávičku o IBM, kterak hrozí patentovým sporem firmě, která vyvíjí open source software. Součástí patentového sporu jsou i dva patenty, které IBM přislíbilo open source vývojářům. V souvislosti s tím mne napadlo následující:

Open source nemá přátele. Pouze své tvůrce, uživatele, zneuživatele a nepřátele.

Pravdou je, že open source má kromě tvůrců a uživatelů své nepřátele – obvykle konkurenty z prostředí proprietárního softwaru. Jako zneuživatele bych viděl někoho, kdo začne na nějakém open source projektu rýžovat, aniž by cokoliv vrátil zpět původním lidem, z jejichž práce těží. Ale to je sporné – pokud dotyční daný software vydali pod jistými licenčními podmínkami, pak mohli s podobným scénářem počítat (dovoluje-li to licence), a tudíž se nejedná o zneužití.

Kdo je ale přítelem open source? Nejsem si jistý, kdo by tak mohl být označen (uživatel je uživatel, vývojář je vývojář…). Vím ale to, že přítelem open source rozhodně není entita, jejímž primárním cílem je dosažení zisku (tedy jakákoliv komerční společnost). Ta totiž bude stát za Open Source jen tak dlouho, dokud se jí to vyplatí, a jakmile se situace změní, bez jakýchkoliv rozpaků vytáhne nůž a vrazí mu ho do zad. Firmy podle mého nejsou a nemohou být přáteli Open Source. Zejména pak Ubersoft.

Moje pracovní prostředí a oblíbený software

Už dlouho jsem nic nepublikoval, žádné rozumné téma mne momentálně nenapadá, a tak tedy zkusím alespoň popsat, ze kterých komponenet se skládá moje pracovní prostředí.

Jádrem většiny pracovních prostředí je grafické rozhraní. U mne tomu nebude jinak. Nepoužívám však molochy jako KDE či Gnome, dokonce ani odlehčené varianty jako Xfce či Fluxbox. Používám dlaždicového správce oken. Pěkný název, že? Ve své podstatě je to správce oken, který okna (klienty) neumisťuje libovolně, ale jako dlaždice – vedle sebe. Dlaždicoví správci oken jsou charakterističtí také tím, že většinu operací s okny i se správcem samotným umožňují provádět klávesnicí, bez potřeby používat hlodavce.

Dlaždicových správců oken je samozřejmě celá řada, já používám Awesome (desktop) a Wmii (laptop). V případě Awesome musím podpořit odkazem jeden báječný web plný mnoha zajímavých informací a také domov pěkně napsaných konfiguráků pro Awesome (ty se mimochodem píší v jazyce LUA). Oba dva tito správci mají výhodu v tom, že jsou schopni používat i plovoucí režim (umisťování oken „tradičním“ způsobem), což umožňuje používat některé špatně napsané, defektní aplikace, které si s dlaždicovým uspořádáním oken neumí poradit.

A proč že používám dlaždicového správce oken místo nějakého WIMP prostředí jako KDE nebo Gnome? Efektivita, rychlost, pohodlí, možnost zapomenout na myš a používat jen klávesnici.

Dobrá, to bychom měli grafické prostředí. Ale žádné grafické prostředí se neobjede bez aplikací. Pro linuxáře je obvykle primárním nástrojem příkazová řádka, a s tou související terminál. Já používám urxvt s velmi pěkným neproporcionálním fontem Terminus. Jako e-mailový klient používám Claws mail a Mutt spolu s Fetchmailem a msmtp. V obou klientech používám GnuPG k podepisování a příležitostnému šifrování e-mailů.

Prohlížeč. Webový prohlížeč. Na Lynx mi asi neskočíte, že?. Ano, používám ho, ale jen zřídka, obvykle na nějakém serveru, kam jsem zrovna přihlášen. Na desktopu a laptopu používám Firefox, ale ne jen tak ledajaký Firefox. Používám Vimperator, plugin, který umožňuje Firefox ovládat jako Vim, který je zvláštní shodou okolností také mým oblíbeným textovým editorem. Dodávám, že ve Vimu jsem napsal mj. svoji bakalářskou práci (tedy s pomocí LaTeXu).

Co se týče přehrávače hudby, používám moc a mpd. Pro přehrávání videa používám smplayer. Vektorovou grafiku vytvářím a edituji v Inkscapu, bitmapovou zpracovávám v GIMPu. Fotografie spravuji pomocí DigiKam a negativy „vyvolávám“ za pomoci Ufrawu nebo nyní čerstvě pod GNU/GPL vydaného Rawtherapee. HDR vytvářím pomocí Qtpfsgui (ano, vím, příšerný název, ale fajn aplikace), panoramata za pomocí Autopano-siftu přepsaného do jazyka C (nemám rád Mono), Huginu a Enblendu.

Jelikož pracuji jako linuxový správce, a také se snažím trošku vyvíjet webové aplikace (dobrá, přiznávám, zatím jsem ještě žádnou slušnou nenapsal, ale chystám se na to), potřebuji nějakou tu virtualizaci a virtuální linuxové servery, kde mi běží vhodně nakonfigurované služby. Jelikož používám 64-bitový systém (viz 8GB RAM), moc mi tu nechodí VirtualBox OSE (svobodná verze VirtualBoxu od nyní mrtvého Slunce, které pohltila Vědma), takže používám KVM a Qemu. Virtuální mašiny spravuji přes SSH, qemu konzoli a Vinagre.

A co že používám na serverech? Debian, Apache, MySQL, PostgreSQL a PHP. Doufám, že v tomto případě mi snad odpustíte absenci odkazů. Ke sdílení projektového svazku s webovými aplikacemi používám NFS, ke vzdálenému přístupu na servery v domácí síti OpenVPN a ke správě všeho možného a nemožného OpenSSH a GNU Screen.

Tím bych tento článek zakončil. Zbytek zajímavého softwaru, který používám, si nechám na příště, pokud se k tomuto tématu ještě někdy vrátím. A co vy, používáte nějaký zajímavý svobodný software?