Z novinek představených na Google I/O 2025: Přehledy od AI (AI Overviews) se rozšiřují do dalších zemí. Užitečné, syntetizované přehledy od generativní AI jsou nově k dispozici i českým uživatelům Vyhledávače.
Šestice firem označovaných jako „MAMAAN“ – tedy Meta (Facebook, Instagram), Alphabet (Google), Microsoft, Apple, Amazon a Netflix – je zodpovědná za více než padesát procent světového internetového provozu. Dalšími velkými hráči jsou TikTok a Disney+. Společně tak zásadně určují podobu digitálního prostředí, spotřebitelského chování i budoucích trendů v oblasti technologií. I přesto, že se podíl těchto gigantů od roku 2023 o něco snížil, jejich dominantní postavení zvyšuje volání po regulaci.
Evropská komise (EK) navrhuje zavést plošný poplatek ve výši dvou eur (zhruba 50 Kč) za každý malý balík vstupující do Evropské unie. Poplatek se má týkat balíků v hodnotě do 150 eur (zhruba 3700 Kč), které v EU nepodléhají clu. V loňském roce bylo do EU doručeno kolem 4,6 miliardy takovýchto balíků. Poplatek má krýt náklady na kontroly rostoucího počtu zásilek levného zboží, které pochází především z Číny.
Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevily v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Protokol X11 je navržen tak, aby ho bylo možné používat nejen
tehdy, když X server a klientská aplikace běží na témže počítači,
ale i v případě, že běží na různých počítačích, které jsou
propojeny sítí. V takovém případě je ke komunikaci využíváno
TCP spojení. Aby mohla aplikace komunikovat s X serverem,
je třeba jí sdělit, na který X server (a případně na kterou
obrazovku) má zobrazovat. Tato informace je obvykle předávána
prostřednictvím proměnné prostředí DISPLAY
, klasické
grafické programy podporují i parametr příkazové řádky
-display
(nebo zkráceně -disp
).
Hodnota proměnné (resp. argument) má obecně tvar
'host:
display.
screen'.
Nepovinný parametr host definuje počítač, kde se X server
nachází. Většinou obsahuje jméno počítače nebo IP (IPv4 nebo IPv6)
adresu. Není-li uveden, kontaktuje se X server na stejném počítači,
většinou ale ne pomocí TCP spojení přes lokální smyčku, ale přes
lokální (unix domain) socket.
Parametr display určuje číslo konkrétního X serveru
na zvoleném počítači. Na jednom počítači může totiž X serverů běžet
více, například je-li současně otevřeno více grafických konzolí. Jiným
příkladem je spuštění programu Xnest
, který implementuje
X server používající jako virtuální obrazovku okno zobrazované na
jiném X serveru. Obvyklé číslování X serverů je od nuly,
nejčastěji se zde proto setkáme s hodnotou 0
.
Tento parametr je také (včetně dvojtečky) jediný povinný, minimální
(a také nejčastější) specifikace obrazovky je tedy ':0
'.
Z praktického hlediska parametr display při TCP komunikaci
určuje port, na nějž je navazováno spojení; jedná se o port
6000+display.
Poslední (opět nepovinný) parametr screen určuje obrazovku, na kterou má aplikace zobrazovat. Obrazovky (má-li jich X server více) se číslují opět od nuly (nula je i defaultní hodnotou). Číslo obrazovky na rozdíl od předchozích parametrů neovlivňuje navázané spojení, informace je používána interně v rámci komunikace protokolem X11. Obrazovky v tomto smyslu nemají nic společného s virtuálními pracovními plochami, které nabízí většina window managerů. Nejčastěji se s více obrazovkami setkáváme u počítačů s více monitory, kde číslo obrazovky určuje (fyzický) monitor, na který bude aplikace zobrazovat.
Praktická použitelnost aplikace běžící na vzdáleném počítači a zobrazující na lokální X server je ovlivněna parametry síťového spojení. Je-li spojení realizováno lokální sítí, nebývá to problém; u 100 Mb/s ethernetu na chování většiny aplikací není vzdálená komunikace příliš znát. U pomalejších spojení (kromě přenosové rychlosti zde hraje roli i zpoždění paketů) jsou pochopitelně odezvy delší. Hodně zde záleží i na tom, co aplikace zobrazuje. Vykreslování jednoduchých objektů nebo vypisování textů není příliš náročné, ale např. při prohlížení fotografií je třeba přenášet celé bitmapy, což může být poměrně náročné. Nezanedbatelnou výhodou je i skutečnost, že tímto způsobem můžeme používat grafické aplikace i na počítači, kde není vůbec nainstalován X server, např. na výkonném aplikačním serveru, ke kterému přistupují uživatelé ze svých pracovních stanic. Nelze zapomínat ani na to, že protokol je univerzální: není tedy omezen na prostředí Linuxu, ale lze jej používat i mezi různými platformami.
Možnost zobrazování na X prostřednictvím TCP/IP sítí (a tedy
i Internetu) je velmi užitečným nástrojem, jedná se ale
o dvousečnou zbraň. Pokud bychom neaplikovali mechanismus, který
by omezil potenciální klienty, mohl by kdokoli používat náš X server,
a to nejen k zobrazování, ale i k získávání událostí od
vstupních zařízení; mohl by tedy mimo jiné např. sledovat, co píšeme na
klávesnici. Nepotřebujeme-li vůbec přistupovat na X server vzdáleně,
může být vhodnější použít při jeho spouštění parametr
'-nolisten tcp
', který způsobí, že X server nebude
vůbec poslouchat na TCP portu 6000+display a umožní pouze
komunikaci lokálních klientů přes lokální socket. Některé novější
distribuce naopak spouštějí X server s tímto parametrem
defaultně, takže naopak chceme-li komunikovat vzdáleně, je potřeba to
explicitně povolit. V dalších částech se ale zaměříme na situaci,
kdy vzdáleně komunikovat chceme, ale potřebujeme klienty autorizovat.
Nejjednodušší formou autorizace je rozlišení klientů podle IP adresy.
Display manager udržuje seznam adres (standardně prázdný), z nichž
je povolen přístup všem klientům bez dalších omezení. K manipulaci
s tímto seznamem lze použít příkaz xhost
, bez parametrů
vypíše seznam povolených adres (standardně přeložených na DNS jména).
Přidání položky do seznamu lze provést příkazem
'xhost +
host' (znak +
lze
vynechat), odebrání příkazem 'xhost -
host'.
Jak už to bývá, je tato varianta sice nejjednodušší, ale také nejméně vhodná. Jednak povolením adresy konkrétního počítače povolujeme přístup automaticky všem jeho uživatelům, jednak při podvržení IP adresy server nepozná, že se nejedná o oprávněného klienta. Pomineme-li tedy specifické případy typu lokální sítě o dvou počítačích a jednom uživateli. nelze tuto metodu v dnešní době pro praxi doporučit.
Při spuštění seance (session) display manager generuje náhodný klíč
(cookie), který je s touto seancí svázán. Klient, který se prokáže
znalostí této cookie, má povolen přístup k X serveru, aniž
by jeho IP adresa musela být v seznamu z předchozí sekce.
Cookie je spolu s informací o serveru (zapisuje se ve stejném
formátu jako hodnota proměnné DISPLAY
s vynecháním
čísla obrazovky) uložena do autentizační databáze, která je standardně
v souboru .Xauthority
v domácím adresáři
přihlášeného uživatele. Z tohoto souboru si pak cookies berou
jednotlivé grafické aplikace a používají je pro autentizaci vůči serveru.
S obsahem autentizační databáze lze pracovat příkazem
xauth
, a to buď interaktivně (spustíme-li ho bez
parametrů) nebo neinteraktivně (předáme-li mu příkaz přímo jako
argument). Základní příkazy jsou:
list
… zobrazení cookies z databázeextract file
server … zkopírování
cookie pro server server do souboru filemerge
file … přidání cookie ze souboru
do databáze
Jako jméno souboru lze uvést i znak '-
', cookie se pak
extrahuje na standardní výstup a načítá se ze standardního vstupu. Pokud
v takovém případě nepřesměrováváme výstup nebo nepoužijeme rouru,
je vhodnější použít příkazy nextract
a nmerge
,
používající formát složený pouze z číslic, který lze zobrazovat na
terminál a kopírovat pomocí selection nebo copy&paste.
Přihlásíme-li se tedy na vzdálený počítač např. pomocí SSH a chceme-li
na něm spouštět grafické aplikace tak, aby zobrazování probíhalo na náš
lokální X server, je třeba nastavit odpovídajícím způsobem proměnnou
DISPLAY
tamnímu shellu (nesmíme ale zapomínat, že shell
a posléze i grafická aplikace poběží na vzdáleném počítači, nelze
tedy psát localhost
nebo jméno počítače vynechat). Dále ale
také musíme zkopírovat autentizační cookie z lokální databáze do
vzdálené. To lze provést buď extrakcí do souboru, jeho překopírováním
a importem cookie do databáze, nebo extrakcí na terminál a překopírováním
do druhého okna, kde jsme přihlášeni na vzdáleném stroji a předem jsme
použili 'xauth nmerge -
'.
Zásadní nevýhodou předchozích postupů je skutečnost, že řeší pouze otázku autentizace a autorizace (a ani to ne zcela spolehlivě), ale žádným způsobem nechrání data, která si mezi sebou vyměňují X server a klientská aplikace, a to proti odposlechu ani proti podvržení. Pokud tedy komunikace mezi oběma počítači není zabezpečena např. pomocí IPsec, není takové řešení příliš vhodné, a to zejména, komunikují-li mezi sebou přes Internet. Protože X11 komunikace používá jedno TCP spojení, je ideálním kandidátem na zabezpečení pomocí SSL (např. programem stunnel). Protože se ale dnes na vzdálený počítač, kde aplikaci spouštíme, většinou připojujeme pomocí SSH, je jednodušší využít možnosti transparentního tunelování X11 přes jeho zabezpečený přenosový kanál.
K pochopení toho, jak funguje tunel, je třeba mít na paměti, že
X server je na straně, kde je SSH klient, a naopak. Tunelování
není třeba nijak složitě nastavovat, pouze je nutné, aby tato funkce
byla povolena v konfiguraci klienta (ssh
) i serveru
(sshd
) a aby byl klient spouštěn s parametrem
-X
a měl nastavenou proměnnou DISPLAY
na
lokální X server. Je-li tomu tak, SSH démon vytvoří virtuální
X server (standardně s číslem od 10 výše, aby nedocházelo
ke kolizi s případnými lokálními X servery na jeho straně.
Na tento X server (tj. typicky na hodnotu ':10
')
pak také nastaví shellu (nebo jinému spouštěnému programu) proměnnou
DISPLAY
.
Spuštěná grafická aplikace tedy veškeré požadavky posílá na virtuální X server, ten je ale pouze přeposílá (zabezpečeným spojením) SSH klientovi, který je dále předá lokálnímu X serveru na straně uživatele. Podobně, pouze v opačném směru, jsou posílány odpovědi X serveru aplikaci. Aplikace samozřejmě nemusí běžet na stejném počítači jako SSH démon, podobně SSH klient nemusí běžet na stejném počítači jako X server. Pak je ale zabezpečený jen úsek mezi SSH démonem a SSH klientem, to ale může být dostatečné, např. jsou-li koncové úseky realizovány relativně bezpečnou lokální sítí, zatímco tunelovaný úsek vede přes Internet.
Kromě obvyklých bezpečnostních opatření při používání SSH (zejména
kontrola pravosti veřejného klíče serveru při prvním přihlášení) nesmíme
zapomínat, že tunel chrání jen před útoky "po cestě".
Není tedy ochranou před lokálním útokem na koncových počítačích. Zejména
pokud bychom nemohli důvěřovat uživateli root
na vzdáleném
počítači, zpřístupňujeme mu otevřeným tunelem svůj lokální X server
(po dobu, kdy je tunel navázán). Nesmíme také zapomínat, že při větších
datových tocích šifrování a autentizace dat zatěžuje procesor obou stran.
Naopak, u pomalých spojení lze zapnutím komprese (přepínač
-C
) přenos urychlit snížením objemu přenášených dat.
Problematika lokální komunikace do této kapitoly zdánlivě nepatří, ale
vše, co bylo řečeno v předchozích sekcích, se vztahuje i na
aplikace běžící na témže počítači jako X server. Procesy uživatele,
který se přihlásil do grafického prostředí, mají samozřejmě přístup
k vygenerované cookie, takže jim je přístup umožněn. Pokud ale
použijeme příkaz su
, nebudou mít procesy spouštěné pod
cílovým uživatelem k X serveru povolen přístup.
Povolení přístupu pomocí 'xhost localhost
' není vhodným
řešením, protože tím bychom povolili přístup všem lokálním
uživatelům a procesům. Řešení pomocí SSH je zase zbytečně náročné,
protože šifrování a autentizace jsou při lokální komunikaci zcela
zbytečné a pouze by zatěžovaly procesor. Nejvhodnějším řešením je tedy
zkopírování autentizační cookie do databáze cílového uživatele. Lze
to provést stejným způsobem jako při vzdálené komunikaci, kopírování
je zde ale o něco jednodušší. Je-li cílovým uživatelem
root
, lze navíc využít toho, že má povoleno čtení jakéhokoli
souboru ve filesystému a nechat ho extrahovat cookie přímo
z databáze přihlášeného uživatele:
xauth -f ~user/.Xauthority extract - :0 | xauth merge -(
user
reprezentuje jméno přihlášeného uživatele).
Jednodušší alternativou je použití příkazu sux
, který
funguje podobně jako su
, ale navíc automaticky kopíruje
autentizační cookie od původního uživatele k novému. Také lze použít
autentizační modul pam_xauth
, který způsobí automatické
předání autentizační cookie při použití příkazu su
.
Stačí přidat do souboru /etc/pam.d/su
řádek
session optional pam_xauth.soPomocí konfiguračních souborů
~/.xauth/export
a ~/.xauth/import
lze pak definovat, kterým uživatelům
se mají autentizační cookies předávat (neexistuje-li soubor
export
, pak normální uživatel předává všem,
root
nikomu) resp. od koho se mají přijímat (neexistuje-li
soubor import
, přijímá se od všech).
Protože window manager je z pohledu X serveru klientská aplikace
jako každá jiná, může samozřejmě i on běžet na jiném počítači než
X server. Můžeme pochopitelně spouštět i window manager se
zobrazováním na jiný X server pomocí proměnné DISPLAY
nebo parametru -display
, např.:
Xnest -geometry 1024x768 :1 & fvwm -display :1 &V praxi je ale vhodnější ponechat proces přihlášení, otevření seance a případnou volbu window manageru (a další konfigurace) na display manageru (
xdm
, kdm
, gdm
, wdm
)
počítače, ke kterému se přihlašujeme. Počítač, u něhož uživatel sedí,
je pak vlastně degradován do role klasického X terminálu, na němž
se zobrazí přihlašovací obrazovka vzdáleného počítače. Komunikace mezi
X serverem a vzdáleným display managerem je realizována protokolem
XDMCP (X Display Manager Control Protocol), standardně je pro něj používán
UDP port 177.
Chceme-li se takto přihlásit ke vzdálenému počítači, je třeba při spouštění
X serveru tento počítač specifikovat parametrem -query
(argumentem je jméno nebo IP adresa):
X -query 192.168.2.65Místo lokálního přihlašovacího okna se objeví přihlašovací okno nebo obrazovka vzdáleného display manageru. Po přihlášení je spuštěn (na vzdáleném počítači) odpovídající window manager podle tamní konfigurace.
Chceme-li, aby náš počítač fungoval jako terminál pro více vzdálených stanic, můžeme spustit display manager (konkrétní nastavení závisí na volbě display manageru) v režimu, kdy je uživateli místo lokálního přihlašovacího dialogu nejprve zobrazen seznam počítačů, na které se může přihlásit, a teprve poté, co si ze seznamu vybere cílovou stanici, je zobrazen její přihlašovací dialog (obrazovka). Seznam může být buď definován staticky v konfiguraci lokálního display manageru nebo může být vytvářen dynamicky. Ve druhém případě display manager rozešle broadcast datagram s dotazem, kdo je ochoten povolit přihlášení, a zobrazí se seznam stanic, které odpověděly. Tento seznam se pak obvykle periodicky aktualizuje. Je možná i kombinace staticky konfigurovaného a dynamicky generovaného seznamu.
XDMCP protokol neobsahuje prakticky žádné bezpečnostní prvky a vzhledem k použití UDP není ani jeho dodatečné zabezpečení příliš snadné. Jeho použitelnost je proto omezena prakticky jen na důvěryhodné lokální sítě, kde se používá pro klasické X terminály a tenké klienty. Samozřejmě i použití XDMCP podléhá konfiguraci autorizačních pravidel, ale jejich výklad by byl nad rámec tohoto letmého seznámení. Bližší informace lze získat např. z těchto zdrojů:
Dokument vytvořil: vladka, 29.8.2005 12:09 | Poslední úprava: Nicky726, 11.3.2009 23:55 | Další přispěvatelé: Michal Kubeček, Milan Horák | Historie změn | Zobrazeno: 11576×
Tiskni
Sdílej: