Portál AbcLinuxu, 4. května 2025 07:28
Výchozí nastavení politiky pro PackageKit ve Fedoře 12 umožňovalo lokálně přihlášeným uživatelům instalovat balíky z repozitářů bez nutnosti zadávat heslo. To se mnoha lidem nelíbilo, takže toto výchozí nastavení bude brzy změněno aktualizací PackageKitu tak, aby operace nainstalování balíku vyžadovala heslo roota. Upravený PackageKit už je sestaven. Mně původní nastavení na domácích počítačích vyhovovalo. Nastavím si to tedy zpět.
PackageKit se před provedením požadované akce vždy zeptá PolicyKitu, zda je uživatel, který si akci žádá, k této akci oprávněn. K rozhodnutí ano/ne PolicyKit v současné implementaci používá místní autoritu (man pklocalauthority
), což prostě znamená, že vychází z nastavení v souborech /var/lib/polkit-1/localauthority/*/*.pkla
.
Formát *.pkla souborů je jednoduchý a v oné manuálové stránce je dobře popsán. Klíčem Identity
řekneme, koho k akci opravňujeme (může to být podle loginu nebo skupiny). Klíč Action
specifikuje konkrétní akci. Jejich seznam se stručným popisem dostaneme z pkaction --verbose
. Tři klíče Result...
udávají hodnotu oprávnění (yes
, no
, auth_self
(pro nutnost autentizace), auth_admin
(pro nutnost autentizace jako administrátor), ...). Jsou tři, protože můžeme udělit různá oprávnění podle toho, jestli je uživatel přihlášen v aktivní místní relaci, v neaktivní místní relaci, nebo je přihlášen jinak.
Pro pohodlné domácí použití PC jsem si vytvořil soubor /var/lib/polkit-1/localauthority/50-local.d/michichs-policy.pkla
, jehož obsah by už měl být celkem snadno pochopitelný:
[JáMůžuSpravovatBalíkyBezHesla] Identity=unix-user:michich Action=org.freedesktop.packagekit.* ResultAny=no ResultInactive=no ResultActive=yes [AleNedůvěryhodnéBalíkySiVždyPořádněRozmyslím] Identity=unix-user:michich Action=org.freedesktop.packagekit.package-install-untrusted;org.freedesktop.packagekit.system-trust-signing-key ResultAny=no ResultInactive=no ResultActive=auth_self # zeptá se mě na moje heslo, ne rootovo [JáMůžuSpravovatVirtuálníMašiny] Identity=unix-user:michich Action=org.libvirt.unix.* ResultAny=no ResultInactive=no ResultActive=yes [DomácíUživateléMůžouInstalovatFedoráckéBalíky] Identity=unix-user:* Action=org.freedesktop.packagekit.package-install ResultAny=no ResultInactive=no ResultActive=yes [DomácíUživateléMůžouAktualizovatBalíky] Identity=unix-user:* Action=org.freedesktop.packagekit.system-update;org.freedesktop.packagekit.system-sources-refresh ResultAny=no ResultInactive=no ResultActive=yes
Je vidět, že jsem s udělováním autorizací zašel ještě o kus dál, než bylo to původní nastavení Fedory 12. Kromě toho, že všem místně přihlášeným uživatelům umožňuju instalaci balíčků z repozitářů a aktualizaci balíčků, tak jsem udělil ještě několik dalších oprávnění svému vlastnímu loginu, abych mohl balíčky i odinstalovávat a také spouštět virtuální stroje ve virt-manager
bez otravného zadávání hesla.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.