chiark / gitweb /
polkit: don't start polkit agent when running as root
authorMartin Pitt <martin.pitt@ubuntu.com>
Tue, 5 Apr 2016 08:30:45 +0000 (10:30 +0200)
committerSven Eden <yamakuzure@gmx.net>
Fri, 16 Jun 2017 08:12:57 +0000 (10:12 +0200)
On the server side we already bypass the polkit checks if the caller is root
(see the sd_bus_query_sender_privilege() call in bus_verify_polkit_async()). So
there is no reason to invoke polkit when running
systemctl/machinectl/loginctl/timedatectl as root.

Fixes #2748

src/shared/spawn-polkit-agent.c

index cf3c8ad5a346680961a80a895d5d244a932bf4f0..7dae4d14fe22648a64fcfb3f3ef2fdd84cc0b135 100644 (file)
@@ -44,6 +44,10 @@ int polkit_agent_open(void) {
         if (agent_pid > 0)
                 return 0;
 
+        /* Clients that run as root don't need to activate/query polkit */
+        if (geteuid() == 0)
+                return 0;
+
         /* We check STDIN here, not STDOUT, since this is about input,
          * not output */
         if (!isatty(STDIN_FILENO))