Dlouholetý balíčkář KDE Jonathan Riddell končí. Jeho práci na KDE neon financovala firma Blue Systems, která ale končí (Clemens Tönnies, Jr., dědic jatek Tönnies Holding, ji už nebude sponzorovat), někteří vývojáři KDE se přesunuli k nově založené firmě Techpaladin. Pro Riddella se již nenašlo místo. Následovala debata o organizaci těchto firem, které zahraniční vývojáře nezaměstnávají, nýbrž najímají jako kontraktory (s příslušnými důsledky z pohledu pracovního práva).
V Amsterdamu probíhá Blender Conference 2025. Videozáznamy přednášek lze zhlédnout na YouTube. V úvodní keynote Ton Roosendaal oznámil, že k 1. lednu 2026 skončí jako chairman a CEO Blender Foundation. Tyto role převezme současný COO Blender Foundation Francesco Siddi.
The Document Foundation, organizace zastřešující projekt LibreOffice a další aktivity, zveřejnila výroční zprávu za rok 2024.
Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Zdravim
Je mozne, aby spustitelny BASH skript byl spustitelny pod obycejnym uzivatelem, ale aby tento skript mohl pouzivat rootovske prikazy (nastaveni firewallu) bez pouziti sudo nebo root-hesla?
Diky.Samozřejmě vám nikdo nezabrání udělat si Céčkový wrapper, který ten suid bit nastaven mít bude a uvnitř spustí ten váš skript – a nejspíš už něco takového dávno existuje.Ano, sudo. Původnímu tazateli doporučuju se chvíli věnovat nastavení sudo a pak ho ve skriptu použít. Všechny ostatní metody pravděpodobně skončí hůř.
sudo
nebo suid bit ale umožní ty příkazy s právy roota spouštět komukoli (suid) nebo uživatelům povoleným pro sudo
. Pokud to chce tazatel povolit, pak to není problém – ale pokud chtěl povolit jen omezenou množinu příkazů, pak tohle použít nemůže – např. pokud tazatel chtěl skriptem povolit upravovat jeden řetězec v iptabels
, když nastaví suid bit nebo povolí sudo
na iptables, umožní dotyčnému třeba kompletně smazat všechna pravidla firewallu.
iptables
(bez celé cesty), tak si uživatel může změnit cestu tak, aby na začátku měl nějaký vlastní program jménem iptables
– a ten se spustí s právy roota. Shell není dělaný na to, aby se spouštěl s právy roota a pomocí skriptu se omezilo, co přesně může uživatel dělat. Naopak shelly mají normálně spoustu možností,jak spouštět další programy atd. Možná někdo, kdo zná třeba Bash opravdu dobře, by dokázal napsat skript a říci, že je bezpečné spouštět jej pod jiným uživatelem s právy roota. Já akorát vím, že Bash neznám tak dobře, abych to o jakémkoli skriptu dokázal říci.
Já akorát vím, že Bash neznám tak dobře, abych to o jakémkoli skriptu dokázal říci.
Tak to zní trochu depresivně pro člověka, který si je vědom toho, že zná bash ještě podstatně míň než vy. Ale jak jsem tak letmo nakouknul do man sudoers
, tak problémy, které naznačujete, zřejmě budou řešitelné. Ale neodvažuju se o tom kohokoli jakkoli poučovat.
Proto taky doporučuji použít sudo a nebastlit si vlastní "suid wrapper" - tvůrci suda už si tím vším prošli.Jak složitou gramatiku pro popis přípustných kombinací parametrů umí nadefinovat sudo? Účelem toho mnou zmíněného wrapperu by byla právě kontrola parametrů. Třeba jestli IP adresa zadaná jako parametr je uvedená v databázi u příslušného uživatele – to mi asi
sudo
nezkontroluje.
Odstraněním proměnných prostředí se odfiltruje jediný možný vektor útoku z předchozího shellu.To těžko. Když budete mít ve skriptu
TEST=`$1`
, pořád může uživatel snadno spustit cokoli s právy roota.
Účelem toho mnou zmíněného wrapperu by byla právě kontrola parametrů. Třeba jestli IP adresa zadaná jako parametr je uvedená v databázi u příslušného uživatele – to mi asi sudo nezkontroluje.Asi by to chtělo konkrétní příklad, co a jak chcete kontrolovat? Obvykle se složitější kontroly provedou ještě před sudo, aby kód pod rootem byl co nejmenší. Pokud to je nezbytně nutné, můžete kontrolovat po sudo, ale zbytečně zesložiťujete privilegovaný kód. Nicméně psát z gruntu vlastní wrapper Vám dá to horší z obou: kontroly poběží pod rootem a navíc můžete udělat nějakou jinou chybku, kterou už sudo řeší samo o sobě.
To těžko. Když budete mít ve skriptu TEST=`$1`, pořád může uživatel snadno spustit cokoli s právy roota.To je věc kontroly vstupu Vašeho skriptu. Zrovna tak, pokud skript explicitně používá nějakou proměnnou, soubor, bere vstup z stdin, a kdoví co. Já jsem mluvil o ovlivnění funkce Vašeho interpretu, tj. shellu. Ta se dá ovlivnit jen proměnnou prostředí, protože jiný vstup nebere.
Asi by to chtělo konkrétní příklad, co a jak chcete kontrolovat?To, že uživatel má právo provést danou akci. Třeba přidělím uživatelům rozsahy portů s tím, že každý si na svém rozsahu může dělat DNAT, jaký chce. S pevnými rozsahy portů by to do
sudoers
ještě šlo nacpat, ale pokud budu chtít rozsahy mít třeba v databázi, sudoers
už mi nepomůže a musím to kontrolovat programově.
Obvykle se složitější kontroly provedou ještě před sudoJenže to pak nikomu nezabrání spustit tu aplikaci (třeba
iptables
) přes sudo
bez složitějších kontrol.
To je věc kontroly vstupu Vašeho skriptu. Zrovna tak, pokud skript explicitně používá nějakou proměnnou, soubor, bere vstup z stdin, a kdoví co.Jenže udělat tyhle kontroly v shellu není nic jednoduchého, protože shell je určen k tomu, aby neustále něco interpretoval – a vy najednou chcete docílit toho, aby neinterpretoval skoro nic.
Třeba přidělím uživatelům rozsahy portů s tím, že každý si na svém rozsahu může dělat DNAT, jaký chce.Tohle by asi šlo řešit dost jednoduše tak, že každej dostane svůj chain, kde si může dělat třeba suchý z vrby a do toho chainu se pošlou pakety z toho rozsahu. S trochou práce by to asi šlo naroubovat i na tu databázi. Sudo pak nastavíte tak, že povoluje něco jako "iptables -[AIDF] mujchain *".
Jenže to pak nikomu nezabrání spustit tu aplikaci (třeba iptables) přes sudo bez složitějších kontrol.Sudo nastavíte samozřejmě tak, že se smí daná operace volat pouze z toho skriptu. Pokud někdo nabourá ten skript tak získá možnost si nastavit firewall (resp. DNAT) jak chce, ale už nezíská o moc víc (cf. kdyby celý skript běžel pod rootem).
Jenže udělat tyhle kontroly v shellu není nic jednoduchého, protože shell je určen k tomu, aby neustále něco interpretoval – a vy najednou chcete docílit toho, aby neinterpretoval skoro nic.Tak to zase pr. Shell je pouze interpretovaný jazyk a většina normálních interpretovaných jazyků má prostředky k tomu aby nějaký řetězec interpretovala, nebo taky ne, podle toho, jak chce programátor. V bashi jsou na to uvozovky. Perl má navíc taint operátor, který kontrolu toho co kam strkáte dělá za Vás.
Tohle by asi šlo řešit dost jednoduše tak…Tohle konkrétně ano, protože můžete použít jinou funkcionalitu
iptables
. Ale mohou existovat programy, které takové možnosti nemají.
Sudo nastavíte samozřejmě tak, že se smí daná operace volat pouze z toho skriptu.To se nastaví jak?
Tohle konkrétně ano, protože můžete použít jinou funkcionalitu iptables. Ale mohou existovat programy, které takové možnosti nemají.Pointa je, že stojíte vždy před konkrétním problémem a obvykle si vyberete to "lehčí" řešení.
Nejjednodušší je pro skript rezervovat uid, uživatelům povolit sudo na skript pod tím uid, a teprve tomu uid povolit sudo iptables pod rootem.Sudo nastavíte samozřejmě tak, že se smí daná operace volat pouze z toho skriptu.To se nastaví jak?
Tiskni
Sdílej: