Podvodné reklamy na sociálních internetových platformách, jako je Facebook, Instagram nebo X, vytvořily loni v Česku jejich provozovatelům příjmy 139 milionů eur, tedy zhruba 3,4 miliardy korun. Proti roku 2022 je to nárůst o 51 procent. Vyplývá to z analýzy Juniper Research pro společnost Revolut. Podle výzkumu je v Česku zhruba jedna ze sedmi zobrazených reklam podvodná. Je to o 14,5 procenta více, než je evropský průměr, kde je podvodná každá desátá reklama.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.6 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.
Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.
… více »Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.
Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.
Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.
Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.
Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.
Zbývá vyřešit ještě poslední část celého systému Sieve. Uživatel si chce nastavovat pravidla z klienta. Aby tak mohl činit, musí na serveru běžet již zmíněná služba ManageSieve. Následující popis je určen pro řešení pomocí pysieved, nicméně úprava pro nativní Dovecot ManageSieve (samozřejmě po vlastní instalaci) není těžká a potřebné informace jsou k dispozici v dokumentaci programu Dovecot.
Zprovoznění opět začíná instalací, ať už z distribučního balíčku nebo od autora. Pak je potřeba pysieved nakonfigurovat. Ještě dříve je ovšem nutno si ujasnit, zda má běžet jako standardní démon (tedy naslouchat na portu a přímo obsluhovat připojené klienty), anebo zda se bude spouštět pomocí superserveru, typicky inetd nebo xinetd. Toto rozhodnutí bude vycházet z toho, jak často budou uživatelé měnit svá pravidla. Většinou bude k takovým změnám docházet zřídka, proto je obvykle lepší šetřit paměť a využít superserver.
Následující konfigurační soubor je určen pro xinetd a může být uložen například jako /etc/xinetd.d/sieve (za předpokladu, že se soubory jednotlivých služeb načítají z adresáře /etc/xinetd.d). Zde je pysieved nainstalován pod /opt, jde o balík získaný z webu autora.
service sieve
{
id = sieve
type = UNLISTED
port = 2000
flags = KEEPALIVE
socket_type = stream
wait = no
server = /usr/bin/python
server_args = /opt/pysieved/pysieved.py --inetd --config=/etc/pysieved.ini
user = root
}
Typ služby je UNLISTED (nejedná se o žádnou ze specifických služeb), služba ManageSieve běží na portu 2000. KEEPALIVE říká, že se mají periodicky posílat pakety pro udržování spojení (vhodné hlavně proto, aby nezůstávaly zbytečně viset spuštěné instance pro klienty, se kterými už nelze komunikovat). Komunikace je streamová (tj. TCP), wait = no zakáže čekání na ukončení spuštěného programu (takže lze obsluhovat další klienty). Jako „server“ je zde uveden interpret jazyka Python, argumenty udávají cestu k implementaci démona a ke konfiguračnímu souboru; nezbytný je také parametr zapínající spolupráci se superserverem. Uživatel bude root, protože konkrétního uživatele pro práci si nastaví až pysieved.
Pro starší superserver inetd bude konfigurace vypadat podobně, jen bude mít jiný formát. Do konfiguračního souboru inetd (typicky /etc/inetd.conf) se přidá takovýto řádek:
sieve stream tcp nowait root /usr/bin/python python /opt/pysieved/pysieved.py --inetd --config=/etc/pysieved.ini
Nyní to tedy bude fungovat tak, že pokud se klient připojí na port 2000, superserver spustí instanci pysieved a předá jí komunikační kanál s klientem. Tím se to dostává do podobné situace, jako kdyby se klient připojil k trvale běžícímu démonu pysieved. Dále tedy už záleží na jeho konfiguraci. Ve výše uvedené konfiguraci xinetd je definováno, že se konfigurace pysieved bude načítat ze souboru /etc/pysieved.ini – ten může vypadat například takto:
[main] auth = Dovecot userdb = Dovecot storage = Dovecot pidfile = /var/run/pysieved.pid [Dovecot] mux = /var/spool/postfix/private/auth master = /var/run/dovecot/auth-master sievec = /usr/libexec/dovecot/sievec scripts = .pysieved active = script.sieve uid = 100 gid = 100
Konfigurační soubor má různé sekce. Zde jsou použity dvě – hlavní sekce main a sekce Dovecot pro konfiguraci programu Dovecot, jakožto služby využívané pro zajišťování různých činností. pysieved podporuje celou řadu jiných služeb (backendů), např. dokáže přímo pracovat s PAM nebo s databází MySQL, není závislý na jediném programu.
V tomto případě se pro autentizaci (auth, databázi uživatelů (userdb) a úložiště (storage) využívá Dovecot, proto je u všech služeb uveden. pidfile je obvyklý soubor s PID sloužící ke zjištění, zda je již program spuštěn a jaký má identifikátor.
Sekce Dovecot obsahuje cesty ke speciálním souborům pro autentizaci (mux) a přístup k databázi uživatelů (master). Nastaví se samozřejmě podle toho, jak je to nastaveno v konfiguračním souboru /etc/dovecot.conf. Parametr sievec je cesta ke kompilátoru pravidel Sieve – pravidla se totiž nepoužívají v původní textové podobě, nýbrž se kompilují do mezijazyka (bytecode). Plugin Sieve do Dovecot LDA si kompilaci po změně zdrojového souboru zavolá sám, nicméně využití kompilátoru v ManageSieve je výhodné pro dálkové ověření, zda jsou pravidla syntakticky správná (viz dále).
Další parametr je scripts. To je adresář (v rámci domovského adresáře uživatele pošty), do kterého se ukládají jednotlivé soubory s pravidly. Aktivní je však vždy nejvýše jeden soubor – na něj se v domovském adresáři vytvoří symbolický odkaz s názvem podle parametru active (je to přesně ta cesta, která vzniká zpracováním šablony uvedené v parametru sieve sekce plugin v konfiguračním souboru dovecot.conf). Parametry uid a gid jsou identifikátor uživatele, resp. skupiny, pro běh démona (bude stejný jako uživatel pro úložiště pošty).
Takto nakonfigurovaný pysieved bude dělat přesně to, co se od něj čeká. Podle požadavků připojeného klienta bude spravovat soubory s pravidly a aktivovat/deaktivovat je. Klient se samozřejmě musí autentizovat, a to úplně stejně jako pro práci s poštou. Jak bylo řečeno výše, o toto se postará Dovecot.
K využití správy pravidel Sieve je potřeba mít klienta, který podporuje protokol ManageSieve. Takovými klienty jsou například Mulberry, Mozilla Thunderbird (s doplňkem Sieve) nebo webmail RoundCube. Mulberry nabízí relativně jednoduchou správu (bohužel však jeho vývoj skomírá), Thunderbird má podporu pouze pro přímou editaci kódu pravidel (ovšem s možností okamžité kontroly pomocí již zmíněného kompilátoru sievec a se zabudovanou referenční příručkou), RoundCube obsahuje snadno ovladatelnou „klikací“ správu pravidel (která však využívá jen malou část možností Sieve). Lze očekávat, že se v blízké budoucnosti dočkáme většího počtu klientských implementací (ovšem již dnes jich není zase až tak málo).
Kdo využije Thunderbird s doplňkem Sieve, bude normálně psát pravidla v té podobě, jak se objevila v příkladech v tomto článku. Která všechna rozšíření Sieve jsou k dispozici, lze najít například v tabulce na webu programu Dovecot.
Zmínku si zaslouží také globální soubor s pravidly. Ten je typicky normální soubor, který upravuje správce serveru. Nic však nebrání tomu, aby si správce vytvořil speciální poštovní účet, v uživatelsky přívětivém klientském programu si běžným způsobem připravoval pravidla pro globální použití a pak příslušný soubor použil jako globální (buď nastavením přímé cesty nebo přes symbolický odkaz, což je asi vhodnější).
Příští díl seriálu se bude zabývat dalším zajímavým zásuvným modulem do Dovecot LDA. Bude to modul implementující přístupové seznamy. K čemu je to dobré? Uživatelé mohou různě sdílet některé své složky a nastavovat k nim přístupová práva jiným uživatelům. Zejména ve firmách je to možnost, jak si při týmové práci udržet pořádek v poště a jak zajistit, aby měli všichni k dispozici ty funkce, které potřebují.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
sieve_before a sieve_after, které umožňují definovat další Sieve skripty (nebo celé adresáře se skripty). Pravidla v sieve_before se zpracují před uživatelskými pravidly, sieve_after po nich (ale jen v případě, že zpráva zůstává ve zpracování). Takže pokud už se má nějaké zpracování vynucovat všem uživatelům (i když to obecně nevidím jako přínosné), lze to využít. Všechny tyto skripty (stejně jako skript s globálními pravidly) se musí předem kompilovat pomocí sievec.
Vy sieve_before a sieve_after pouzivate uspesne?Nepoužívám vůbec. Zatím jsem neměl takovou potřebu a obecně mě nenapadá příliš případů, kdy to má smysl (proto jsem to ani neuvedl v článku). Nicméně to mohu příležitostně vyzkoušet.
sieve_before a funguje bez problémů.
Shodou okolností jsem asi před měsícem instaloval další mailserver a tam jsem ho už nahodil, funguje dobře, akorát jsem musel kompilovat balíček, protože v distribuci se s ním zatím nepočítá
...
xfilter "/usr/sbin/spamc"
...
if (/^X-Spam-Status: *Yes/)
{
exception {
to ...
}
}
...
require ["fileinfo", "copy"];
if header :contains "X-Spam-Status" "Yes"
{
setflag "$Junk";
fileinto ".Spam";
stop;
}
else
{
"fileinto" :copy folder: "/home/backup/%d/%n";
Nicmene mi to nefunguje. Domnival jsem se, ze misto %d se doplni domena.tld a misto %n username. Existuje nejaky elegantni a funkcni zpusob, jak dostat z hlavicky uzivatele a domenu (treba i nejak parsovat To:)...?
if, to else už je zbytečné. Mimochodem zbytečný je i příkaz stop, protože akce fileinto ruší implicitní keep (viz RFC 5228, bod 2.10.2) a žádný jiný důvod k uvedení zde není.
Není to myšleno jako zálohování (když tam vidím to backup)? Pokud ano, tak mi to nepřijde jako příliš smysluplné řešení, spíš jako takové "velkobratrské" (ukládá se všechno, nezálohuje se stav ke konkrétnímu okamžiku).
editheader podle RFC 5293, bylo by to velmi jednoduché - stačilo by podle obálkového příjemce vytvořit novou hlavičku (např. X-Original-Recipient), pak to přeposlat na speciálního uživatele (třeba velkybratr@moje.domena), u něj pak tuto hlavičku rozežírat a zprávy správně třídit. Jenže protože zatím toto rozšíření podporováno není, nelze takové řešení použít.
Možná by se ale dala rozežírat hlavička Delivered-To, protože je možné (ale to právě nevím), že se přidává do zprávy až na konci zpracování LDA. Chtělo by to prověřit, zda tam po přeposlání kopie nejsou ty hlavičky dvě. Pokud je tam opravdu jen ta první, je vyhráno - stačí hlavičku pomocí :domain a :localpart rozežrat do proměnných a podle nich pak uložit zprávu do správné složky.
require ["fileinfo", "copy", "envelope"];
if header :contains "X-Spam-Status" "Yes"
{
setflag "$Junk";
fileinto ".Spam";
stop;
}
else
{
"fileinto" :copy folder: "/home/backup/:domain/:localpart";
}
require ["fileinto", "copy", "envelope", "variables"];
...
if allof(envelope :domain :matches "to" "*", envelope :localpart :matches "to" "*") {
fileinto :copy "/home/backup/${1}/${2}";
}
Je to jen hrubý nástřel. Dělá to to, že se vyhodnocují obě části adresy obálkového příjemce, dají se do proměnných a tyto proměnné se pak použijí. Jenže zásadní problém bude v tom, že asi nebude možné použít absolutní cestu k poštovní složce (nezkoušel jsem, v dokumentaci o tom nic není, nicméně velmi pochybuji).
To:, která nemusí odpovídat skutečnosti. Hlavičku Delivered-To: jsem teď zkusil, ale tu použít nelze, protože se tam vloží ve druhém exempláři při doručování po přeposlání.
To ale stale neresi situaci, kdy potrebuji mit kopie ne v Maildiru urciteho uzivatele, ale v uplne jine cesteTo je velmi snadno řešitelné tím, že se ten Maildir umístí na tu správnou cestu.
Jeste mne teda napada vlozit pred frontu (v master.cf) skript, ktery by udelal kopii, respektive nakopiroval email do zaloh a zpravu poslal zpet do fronty postfixu kde ji prevezme deliver. Tohle asi neni uplne nejsistci reseni.Pak existují ještě jiná řešení. Tak například využít incron, pokud by už uměl rekurzivně sledovat celé podstromy filesystému (ššššššššš - to se snáší popel na moji hlavu
). Nebo použít jiné programy, které už to umějí, např. inotify-tools. Pak stačí jen chytat událost IN_MOVED_TO, testovat, zda šlo o přesun z adresáře tmp do new v rámci inboxu (protože to je operace, kterou je završeno doručení zprávy) a pak už jen kopírovat příslušné zprávy.
zda šlo o přesun z adresáře tmp do new v rámci inboxuResp. spíš nejen v rámci inboxu, ale ve všech poštovních složkách kromě spamové.