@juwa2
Mám dva kódy:
code1: /usr/share/polkit-1/actions/com.ubuntu.gedit.policy
<?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.0/policyconfig.dtd">
<policyconfig>
<vendor>gedit</vendor>
<vendor_url>gedit</vendor_url>
<icon_name>accessories-text-editor</icon_name>
<action id="org.freedesktop.policykit.pkexec.gedit">
<description>Run "gedit"</description>
<message>Authentication is required to run Text Editor</message>
<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/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
code pro nautilus:
/usr/share/polkit-1/actions/com.ubuntu.nautilus.policy
<?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.0/policyconfig.dtd">
<policyconfig>
<vendor>nautilus</vendor>
<vendor_url>nautilus</vendor_url>
<icon_name>system-file-manager</icon_name>
<action id="org.freedesktop.policykit.pkexec.nautilus">
<description>Run "nautilus"</description>
<message>Authentication is required to run File Manager</message>
<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/nautilus/annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
Bohužel po restartu jako root s heslem je opět chyba:
kvetoslav@weblocal:~$ sudo su
[sudo] heslo pro kvetoslav:
root@weblocal:/home/kvetoslav# pkexec nautilus
(org.gnome.Nautilus:2760): Gtk-WARNING **: 10:13:33.454: cannot open display:
root@weblocal:/home/kvetoslav#
**** nejnovější 31.07.2022
[Desktop Entry]
Name=XAMPP Control Panel
Comment=Start and Stop XAMPP
#Exec=sudo /opt/lampp/manager-linux-x64.run
#Exec=sh ~/usr/share/applications/xampp-control-panel.desktop
Exec=pkexec /opt/lampp/manager-linux-x64.run
Icon=~/opt/lampp/htdocs/favicon.ico
Terminal=true
Type=Application
Categories=Games
A tu je také chyba:
kvetoslav@weblocal:~$ sudo su
[sudo] heslo pro kvetoslav:
root@weblocal:/home/kvetoslav# sudo update-rc.d -f lampp defaults
root@weblocal:/home/kvetoslav# sudo update-rc.d -f lampp enable
Failed to enable unit: Unit /run/systemd/generator.late/lampp.service is transient or generated.
root@weblocal:/home/kvetoslav#
Než začneš experimentovat, přečti si to nejdřív celé!Spouštíš to nějak zmatečně. Nejdřív řekneš od teď jako
root pomocí
sudo su a pak znova
sudo... Jakmile se prompt změní z
$ na
# tak už je další
sudo nebo
pkexec zbytečné. Možná u
pkexec dokonce kontraproduktivní.
Co jsem dohledal tak ten polkit bývá také dostkrát za
bugován. Někteří doporučují přejít na
policykit-gnome:
sudo apt install policykit-1-gnome
a spustit to při startu systému:
exec /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
Jiní doporučují v terminálu spouštět vyexportováním dvou proměnných:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit
S tím, že launcher to nepotřebuje:
[Desktop Entry]
Name=ROOT gedit
Comment=Gedit spouštěný s právy roota
Exec=pkexec /usr/bin/gedit
Icon=logo.png
Terminal=false
Type=Application
Categories=Utility;
Každopádně by měl dle řešitelů stejného problému ten soubor vypadat a uložit se trošku jinak. Pokud nebudeš instalovat polkit-gnome:
Tak si toto ulož jako
/usr/share/polkit-1/actions/org.freedesktop.policykit.gedit.policy<?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.gedit">
<description>Run gedit program</description>
<message>Authentication is required to run the gedit</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/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
Chtěl bych podotknout, že gedit by měl jít spustit i bez předchozích fičur v tomto formátu
gedit admin://absolutní_adresa_k_editovanénu_souboru Příklad:
gedit admin:///etc/fstab
Pokud funguje jednoduché
sudo gedit tak bych ostatní věci vůbec neřešil!
To vše platí analogicky i pro
nautilus.
Můj názor je, že grafické programy by se s root právy neměli vůbec používat.
P.S. ani jedno z těchto řešení nemohu odzkoušet, protože nepoužívám ani Gnome ani KDE a ani podobné věci. Ber to tak, že jsem za Tebe vyhledal informace. Jak s tím naložíš je jen na Tobě.
Osobně být na Tvém místě bych na to šel od zadu jak jsem to sem napsal.