Bylo vydáno OpenBSD 7.8. S předběžnou podporou Raspberry Pi 5. Opět bez písničky.
Valkey (Wikipedie) byl vydán v nové major verzi 9.0. Valkey je fork Redisu.
Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.
AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.
Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (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.
Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.
Na Humble Bundle běží akce Humble Tech Book Bundle: All Things Raspberry Pi by Raspberry Pi Press. Se slevou lze koupit elektronické knihy od nakladatelství Raspberry Pi Press a podpořit Raspberry Pi Press, Raspberry Pi Foundation North America nebo Humble.
Přidaný režim autonomního řízení vozidel Tesla Mad Max je dostupný pro vybrané zákazníky v programu EAP (Early Access Program). Nový režim je na silnici agresivnější, častěji mění pruhy a ne vždy dodržuje rychlostní limity. Agentura JPP spekuluje, že v Česku by se mohl nový režim namísto Mad Max jmenovat Mad Turek...
Byla vydána nová verze 9.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Nově také pro NanoPi R3S, R3S LTS, R76S a M5. Přehled novinek v poznámkách k vydání.
Možná už jste někdy dumali nad tím, jak si na serveru zprovoznit službu, která vytváří náhledy webových stránek. V poradně je několik dotazů na toto téma, ale žádná kloudná odpověď. S radostí vám tedy můžu oznámit, že jsem na to konečně přišel.
Problém je ten, že potřebujete nějakou paměť, do které se ta stránka bude vykreslovat. Tuto paměť obvykle zprostředkovává X server, ale provozovat na serveru třeba Xorg je trochu zbytečné. Naštěstí existuje X server Xvfb, který je velice jednoduchý a všechno si vykresluje pouze do paměti. Minimálně v distribucích založených na Debianu je jako balíček, takže instalace je v pohodě.
Jak pustit Xvfb
? Nejlépe pomocí startx
:
startx -- /usr/bin/Xvfb :10 -screen 0 1600x1200x24
Tato řádka pustí Xvfb
jako display 10 v rozlišení 1600x1200x24.
Hned si to vyzkoušíme a pustíme si v našem virtuálním framebufferu Firefox s ABCLinuxu.cz:
DISPLAY=:10 firefox www.abclinuxu.cz
Nikde nic bohužel nejde vidět, tak si budeme muset udělat screenshot:
DISPLAY=:10 import -window root obrazovka.png
A výsledný screenshot vypadá takto:
Jak vidíte Firefox se pustil do správné obrazovky, ale nebude asi vhodným prohlížečem pro dělání náhledů stránek, přinášelo by to jen samé problémy. Napíšeme si tedy prohlížeč vlastní! Bude jednoduchý a bude dělat přesně to co chceme. Použijeme jazyk Python a komponentu gtkmozembed
. Prohlížeč se také sám postará o vygenerování náhledu. Bude možné jich spustit více najednou a urychlit tak generování většího počtu náhledů. Tady je kód, jak vidíte, je to velmi jednoduché:
#!/usr/bin/env python
import sys
import gtk
import gobject
import gtkmozembed
if len(sys.argv) == 2:
print "Bad count of arguments."
if len(sys.argv) < 3:
print "Usage: webshot.py URL output_file.png"
sys.exit()
def on_net_stop(caller_widget):
gobject.timeout_add(10000, take_shot)
def take_shot():
(width, height) = window.get_size()
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, width - 16, height - 15)
pixbuf.get_from_drawable(browser.window, browser.get_colormap(), 0, 0, 0, 0, width - 16, height - 15)
pixbuf.save(sys.argv[2], "png")
gtk.main_quit()
return False;
gtkmozembed.set_profile_path("/tmp", "webshot")
browser = gtkmozembed.MozEmbed()
browser.connect("net_stop", on_net_stop)
browser.set_size_request(1024, 768)
browser.show()
browser.load_url(sys.argv[1])
window = gtk.Window()
window.add(browser)
window.show()
gtk.main()
Jak program funguje? Na vstupu má dva parametry - webovou adresu a jméno výstupního souboru náhledu. Prohlížeč je okno pouze s jedním widgetem zobrazujícím stránku. Po načtení stránky se chvilku počká a obraz widgetu uloží do souboru. Velikost okna a čas na vykreslení je v programu natvrdo, ale není problém je parametrizovat.
A to je vše! Není to jednoduché? Ještě malá ukázka použití:
DISPLAY=:10 ./webshot.py abclinuxu.cz abclinuxu.png
Výstup:
Tiskni
Sdílej:
firefox -screenshot http://abclinuxu.cz/ > obrazovka.png
root
em, tak má jen stejná práva, jako kterýkoli uživatel toho počítače. K čemu bude soubor /etc/passwd
někomu dobrý?
/etc/passwd
není žádná katastrofa – třeba na různých školních unixových nebo linuxových strojích mohou mít účet stovky nebo tisíce studentů, všichni vidí /etc/passwd
, a žádný problém v tom není. Samozřejmě pokud máte server, klientům tam povolíte přístup jenom přes scp
a předpokládáte tak, že nikdo kromě vás nemůže lokálně nic spustit, a pak necháte v systému takovouhle díru, je to problém – minimálně proto, že je to zjevně místo, které je zabezpečené viditelně míň, než zbytek systému, pravděpodobně tedy uniklo pozornosti správce a je vhodné pátrat tímto směrem po dalších slabinách.
všichni vidí /etc/passwd, a žádný problém v tom není.V tom máš pravdu, to bychom se museli pohybovat někde na poli špionáže, aby měla nějakou hodnotu informace, že uživatel xabcd123 má účet na daném stroji. Je to taky výhoda unixových systémů, účet může dostat širší okruh lidí, než třeba u Windows. (ale přesto, podle principu minimálních práv, není dobré vystavovat veřejně nějaká data, pokud to není potřeba)
if URL[:5] == "file:" :
print "Ani ..cu!"
return 1
if sys.argv[1][:5] ...
javascript:window.open("file://…")
?
http
z nějaké jiné domény, stejně to nepůjde číst.
Ale ono je problém i to obyčejné http. Když si tam někdo nechá zobrazit stránku s nějakým Flashem, přesměrováním sem tam nebo dlouhotrvajícím javascriptem, jenom to vytíží počítač a tu službu třeba nebude moci využít někdo jiný. Ale pokud máte nějaké limity na přenesená data a někdo si tam nechá stáhnout pár obrazů DVD, může s tím být už skutečný problém.
Ten výběr data JS je blokován ještě jinak – JS nesmí přistupovat k dokumentu, který je nahrán z jiné domény. Tj. i kdyby v tom framu byl jiná adresa s http
z nějaké jiné domény, stejně to nepůjde číst.
To jsem nevěděl. Dobrá informace.
Ale ono je problém i to obyčejné http. Když si tam někdo nechá zobrazit stránku s nějakým Flashem, přesměrováním sem tam nebo dlouhotrvajícím javascriptem, jenom to vytíží počítač a tu službu třeba nebude moci využít někdo jiný. Ale pokud máte nějaké limity na přenesená data a někdo si tam nechá stáhnout pár obrazů DVD, může s tím být už skutečný problém.Je to složitější než jsem si myslel. Pokud si člověk bude dělat obrázky jenom pro sebe, tak to není takový problém, ale jako veřejná služba je to hodně náročné na zabezpečení. Zajímalo by mě, jak jsou chráněny podobné existující služby, třeba český http://www.thumbnails.cz/.
URL[:5] != "http:"
když už teda takhle. Stejně bych ale přidal ještě tu virtualizaci, AppArmor a hodně přísně nastavený firewall (povolit jen 80 a zakázat připojení na všechny vnitrofiremní servery).
Ahoj, zajímavý článek..
Mam však problém, že mi první varianta s firefoxem funguje, ale pythoní skriptík už dělá problémy. Obrázek se udělá, ale ten je zdeformovaný. Pruh vpravu a dole je jakoby posunutý kus odněkud jinud.
Zkouším to v ubuntu s naběhnutým systémem.. ale to by snad vliv mít nemělo ne... ?
Nějaké nápady? změna velikosti nebo rozlišení nepomohla..
A teď mě tak napadlo, na serveru nemusí být grafická karta, že?
Bude to fungovat i bez ní ?