GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nakonfigurovat Pkexec, aby nepožadoval heslo?

Mám aplikaci GUI, která potřebuje volat démona (napsaného v Pythonu) s oprávněními superuživatele. Chtěl bych to udělat bez výzvy k zadání hesla uživatele.

Vzhledem k tomu, že démon je skript, nemohu přímo nastavit bit SUID. Mohl bych pro to napsat C wrapper, ale raději bych nevynalézal kolo znovu, zvláště když chyba na mé straně by mohla vést k vážnému ohrožení zabezpečení systému.

Co bych normálně v této situaci udělal, je přidat řádek do /etc/sudoers což umožňuje uživatelům spustit démona jako root bez hesla pomocí direktivy NOPASSWD. Z příkazového řádku to funguje dobře. Nicméně, když to udělám z GUI, pkexec zobrazí se dialogové okno s výzvou k zadání hesla uživatele. Zdá se, že na Ubuntu volá sudo z GUI jsou nějak zachyceny pkexec .

Existuje čistý způsob, jak to obejít? Opravdu raději nebudu muset řešit potíže se skriptem setuid.

Nejlepší odpověď

Není správné říkat, že:„Zdá se, že na Ubuntu volá sudo z GUI jsou nějak zachyceny pkexec . pkexec nemá mnoho společného s sudo . Na rozdíl od sudo , pkexec neuděluje oprávnění root celému procesu, ale spíše umožňuje jemnější úroveň kontroly centralizované systémové politiky.

Nyní, pokud chcete spustit aplikaci s grafickým uživatelským rozhraním, aniž by vás pkexec požádal o heslo , to není těžké udělat. Vezměme si například GParted . Když jej otevřete, uvidíte následující dialogové okno s dotazem na heslo:

Klikněte na Podrobnosti a dialogové okno bude nyní vypadat takto:

Odtud vše, co musíte udělat, je otevřít /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy soubor pomocí například následujícího příkazu:

gksu gedit /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy

a změňte následující řádky:

      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>

s následujícím:

      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>

Uložte soubor a zavřete jej. Dále, když otevřete GParted již nebudete vyzváni k zadání hesla.

Související:Je možné pomocí Gedit nebo příkazového řádku upravit každý čtvrtý řádek textového souboru?
Ubuntu
  1. Jak mám nakonfigurovat podporu oříznutí pro logické svazky Lvm?

  2. Jak zajistit, aby Apache 2 přestal žádat heslo pro certifikát Ssl?

  3. Jak se vyhnout žádosti o heslo pro sudo pro skripty Crontab?

  1. Jak nakonfigurovat více prostředí pro nasazení pro Juju?

  2. Jak přimět git, aby při vytažení nepožadoval heslo?

  3. Jak přinutím sudo, aby požádal o heslo uživatele root?

  1. Jak nakonfigurovat soukromí adresáře v cPanel

  2. Jak zadat heslo pro více Windows?

  3. Ubuntu – Jak nakonfigurovat externí IP adresy pro hosty Lxc?