summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorMartin Pitt <martin.pitt@ubuntu.com>2016-04-05 10:30:45 +0200
committerSven Eden <yamakuzure@gmx.net>2017-06-16 10:12:57 +0200
commit08ac0f0c1c37c805b2d08d370484d9008b0d0d5b (patch)
treee00a562397edfb0a5cf9b1ab002161ba462c7788 /src/shared
parentb948c8079622c55a223ceb928610f4609547b35a (diff)
polkit: don't start polkit agent when running as root
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
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/spawn-polkit-agent.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/shared/spawn-polkit-agent.c b/src/shared/spawn-polkit-agent.c
index cf3c8ad5a..7dae4d14f 100644
--- a/src/shared/spawn-polkit-agent.c
+++ b/src/shared/spawn-polkit-agent.c
@@ -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))