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

Értékelés: 

0
Még nincs értékelve

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
kimarite képe

Gnome terminal Policy

Értékelés: 

0
Még nincs értékelve

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

kimarite képe

GParted 1.0.0

Értékelés: 

5
Átlag: 5 (1 szavazat)

A jelenlegi legújabb GPartedről itt volt szó:
https://linuxmint.hu/comment/29468#comment-29468

Policykit szabály

Létrehozás

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

... nem létezik ilyen szabály.

Megjegyzés

Ez a létező, a telepített Gparted 0.25 alkalmazás PolicyKit szabálya:

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

... vissza a szerkesztéshez

Az org.freedesktop.policykit.pkexec.gparted.policy fájl tartalma:

<?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.gparted">
    <description>Run gparted program</description>
    <message>Authentication is required to run the GParted Partition Editor</message>
    <icon_name>gparted</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/local/bin/gparted</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
    </action>
</policyconfig>

Mentés, és kilépés a nano szövegszerkesztőből:

Ctrl + O, és Enter, majd
Ctrl + X

Megjegyzés

PolicyKit szabály nélkül a terminálban ugyan indítható a GParted 1.0.0 a

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/local/bin/gparted

parancssorral, de a desktop fájl ezt nem eszi meg.

GParted 1.0.0 desktop fájl

A PolicyKit szabály desktop fájl nélkül mit sem ér ...

Létrehozás

nano gparted_1.0.0.desktop

A gparted_1.0.0.desktop fájl tartalma:

[Desktop Entry]
Version=1.0
Type=Application
Name=GParted 1.0.0
GenericName=Partíciószerkesztő
Comment=Partíciók létrehozása, újraszervezése és törlése
Icon=gparted
Exec=pkexec /usr/local/bin/gparted
NoDisplay=false
Categories=GNOME;System;Filesystem;Settings
Keywords=Partíció;
StartupNotify=true
Terminal=false

... látható, a környezeti változó (environment variables) alkalmazása nem szükséges.

Mentés, és kilépés a nano szövegszerkesztőből:

Ctrl + O, és Enter, majd
Ctrl + X

Végül bemásolod a desktop fájlt a végleges helyére:

sudo cp gparted_1.0.0.desktop /usr/share/applications/

... így megjelenik a menüben, a telepített, tükrökről származó GParted mellett.

Megjegyzés

A PolicyKit szabály létrehozása után a

pkexec /usr/local/bin/gparted

parancssorral indítható a terminálban a GParted 1.0.0. Ha éppen ezt szeretnéd.

Csak kérdezem

Értékelés: 

0
Még nincs értékelve

Nálam Ubuntu alapú rendszereknél bevált, hogy a .bash_aliases fájlba be lett szerkesztve az alábbi sor

pkexec="pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY"

ennek örömére nem kell a különböző programok részére külön külön policy szabályt és inditót létrehozni, elég az inditó.

kimarite képe

Csak kérdezem Csak kérdezem | MATE

Értékelés: 

0
Még nincs értékelve

#4

#4 Hát nem tudom, mert a „pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /elérési/út/gparted” terminálban működött, indítóban nem. Akkor az aliasos módszer miért működne?  Az „alias” jó, nem tagadom ..., de az általam javasolt módszer 100 százalékosan működik, hivatalos.

Egyébként mindezt a MATE asztali környezet alatt próbáltam. Mit mondjak rá (általában)? Az új menü elemek elkészítése kicsit fura (grafikusan), de lehet, szokni kell. Más dolgok egészen jók. Az új DConf szerkesztő menüje elég ..., hm. Egy hete töröltem néhány sémát (panel: dátum és „környéke), úgyhogy vigyázni kell a kezelésével. De mindez a rendszerre nincs hatással :-). Gnome alkalmazás. Elkelne azért egy MATE Conf Editor. Ami már nincs.
Szóval a pkexec itt így működik, de mindenhol működni fog a freedesktop miatt. Aliasozni amúgy nem szeretek, de lehet kipróbálom majd.
Mint említettem már korábban, az admin jogra igen kevés alkalmazás használatakor van szükség, ami kell, az benne van az asztali környezetekben. Néha felmerül egyéni igény is. Ritka. Legutóbb,a kerneles témánál a Rendszerfigyelőnél kellett volna érzésem szerint. Kilőni a dpgk-s folyamatot.

Csak kérdezem Csak kérdezem | MATE

Értékelés: 

0
Még nincs értékelve

#4.1 Hát Mate az nincs, (per pill. hely sincs) ki tudom próbálni XFCE (19.04) alatt, majd megírom, de ma főzős, mosós, takarítós nap van.

kimarite képe

alias

Értékelés: 

0
Még nincs értékelve

#4 Kipróbáltam (MATE)

Kikapcsolom a PolicyKit szabályt (egyszerű fájl átnevezéssel):

sudo mv /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.gparted.policy /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.gparted.policy.ORIG

.. sikerült. A megoldás működik.

Megnyitottam a .bashrc fájlt (Geany szövegszerkesztő).
Elmentettem más néven, azaz .bash_aliases néven.

A szöveges tartalmak terén a következőket próbáltam ki:

# PKexec
pkexec="pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY"
# PKexec
alias pkexec="pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY"
# PKexec
alias pkexec='pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY'

A beállítás frissítését minden esetben így végeztem el:

source .bash_aliases

Most még újraindítom a rendszert az utolsó beállítással, aminek jónak kell lennie,
https://ubuntuforums.org/showthread.php?t=1374947
... de még ránézek a .bashrc-s megoldásra is,
https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-a...
Ránéztem, nem működik.
Látom, benne a megfelelő beállítás. Íme:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

.. úgyhogy marad a -bash_aliases fájlban a pkexec alias és rendszer újraindítás jön.

A jelenség, hogy elindul a GParted, a Panelen látom kicsiben, aztán bezáródik.

alias

Értékelés: 

0
Még nincs értékelve

#4.2 Szerintem a .bashrc-be másolva  vagy az  a .bash_aliases fájlba az az egy szükséges sor másolása elég. Próba majd este. Érdekes, 18.04-ben nem elég. A régebbi gparted jó, a új nem. Okoz meglepetéseket a dingókutya és hermelin...Thyeby írta, hogy Arcolinux-ban egy katt és utána müködik.

kimarite képe

alias

Értékelés: 

0
Még nincs értékelve

#4.2 Az újraindíás után sem működik. A source parancs mindig frissít amúgy.

A MATE PolicyKit szabályok vannak hatással a rendszerre, és egyén megoldás helyett az egyéni PolicyKit szabály létrehozása a legegyszerűbb megoldás.
Különben a menüben „megint elmászott” a GParted. :-)
Az eredeti. Pontosabban, az eredeti indító az új GPartedet indította. És a Rendszer / Adminisztráció menüből átkerült a Rendszereszközök menübe. Tudom, amúgy, hogy mit csinálok, a két indítónak egészen más a neve (a menüben). A megoldás az lett, hogy szerkesztettem a Menü szerkesztővel az eredeti indítót, az a saját könyvtáram alatt hozott létre egy indítót (így csinálja a MATE szerkesztője). Ott átírtam (Geany) az indító parancsot erre:

gparted-pkexec

Így visszakerült a Rendszer / Adminisztráció menü alá a régi GParted is. Kiemeltem az elhelyezéshez fontos beállítást (ez egy elég „érdekes” megoldás, variál „összevissza” a menüszerkesztő, nem azt csinálja, amit szeretnék):

[Desktop Entry]
Version=1.0
Type=Application
Name=GParted partíciószerkesztő
GenericName=Partíciószerkesztő
Comment=Partíciók létrehozása, újraszervezése és törlése
Icon=gparted
Exec=gparted-pkexec
NoDisplay=false
Categories=GNOME;System;Filesystem;Settings
Keywords=Partíció;
StartupNotify=true
Terminal=false

:-)

alias

Értékelés: 

0
Még nincs értékelve

#4.2.2 Mondjuk, ahányszor használom a Gparted-et, (mondjuk 3 évente) azt be tudom pötyögni a terminálba.... (remélem, nem felejtem el a nevét, bár nem valószínű). Hogy a fenébe mászik el a menüböl?

kimarite képe

#alias | MenuLibre | MATE

Értékelés: 

0
Még nincs értékelve

#4.2.2.1 Hogy a fenébe mászik el a menüböl?

Az van, hogy (MATE) éppen most változtattam a menüben megjelenő néven.

Látható, hogy a GParted 1.0.0 Categories mit tartalmaz:

Azonban (rövidítettem a GParted 0.25 nevét, hogy felülre kerüljön...) megjelenik egy új, ötödik beállítás a Categoriesnél:

Settings-System / Settings-System ... nem nyúltam oda. Majd később tesztelek a rendszer újraindítással. Szóval, ha bármit változtatok, akkor más is megváltozik (csak annál az elemnél, alkalmazásnál), a Categories. Ez felel az alkalmazások elhelyezkedéséről a menüben. Freedesktop előírás.

Ez már többször előfordult a MenuLibre alkalmazásnál. De csak a MATE asztali környezet alatt.
Ezért jobb a Freedesktop szabályait követni :-). Igazából megoldható a dolog.

#alias | MenuLibre | MATE

Értékelés: 

0
Még nincs értékelve

#4.2.2.1.1 Értem (azt hiszem) Mate sajátosság. Nem bug, feature...   : -)) A Menulibre-vel nekem is volt gondom. A Whiskermenu pedig nem pont úgy néz ki. ahogy Menulibre mutatja, pedig hát a sajátnak mondott szerkesztője, áááá...

kimarite képe

#alias | MenuLibre | MATE (off: a jó és a rossz)

Értékelés: 

0
Még nincs értékelve

#4.2.2.1.1.1 Ez olyan, mint az életben a jó és a rossz. Ahogy Lázár Kati mondja (56:38 | oda kell tekerni). :-D

kimarite képe

#alias | MenuLibre | MATE

Értékelés: 

0
Még nincs értékelve

#4.2.2.1.1.1 Persze, Ubuntu 19.04, Xfce alatt azért ránézhetnél. Köszi

Gparted

Értékelés: 

0
Még nincs értékelve

Kipróbáltam. A lépesek a következők voltak. Visszaállitási pnt készítése Systemback-kal Xubuntu 19.04--en. Gparted 0.32 kipróbálás menüből:fut, terminálból:fut. Gparted 1.0 letöltés, kicsomagolás, konfigurálás, csomagkészítés, telepítés. Próba terminálból fut. Próba menüből:nem fut. Menü szerkesztve:nem fut. Policy szabály másolás, kijelentkezés. Menü szekesztés. Inditás menüből:fut. Tehát szükséges a policy, ha valaki menüből akarja inditani. Na erre mondom hogy az Ubuntu a ráérő emberek rendszere. Ez csupán csak félóra volt a forditással szerkesztgetéssel. Következik a rendszervisszaállitás. (2perc) Lásd:

https://linuxmint.hu/comment/29558#comment-29558

Kösz Kimarite a fáradozást, hiszen én csak követtem a leírást, majd felkerül, ha benn lesz a tárolóban

kimarite képe

Gparted

Értékelés: 

0
Még nincs értékelve

#5 Akkor amott sem megy, az Xfce alatt. Köszi!

kimarite képe

Gparted 1.0.0 | pkexec, PolicyKit

Értékelés: 

0
Még nincs értékelve

#5.1 Amott fél óra, itt 2-3 perc. Mert leírtam.
Nincs nagy igény a grafikus PolicyKit szerkesztőre, mert igen kevesen telepítenek ilyen módszerrel. Aki mégis, az rászán még „ennyit”.

kimarite képe

#alias | MenuLibre | MATE

Értékelés: 

0
Még nincs értékelve

#4.2.2.1.1 Arról van szó, hogy sem a Settings, sem a System nem látható ezeken a helyeken

Categories

    Category Name
    Description

azaz nincs a válaszható lehetőségek között.

De a Settings-System sincs ott. Ez választható.

Arra gondolok, hogy amikor a MenuLibre ezekkel a kifejezésekkel találkozik, megpróbál hasonlót létrehozni.

De az is nagyon érdekes, hogy a MenuLibre-ben a bal oldalon látható System Settings menü létezik, de abban nem szerepelnek alkalmazások.

Settings -System meg nem is létezik ...

A létezők:

Main Categories

By including one of the Main Categories in an application's desktop entry file, the application will be ensured that it will show up in a section of the application menu dedicated to this category. If multiple Main Categories are included in a single desktop entry file, the entry may appear more than once in the menu.

Category-based menus based on the Main Categories listed in this specification do not provide a complete ontology for all available applications. Category-based menu implementations SHOULD therefore provide a "catch-all" submenu for applications that cannot be appropriately placed elsewhere.

The table below lists all Main Categories.

Main Category Description Notes
AudioVideo Application for presenting, creating, or processing multimedia (audio/video)  
Audio An audio application Desktop entry must include AudioVideo as well
Video A video application Desktop entry must include AudioVideo as well
Development An application for development  
Education Educational software  
Game A game  
Graphics Application for viewing, creating, or processing graphics  
Network Network application such as a web browser  
Office An office type application  
Science Scientific software  
Settings Settings applications Entries may appear in a separate menu or as part of a "Control Center"
System System application, "System Tools" such as say a log viewer or network monitor  
Utility Small utility application, "Accessories"  

Additional Categories

The Related Categories column lists one or more categories that are suggested to be used in conjunction with the Additional Category. If the Related Categories column is blank, the Additional Category can be used with any Main Category.

The table below describes Additional Categories.

Additional Category Description Related Categories
Building A tool to build applications Development
Debugger A tool to debug applications Development
IDE IDE application Development
GUIDesigner A GUI designer application Development
Profiling A profiling tool Development
RevisionControl Applications like cvs or subversion Development
Translation A translation tool Development
Calendar Calendar application Office
ContactManagement E.g. an address book Office
Database Application to manage a database Office or Development or AudioVideo
Dictionary A dictionary Office or TextTools
Chart Chart application Office
Email Email application Office or Network
Finance Application to manage your finance Office
FlowChart A flowchart application Office
PDA Tool to manage your PDA Office
ProjectManagement Project management application Office or Development
Presentation Presentation software Office
Spreadsheet A spreadsheet Office
WordProcessor A word processor Office
2DGraphics 2D based graphical application Graphics
VectorGraphics Application for viewing, creating, or processing vector graphics Graphics;2DGraphics
RasterGraphics Application for viewing, creating, or processing raster (bitmap) graphics Graphics;2DGraphics
3DGraphics Application for viewing, creating, or processing 3-D graphics Graphics
Scanning Tool to scan a file/text Graphics
OCR Optical character recognition application Graphics;Scanning
Photography Camera tools, etc. Graphics or Office
Publishing Desktop Publishing applications and Color Management tools Graphics or Office
Viewer Tool to view e.g. a graphic or pdf file Graphics or Office
TextTools A text tool utility Utility
DesktopSettings Configuration tool for the GUI Settings
HardwareSettings A tool to manage hardware components, like sound cards, video cards or printers Settings
Printing A tool to manage printers HardwareSettings;Settings
PackageManager A package manager application Settings
Dialup A dial-up program Network
InstantMessaging An instant messaging client Network
Chat A chat client Network
IRCClient An IRC client Network
Feed RSS, podcast and other subscription based contents Network
FileTransfer Tools like FTP or P2P programs Network
HamRadio HAM radio software Network or Audio
News A news reader or a news ticker Network
P2P A P2P program Network
RemoteAccess A tool to remotely manage your PC Network
Telephony Telephony via PC Network
TelephonyTools Telephony tools, to dial a number, manage PBX, ... Utility
VideoConference Video Conference software Network
WebBrowser A web browser Network
WebDevelopment A tool for web developers Network or Development
Midi An app related to MIDI AudioVideo;Audio
Mixer Just a mixer AudioVideo;Audio
Sequencer A sequencer AudioVideo;Audio
Tuner A tuner AudioVideo;Audio
TV A TV application AudioVideo;Video
AudioVideoEditing Application to edit audio/video files Audio or Video or AudioVideo
Player Application to play audio/video files Audio or Video or AudioVideo
Recorder Application to record audio/video files Audio or Video or AudioVideo
DiscBurning Application to burn a disc AudioVideo
ActionGame An action game Game
AdventureGame Adventure style game Game
ArcadeGame Arcade style game Game
BoardGame A board game Game
BlocksGame Falling blocks game Game
CardGame A card game Game
KidsGame A game for kids Game
LogicGame Logic games like puzzles, etc Game
RolePlaying A role playing game Game
Shooter A shooter game Game
Simulation A simulation game Game
SportsGame A sports game Game
StrategyGame A strategy game Game
Art Software to teach arts Education or Science
Construction   Education or Science
Music Musical software AudioVideo or Education
Languages Software to learn foreign languages Education or Science
ArtificialIntelligence Artificial Intelligence software Education or Science
Astronomy Astronomy software Education or Science
Biology Biology software Education or Science
Chemistry Chemistry software Education or Science
ComputerScience ComputerSience software Education or Science
DataVisualization Data visualization software Education or Science
Economy Economy software Education or Science
Electricity Electricity software Education or Science
Geography Geography software Education or Science
Geology Geology software Education or Science
Geoscience Geoscience software, GIS Education or Science
History History software Education or Science
Humanities Software for philosophy, psychology and other humanities Education or Science
ImageProcessing Image Processing software Education or Science
Literature Literature software Education or Science
Maps Sofware for viewing maps, navigation, mapping, GPS Education or Science or Utility
Math Math software Education or Science
NumericalAnalysis Numerical analysis software Education;Math or Science;Math
MedicalSoftware Medical software Education or Science
Physics Physics software Education or Science
Robotics Robotics software Education or Science
Spirituality Religious and spiritual software, theology Education or Science or Utility
Sports Sports software Education or Science
ParallelComputing Parallel computing software Education;ComputerScience or Science;ComputerScience
Amusement A simple amusement  
Archiving A tool to archive/backup data Utility
Compression A tool to manage compressed data/archives Utility;Archiving
Electronics Electronics software, e.g. a circuit designer  
Emulator Emulator of another platform, such as a DOS emulator System or Game
Engineering Engineering software, e.g. CAD programs  
FileTools A file tool utility Utility or System
FileManager A file manager System;FileTools
TerminalEmulator A terminal emulator application System
Filesystem A file system tool System
Monitor Monitor application/applet that monitors some resource or activity System or Network
Security A security tool Settings or System
Accessibility Accessibility Settings or Utility
Calculator A calculator Utility
Clock A clock application/applet Utility
TextEditor A text editor Utility
Documentation Help or documentation  
Adult Application handles adult or explicit material  
Core Important application, core to the desktop such as a file manager or a help browser  
KDE Application based on KDE libraries QT
GNOME Application based on GNOME libraries GTK
XFCE Application based on XFCE libraries GTK
GTK Application based on GTK+ libraries  
Qt Application based on Qt libraries  
Motif Application based on Motif libraries  
Java Application based on Java GUI libraries, such as AWT or Swing  
ConsoleOnly Application that only works inside a terminal (text-based or command line application)  

Reserved Categories

Reserved Categories have a desktop-specific meaning that has not been standardized (yet). Desktop entry files that use a reserved category MUST also include an appropriate OnlyShowIn= entry to restrict themselves to those environments that properly support the reserved category as used.

The table below describes Reserved Categories.

Reserved Category Description
Screensaver A screen saver (launching this desktop entry should activate the screen saver)
TrayIcon An application that is primarily an icon for the "system tray" or "notification area" (apps that open a normal window and just happen to have a tray icon as well should not list this category)
Applet An applet that will run inside a panel or another such application, likely desktop specific
Shell A shell (an actual specific shell such as bash or tcsh, not a TerminalEmulator)

Forrás: https://specifications.freedesktop.org/menu-spec/latest/index.html