pkexec aus nemo heraus funktioniert nicht

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
barand3

pkexec aus nemo heraus funktioniert nicht

Beitrag von barand3 » 16.05.2018 23:22:42

Hallo,
ich habe in Nemo eine Action angellegt, die wird im Kontext Menü auch angezeigt

Code: Alles auswählen

[Nemo Action]
Name=Root write File
Name[de]=Datei als root bearbeiten
Comment[de]=Datei als root bearbeiten
Exec=pkexec gedit
Icon-Name=file
Selection=any
Extensions=any;
Quote=double
Terminal=false
allerdings startet sie nicht.
Der Aufruf im Terminal funktioniert.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von smutbert » 16.05.2018 23:43:22

Offensichtlich ist das Erstellen einer "action" in policy-Kit notwendig, damit sich das ganze in der GUI nutzen lässt. Ein Beispiel ist in der manpage von pkexec zu finden und hier
https://askubuntu.com/questions/641593/ ... sktop-file
https://unix.stackexchange.com/question ... ing-pkexec

(mir ist allerdings nicht klar ob das nur an den Variablen DISPLAY und XAUTHORITY oder auch noch an etwas anderem liegt)

barand3

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von barand3 » 17.05.2018 00:01:34

Danke Dir.
eine Action hab ich erstellt

Code: Alles auswählen

com.ubuntu.pkexec.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="com.ubuntu.pkexec.gedit">
    <message>Authentication is required to run the gedit Editor</message>
    <icon_name>gedit</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>
also wie gesagt, aus dem Terminal funzt das

Wenn ich das log laufen lasse bei der action, dann wird mir das angezeigt

Code: Alles auswählen

nemo.desktop[3711]: Refusing to render service to dead parents
klingt wie ein X Fehler, oder???

barand3

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von barand3 » 17.05.2018 00:14:34

Ich habe etwas gefunden, was mit dem Fehler zusammenhängt.

Code: Alles auswählen

Exec=sh -c "pkexec gedit %F"
Das funktioniert prima.
Wenn mir bitte noch jemand die Bedeutung in diesem Zsammenhang von "sh -c" erklären könnte!?
Ich wäre total dankbar.

Ich hatte angenommen, das der Shell Befehl nur für die Konsole bestimmt ist!?

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von smutbert » 17.05.2018 09:43:15

sh (/bin/sh) ist die Default-Shell und wenn man nicht explizit etwas anderes gewählt hat, ein Link auf die Debiandash. Für deinen Zweck ist es aber egal auf welche Shell sh zeigt.

Mit »sh -c "..."« startest du also diese Shell und lässt sie den Befehl "..." ausführen und danach wieder beenden. Es gibt kein Terminalfenster zur Ein- und Ausgabe, aber abgesehen davon läuft das auf dasselbe wie der Start in einem Terminalfenster hinaus.


Alternativ soll es wohl auch funktionieren für den Start wie in den Links ein Wrapper-Skript anzulegen, etwa »/usr/local/bin/gedit-pkexec« mit einem Inhalt wie

Code: Alles auswählen

#!/bin/sh
pkexec gedit "$@"
das Skript ausführbar zu manchen und dann als Befehl anzugeben.

geier22

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von geier22 » 17.05.2018 10:14:45

Versuche mal diese policy. Ist die Originale. Habe Nemo in Xfce / Buster installiert. Da wurde die mitgeliefert.
Mir schleierhaft, warum das nicht auch in Stable mitkommt, und man da mal wieder Terminal- Jockey spielen muss.

Code: Alles auswählen

<?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>Nemo Project</vendor>
 <vendor_url>https://github.com/linuxmint/nemo</vendor_url>

 <action id="org.nemo.root">
   <description>Run Nemo with elevated privileges</description>
   <message>Please enter your password to run Nemo as root</message>
   <icon_name>gksu-root-terminal</icon_name>
   <defaults>
     <allow_any>no</allow_any>
     <allow_inactive>no</allow_inactive>
     <allow_active>auth_admin_keep</allow_active>
   </defaults>
   <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/nemo</annotate>
   <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
 </action>

</policyconfig>

barand3

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von barand3 » 17.05.2018 10:52:41

Danke @smutbert, das mit dem Script funktioniert auch sehr gut, dies Lösung erscheint mir sauberer.

@geier22 die policy wurde schon angelegt und funktioniert auch, ich wollte nur eine Möglichkeit, aus dem Nemo heraus die
Datei zu bearbeiten, ohne ein neues Admin Fenster zu öffnen.

Vielen Dank für die Hilfe!

michaa7
Beiträge: 4611
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von michaa7 » 23.08.2018 22:36:47

Leute, das darf doch alles nicht war sein. Was früher mal mit gksu in einem schritt zu erledigen war bedarf jetzt des anlegen einer policy? Und da soll ich als normalo-user noch durchblicken (wollen :roll: )?

Das ist doch vollkommen unsäglicher quarck (<--- das ist die super diplomatische-euphemistischeste umschrreibung zu der ich fähig bin, und ich bin dabei mit allen gurten festgeschnallt).
Ich möchte gparted starten (was in meinen alten system noch mit gksu funktioniert, nur habe ich jetzt keine ahnung mehr welches paket diese freundlichkeit noch bereitstellt).

DAS ist normalusern nicht mehr zu vermitteln, mit diesem ansatz beginne ich zu wünschen das linux bald geschichte ist. Ich weiß das wird nciht passieren, aber man wird sich doch wohl noch wünschen dürfen ...

Das hat alles mal relativ einfach funktioniert!!!

Und falls noch jemqand lust hat, wie bekomme ich jetzt gparted als user gestartet, möglichst irgendwie so, dass ich es in meinen fluxbox menü abspeichern kann. Und welche debian mailingliste ist für die allgemein ausrichtung zuständig??

Hab ich vergessen, mit pkexec klappt das *nicht*
$ pkexec gparted
==== AUTHENTICATING FOR org.gnome.gparted ===
Authentication is required to run the GParted Partition Editor as root
Authenticating as: root
Password:
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized

This incident has been reported.
Wow, incident reported, beeindruckend ....


... darf nicht wahr sein ....tssssss ......... ich glaub's nich .............................gibbs nich ................. omg

EDIT:
Zwar ist das wohl keine lösung auf dauer, aber in den snapshots gibt es die version gksu 2.0.2 die sich mit ein paar abhängikeiten sogar noch unter sid installieren läßt und funktioniert. SO läuft gparted im handumdrehn ... und so soll das sein.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

DeletedUserReAsG

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von DeletedUserReAsG » 23.08.2018 23:25:41

TL;DR: „Ich bin der Mittelpunkt, das Zentrum aller Dinge. Und wenn ich da keinen Nutzen für mich drin sehe, braucht das auch sonst keiner! Und wenn mir das zu komplex ist, taugt es schon überhaupt nichts, für gar keinen!”

So richtig verstanden?

Von der Sache, dass es so, wie es gerade in Sid sein mag, nicht unbedingt auch in Testing landen muss, und so, wie es in Testing landet, auch nicht unbedingt irgendwann mal in Stable landen muss, fange ich nun besser gar nicht erst an :D

Huo
Beiträge: 605
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von Huo » 23.08.2018 23:52:33

Eine eigene Policy bringt GParted schon mit, in der Hinsicht musst Du also nichts selbst anlegen. Du solltest Dich einzig noch darum kümmern, einen graphischen Authentifizierungsagenten zu installieren (z. B. Debianmate-polkit, Debianlxpolkit oder Debianpolicykit-1-gnome). Dieser kleine Aufwand sollte doch zumutbar sein, oder? Und dann klappt's auch mit gparted und pkexec. :wink:

michaa7
Beiträge: 4611
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von michaa7 » 24.08.2018 14:56:48

Wie mittlerweile hier herausgefunden klappt das ja OOTB (also wie es sein soll) mit su (ohne -). Zwar bin ich verwundert, weil ich es eigentlich als linux mantra kenne nie ein programm direkt mit rootrechten zu öffnen, aber vielleicht hat sich daran ja etwas geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von KP97 » 24.08.2018 17:09:44

michaa7 hat geschrieben: ↑ zum Beitrag ↑
24.08.2018 14:56:48
Zwar bin ich verwundert, weil ich es eigentlich als linux mantra kenne nie ein programm direkt mit rootrechten zu öffnen, aber vielleicht hat sich daran ja etwas geändert.
Was sollte sich daran ändern? Das war schon immer Quatsch. Wenn ich root bin, habe ich die volle Kontrolle über das System, wobei es völlig schnurz ist, ob ich grafisch oder auf der Konsole Mist anstelle, das System beschädige ich in beiden Fällen.
Genauso der blöde Spruch "never touch a running system". Kenne ich noch aus meiner Zeit am Mainframe, wo das noch einigermaßen Sinn ergab, auf Desktopsystemen aber völliger Unfug ist, sonst könnte ich z.B. keine Upgrades machen....wird aber trotzdem von einigen Usern immer noch hergebetet.
In diesen Bereich gehört auch das "Mantra"...

Ich möchte doch nun wirklich hoffen, daß es auch bei Dir angekommen ist, und Du nicht mehr zig Beiträge mit dem gleichen Gejammer füllst oder, noch schlimmer,
alte Beiträge ausgräbst, um noch weiteren Frust loszuwerden.

Schon ganz richtig, wie @niemand es ausgedrückt hat.

michaa7
Beiträge: 4611
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: pkexec aus nemo heraus funktioniert nicht

Beitrag von michaa7 » 24.08.2018 17:25:08

KP97 hat geschrieben: ↑ zum Beitrag ↑
24.08.2018 17:09:44
Ich möchte doch nun wirklich hoffen, daß es auch bei Dir angekommen ist, und Du nicht mehr zig Beiträge mit dem gleichen Gejammer füllst oder, noch schlimmer,
alte Beiträge ausgräbst, um noch weiteren Frust loszuwerden.

Schon ganz richtig, wie @niemand es ausgedrückt hat.
Das zeigt einfach den unterschied zwischen usern die Konfigurationsrätsel lieben und usern die andere Rätsel bevorzugen. Solange erstere das sagen haben wird Linux in seiner Desktopnische gefangen sein und letztere hilflos hilfesuchend "Beiträge mit (immer) dem gleichen Gejammer füll"en, was sonst :mrgreen: ?
Das ist übrigens der einzige mir bekannte Fall in dem die Voraussetzung tatsächlich der Beweis ist. 8)

Aber, dir vielleicht zum Trost, die größten Probleme haben sich ja gestern gelöst. Danke für deine Hilfe.. :THX:
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten