GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie konfiguriere ich Pkexec, um nicht nach dem Passwort zu fragen?

Ich habe eine GUI-Anwendung, die einen Daemon (in Python geschrieben) mit Superuser-Rechten aufrufen muss. Ich möchte dies tun, ohne den Benutzer nach einem Passwort zu fragen.

Da der Daemon ein Skript ist, kann ich das SUID-Bit nicht direkt setzen. Ich könnte dafür einen C-Wrapper schreiben, aber ich möchte das Rad lieber nicht neu erfinden, besonders wenn ein Fehler meinerseits dazu führen könnte, dass die Sicherheit des Systems ernsthaft gefährdet wird.

Normalerweise würde ich in dieser Situation eine Zeile in /etc/sudoers hinzufügen die es Benutzern ermöglicht, den Daemon als root ohne Passwort auszuführen, indem sie die NOPASSWD-Direktive verwenden. Dies funktioniert problemlos über die Befehlszeile. Wenn ich dies jedoch über die GUI mache, wird ein pkexec Dialog erscheint und fragt nach dem Passwort des Benutzers. Es scheint, dass unter Ubuntu sudo aufgerufen wird von der GUI werden irgendwie von pkexec abgefangen .

Gibt es eine saubere Möglichkeit, dies zu umgehen? Ich möchte mich wirklich lieber nicht mit den Problemen eines setuid-Skripts auseinandersetzen müssen.

Beste Antwort

Es ist unpassend, Folgendes zu sagen:„Es scheint, dass unter Ubuntu sudo aufgerufen wird von der GUI werden irgendwie von pkexec abgefangen „ . pkexec hat nicht viel mit sudo gemeinsam . Im Gegensatz zu sudo , pkexec gewährt keine Root-Berechtigung für einen ganzen Prozess, sondern ermöglicht eine feinere Kontrolle der zentralisierten Systemrichtlinie.

Wenn Sie nun eine GUI-Anwendung ausführen möchten, ohne von pkexec nach einem Passwort gefragt zu werden , das ist nicht schwer zu tun. Nehmen wir zum Beispiel GParted . Wenn Sie es öffnen, sehen Sie das folgende Dialogfenster, das Sie nach einem Passwort fragt:

Klicken Sie auf Details und das Dialogfenster sieht nun so aus:

Von hier aus müssen Sie nur noch /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy Datei mit beispielsweise folgendem Befehl:

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

und ändern Sie die folgenden Zeilen:

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

mit den folgenden:

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

Speichern Sie die Datei und schließen Sie sie. Als nächstes öffnen Sie GParted Sie werden nicht mehr nach einem Passwort gefragt.

Verwandte:Ist es mit Gedit oder der Befehlszeile möglich, jede vierte Zeile einer Textdatei zu ändern?
Ubuntu
  1. Ubuntu – Wie konfiguriere ich externe IP-Adressen für Lxc-Gäste?

  2. Wie konfiguriere ich Desktop für eine statische IP-Adresse?

  3. Wie sollte ich die Trim-Unterstützung für logische LVM-Volumes konfigurieren?

  4. Wie kann man Apache 2 dazu bringen, nicht mehr nach einem Passwort für ein SSL-Zertifikat zu fragen?

  5. Wie konfiguriere ich mehrere Bereitstellungsumgebungen für Juju?

So konfigurieren Sie Openbox für Ihren Linux-Desktop

So konfigurieren Sie Nginx Reverse Proxy für Kibana

So konfigurieren Sie Kubernetes für Rolling Update

So konfigurieren Sie Bridged Networking für KVM unter Ubuntu 16.04 / 14.04 / Debian 9

Wie konfiguriere ich die Leerlaufzeit für den automatischen Sperrbildschirm?

Wie konfiguriere ich „Maustasten“?