A pkexec PolicyKit szabályainak létrehozása az alkalmazások tekintetében

kimarite képe

A Linux Mint 19 Tara alapját képezi az Ubuntu 18.04 Bionic Beaver kiadása, amely a Debian Sid (Unstable) változatára építkezve készül. Fontos információ, hogy a Linux Mint 19 Tara kiadásban már nem használható, és nem is telepíthető a gksu csomag, amely a grafikus alkalmazások (a fájlkezelő, a szövegszerkesztő és azt ezt használó rendszer alkalmazások: pl. a Szoftverkezelő) admin joggal való indítására szolgált eddig. Ezt váltja ki a pkexec, amelyet pl. a Synaptic csomagkezelő eddig is használt. A pkexec a policykit felől közelíti meg az admin jogú, és biztonságos indíthatóságot a grafikus alkalmazások tekintetében. A Linux Mint 19 Tara kiadásnál korábbi Linux Mint kiadásoknál a gksu marad használatban. A sudo használata nem változik, azonban használata nem ajánlott a grafikus alkalmazásoknál: kizárhatod magad a rendszerből, amely nem végleges állapot, de kissé körülményes a javítás (a megoldás: Live rendszer és a chroot).

A pkexec szabályok itt találhatóak a fájlrendszerben:

/usr/share/polkit-1/actions/

Listázni így tudod a könyvtárat:

ls -l /usr/share/polkit-1/actions/

Ha netán egy alkalmazásnak nincs pkexec szabálya (pl. nincs szabálya egy szövegszerkesztőnek, fájlkezelőnek. Más mindennap használt alkalmazást indítani admin joggal nemigen van, azaz nincs értelme), akkor létrehozhatod a hiányzó PolicyKit szabályt.

Példámban a Geany szövegszerkesztő pkexec szabályát hozom létre. Megtörtént ez abban a korai állapotban, amikor még a Linux Mint 19 beta változata sem jött ki, azaz én egy egyedi -bár közismert- módszerrel hoztam létre „valami olyasmit”, mint ez a Linux Mint kiadás ..., így Geany alkalmazásra PolicyKit szabály még nem is létezhetett, és nem is létezett természetesen. Mert nem a hivatalos kiadást használtam.

-- a Geany policy fájl létrehozása és megnyitása szerkesztésre:

sudo nano /usr/share/polkit-1/actions/org.freedesktop.policykit.geany.policy

-- a beillesztendő szöveg tartalom (!Geany):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
    <action id="org.freedesktop.policykit.pkexec.geany">
    <description>Run geany program</description>
    <message>Authentication is required to run the geany</message>
    <icon_name>accessories-text-editor</icon_name>
    <defaults>
        <allow_any>auth_admin</allow_any>
        <allow_inactive>auth_admin</allow_inactive>
        <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/geany</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
    </action>
</policyconfig>

... az egyedi változtatásokat kiemeltem a szövegben.
Az angol szöveg megváltoztatásával (message, stb.) nem kell foglalkozni, olyan nyelven jelenik meg a jelszó bekérés, amilyen nyelven a rendszert használod.

Mentés és kilépés:
Ctrl +O és Enter
Ctrl + X

Működik.

Minták:

-----

Az alkalmazásindító elérési útjának keresése (és megtalálása) a which paranccsal (példa):

which geany
/usr/bin/geany

Enjoy :)

-----

A leírás forrása:
https://linuxmint.hu/comment/19108#comment-19108
(https://unix.stackexchange.com/a/203149)

polkit Reference Manual:
https://www.freedesktop.org/software/polkit/docs/0.105/pkexec.1.html

man pkexec | grep -i ^Example -A 60
EXAMPLE
To specify what kind of authorization is needed to execute the program /usr/bin/pk-example-frobnicate as
another user, simply write an action definition file like this

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

    <vendor>Examples for the PolicyKit Project</vendor>
    <vendor_url>http://hal.freedesktop.org/docs/PolicyKit/</vendor_url>

    <action id="org.freedesktop.policykit.example.pkexec.run-frobnicate">
        <description>Run the PolicyKit example program Frobnicate</description>
        <description xml:lang="da">Kør PolicyKit eksemplet Frobnicate</description>
        <message>Authentication is required to run the PolicyKit example program Frobnicate (user=$(user), program=$(program), command_line=$(command_line))</message>
        <message xml:lang="da">Autorisering er påkrævet for at afvikle PolicyKit eksemplet Frobnicate (user=$(user), program=$(program), command_line=$(command_line))</message>
        <icon_name>audio-x-generic</icon_name>
        <defaults>
            <allow_any>no</allow_any>
            <allow_inactive>no</allow_inactive>
            <allow_active>auth_self_keep</allow_active>
        </defaults>
        <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/pk-example-frobnicate</annotate>
    </action>

</policyconfig>

and drop it in the /usr/share/polkit-1/actions directory under a suitable name (e.g. matching the namespace of
the action). Note that in addition to specifying the program, the authentication message, description, icon
and defaults can be specified. Note that occurences of the strings $(user), $(program) and $(command_line) in
the message will be replaced with respectively the user (of the form "Real Name (username)" or just "username"
if there is no real name for the username), the binary to execute (a fully-qualified path, e.g.
"/usr/bin/pk-example-frobnicate") and the command-line, e.g. "pk-example-frobnicate foo bar". For example, for
the action defined above, the following authentication dialog will be shown:

[IMAGE][2]

+----------------------------------------------------------+
| Authenticate [X] |
+----------------------------------------------------------+
|                                                          |
| [Icon] Authentication is required to run the PolicyKit   |
| example program Frobnicate                               |
|                                                          |
| An application is attempting to perform an               |
| action that requires privileges. Authentication          |
| is required to perform this action.                      |
|                                                          |
| Password: [__________________________________]           |
|                                                          |
| [V] Details:                                             |
| Command: /usr/bin/pk-example-frobnicate                  |
| Run As: Super User (root)                                |
| Action: org.fd.pk.example.pkexec.run-frobnicate          |
| Vendor: Examples for the PolicyKit Project               |
|                                                          |
| [Cancel] [Authenticate]                                  |
+----------------------------------------------------------+

Hasonló tartalmak:
https://linuxmint.hu/search/node/pkexec

Blog (fórumtárstól):
https://linuxmint.hu/blog/2018/06/gksu-helyett-pkexec-helyett-gksu

Hozzászólások

kimarite képe

XED szövegszerkesztő Policy

Indító:

which xed
/usr/bin/xed

Szerkesztés:

sudo nano /usr/share/polkit-1/actions/org.freedesktop.policykit.xed.policy

Tartalom:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
    <action id="org.freedesktop.policykit.pkexec.xed">
    <description>Run xed program</description>
    <message>Authentication is required to run the xed</message>
    <icon_name>accessories-text-editor</icon_name>
    <defaults>
        <allow_any>auth_admin</allow_any>
        <allow_inactive>auth_admin</allow_inactive>
        <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/xed</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
    </action>
</policyconfig>

Indító parancs (admin joggal)

pkexec xed

Értékelés: 

0
Még nincs értékelve
kimarite képe

Gnome terminal Policy

Indító:

which gnome-terminal
/usr/bin/gnome-terminal

Szerkesztés:

sudo nano /usr/share/polkit-1/actions/org.freedesktop.policykit.gnome-terminal.policy

Tartalom:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
    <action id="org.freedesktop.policykit.pkexec.gnome-terminal">
    <description>Run gnome-terminal program</description>
    <message>Authentication is required to run the gnome-terminal</message>
    <icon_name>utilities-terminal</icon_name>
    <defaults>
        <allow_any>auth_admin</allow_any>
        <allow_inactive>auth_admin</allow_inactive>
        <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gnome-terminal</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
    </action>
</policyconfig>

Indító parancs (admin  joggal):

pkexec gnome-terminal

-----

Egy jó zene, amíg elkészíted:
https://www.youtube.com/watch?v=S5NPriAa8so

Értékelés: 

0
Még nincs értékelve