Fact-checked by Grok 2 weeks ago

Polkit

Polkit, formerly known as PolicyKit, is an open-source framework designed for operating systems, particularly , that enables unprivileged processes to communicate securely with privileged processes by defining and enforcing fine-grained access policies. It serves as a centralized system for handling in desktop environments, allowing applications to request specific actions without granting full root access, thus enhancing security beyond traditional Unix permissions like or group-based controls. Developed as part of the project, Polkit originated to address the limitations of static permission models in graphical user interfaces, where users need temporary elevated privileges for tasks such as mounting drives or system shutdowns. The framework's core daemon, polkitd, runs as and listens on the system bus to mediate authorization requests, evaluating them against predefined actions (XML files in /usr/share/polkit-1/actions that describe operations like rebooting) and customizable rules (JavaScript files in /etc/polkit-1/rules.d). Key concepts include subjects (users or processes initiating requests), actions (the operations being authorized), and the (polkitd itself), which determines outcomes such as "yes," "no," or "authentication needed" based on context like user identity or session type. Unlike tools like , which provide broad root shells, Polkit offers dynamic, policy-driven authorization tailored for GUI applications, integrating with authentication agents such as polkit-gnome for GNOME or polkit-kde-agent-1 for KDE to prompt for credentials when required. Common utilities include pkexec, which allows authorized users to execute programs with elevated privileges, similar to sudo but with Polkit's policy enforcement. This architecture supports implicit grants (e.g., self-authentication for personal actions) and admin keep-alives to minimize repeated prompts, balancing usability and security in multi-user environments. Polkit has been widely adopted in major Linux distributions, including SUSE Linux Enterprise Server, , , , and , where it underpins desktop environments for system administration tasks. Its use extends to embedded systems and server setups via text-based agents like pkttyagent, though it is most prominent in graphical sessions. Polkit has replaced its JavaScript engine, libmozjs, with Duktape for improved maintenance and (as of version 0.120 in 2022). Despite its complexity in configuration, Polkit remains a critical component for modern privilege management, with ongoing updates ensuring compatibility with evolving desktop technologies.

Introduction

Purpose and Functionality

Polkit is an framework designed for operating systems, enabling unprivileged processes—referred to as clients or subjects—to request and obtain authorization for specific actions from privileged programs, known as mechanisms, through a centralized such as the polkitd daemon. This facilitates secure , often via mechanisms like , allowing mechanisms to offload authorization decisions to the authority rather than handling them internally. The key goals of Polkit are to deliver fine-grained, policy-based control over system-wide privileges, promoting a more secure alternative to traditional methods like (SUID) binaries, which can introduce vulnerabilities by granting excessive permissions, or full access, which risks broad system compromise. By centralizing authorization in configurable policies, Polkit supports context-aware decisions, including temporary grants via user authentication, to balance and in multi-user environments. In practice, Polkit handles core use cases such as authorizing the mounting of filesystems (e.g., via actions like org.freedesktop.udisks2.filesystem-mount-system), configuring network devices through services like , and initiating system shutdowns or reboots (e.g., via org.freedesktop.login1.power-off). These scenarios are particularly prevalent in desktop environments, where unprivileged users need controlled access to hardware or system operations without escalating to full administrative privileges. In contrast to tools like , which primarily enable full by providing temporary shells or command execution, Polkit focuses on per-action , evaluating requests against predefined policies to grant minimal necessary permissions without broad elevation. Polkit is distributed as under the GNU Lesser General Public License version 2 or later (LGPL v2+), and its development and hosting are managed by the project.

Development History

Polkit originated as PolicyKit, a project initiated by David Zeuthen at in 2007 to overcome shortcomings in traditional privilege management systems, particularly for desktop environments such as that required more granular control over administrative actions. The framework aimed to provide a flexible mechanism for unprivileged processes interacting with privileged services, addressing the limitations of tools like in multi-user graphical sessions. The inaugural release, version 0.3, was made available in June 2007 via the freedesktop.org mailing lists, marking the project's entry into active development. Early adoption followed swiftly in major Linux distributions: Fedora integrated it as a core feature starting with Fedora 8 in late 2007, Ubuntu included it from version 8.04 (Hardy Heron) released in April 2008, and openSUSE incorporated it in version 10.3 launched in October 2007. These integrations helped establish PolicyKit as a standard for policy-based authorization in Linux ecosystems. In 2012, the project underwent a significant rewrite, culminating in version 0.105, which officially renamed it to Polkit and broke to streamline its . This overhaul introduced JavaScript-based rules using the engine, replacing the less flexible .pkla key-value format to enable more expressive and testable policies, such as conditional logic based on user groups, time, or device attributes. The change, detailed in development branches and bug reports, enhanced usability for administrators while maintaining security through sandboxed rule evaluation. Subsequent stable releases progressed incrementally, with version 0.120 arriving in October 2021 to address ongoing refinements in handling. The most recent update, version 0.126, was released on January 13, 2025, incorporating bug fixes and improvements to integration for better reliability. Polkit continues to be maintained under the umbrella and the polkit-org/polkit repository on , where community contributions emphasize security hardening, cross-distribution compatibility, and adaptations for modern desktop environments.

System Architecture

Core Components

Polkit's core components form the foundational infrastructure for its framework, enabling secure decision-making across and sessions. At the heart of the is polkitd, a privileged daemon that operates as the central for handling queries. Running under a dedicated with minimal privileges, polkitd communicates via the message bus provided by , processing requests from mechanisms and enforcing policies based on predefined rules and actions. It listens for incoming authorization checks and coordinates with other components to determine access rights without directly executing privileged operations. Complementing polkitd are authentication agents, which are session-specific processes responsible for interactive credential verification when elevated privileges are required. These agents run per user session, either graphically or in , and interface with the native authentication system (such as ) to prompt users for passwords or other credentials. Examples include polkit-gnome-authentication-agent-1 for environments and lxpolkit for lightweight desktop sessions like , all leveraging the libpolkit-agent-1 library for standardized interaction with polkitd. Without an active agent, authorization requests may fail silently or default to denial, ensuring security in unattended scenarios. The PolicyKit Authority (PKAuthority) serves as the primary API interface for querying and managing authorizations, exposed through methods on the . Implemented as the org.freedesktop.PolicyKit1.Authority service by polkitd, it provides functions such as CheckAuthorization to evaluate whether a subject (e.g., a user process) can perform a specific action, returning detailed results including required credentials or temporary authorizations. This interface abstracts the complexity of policy evaluation, allowing applications and system services to integrate seamlessly via libraries like libpolkit-gobject-1. Polkit supports modular backends for evaluating rules, with the default implementation using a introduced in version 0.106 in 2012. Since version 0.121 (as of 2022), Duktape has been added as an alternative , configurable at , and adopted by many distributions as the default over the previous libmozjs for better maintenance and security. This backend processes rule files securely within the polkitd process, enabling expressive policy logic without external dependencies. Alternative backends can be configured for specialized environments, though the option remains the standard for its balance of flexibility and performance. Configuration and policy files follow standardized file locations to separate system-wide definitions from local customizations. definitions, which outline available privileges, reside in /usr/share/polkit-1/actions, while rule files for overrides are placed in /usr/share/polkit-1/rules.d for vendor-provided content and /etc/polkit-1/rules.d for administrator modifications, ensuring overrides take precedence during evaluation. These paths maintain across distributions and allow updates without disrupting ongoing sessions.

Interaction Model

Polkit's interaction model facilitates secure decisions for privileged operations requested by unprivileged processes. An unprivileged client initiates a request for a specific action by sending it via to a privileged , which then queries the polkit daemon (polkitd) for . The polkitd assesses the request based on the provided subject details—such as user ID, process ID, and group memberships—and the action identifier, applying configured policies to determine the outcome. This flow ensures that is centralized and mediated without granting direct to clients. The authorization decision returned by polkitd falls into one of several types: "yes" allows the action without further authentication; "no" denies it outright; "auth_self" requires authentication from the requesting user; "auth_admin" demands administrative credentials; while "auth_self_keep" and "auth_admin_keep" permit reuse of recently provided credentials for a limited time to avoid repeated prompts. If is needed, polkitd notifies an authentication agent registered for the user's session, which handles credential verification and relays the result back. The polkit daemon and authentication agents play central roles in mediating these interactions (detailed in Core Components). Polkit operates primarily as a D-Bus service under the name org.freedesktop.PolicyKit1, leveraging for between clients, mechanisms, and polkitd. This setup provides secure, mediated messaging over the system or session bus, preventing direct access to privileged resources. Requests are processed through the org.freedesktop.PolicyKit1.Authority interface, specifically the CheckAuthorization method, which takes parameters including the , action ID (a unique string like org.freedesktop.packagekit.package-install), additional details as key-value pairs, and flags to control behavior such as user interaction. Subjects are represented using PolkitSubject objects, capturing attributes like Unix process details (, ), session information, or bus names to enable precise matching. Actions are identified by standardized IDs defined in files, ensuring consistent evaluation across the system. This use of identifiers allows policies to target specific contexts without ambiguity. Error handling in the interaction model includes mechanisms for timeouts and cancellations to maintain reliability. rule evaluation is capped at 15 seconds, and any external helpers invoked during checks are terminated after 10 seconds to prevent hangs. Requests can be canceled if an earlier rule provides a decision, short-circuiting further processing. In cases of authentication agent unavailability—such as when no agent is registered for the session—polkitd falls back to denying the request, ensuring no unauthorized actions proceed.

Policy Definition and Configuration

Action Definitions

In Polkit, system actions are defined through XML files known as files, which provide declarative for queries. These files are installed by applications or system packages into the /usr/share/polkit-1/actions/, with each file named according to its followed by a .policy extension, such as org.freedesktop.udisks2.policy. Each file contains definitions for one or more actions, including unique identifiers, human-readable descriptions, information, and annotations that can specify relationships like implying other actions. The structure of an action definition follows a standardized XML format using the PolicyKit DTD. The root element is <policyconfig>, which may include global <vendor>, <vendor_url>, and <icon_name> elements for project details. Individual s are enclosed in <action id="..."> tags, where the id attribute uses a namespaced format like org.example.[action](/page/Action) with allowed characters from [A-Z][a-z0-9.-]. Within each <action>, key elements include <description> for a translatable summary of the , <message> for authentication prompts (also translatable via xml:lang), and <defaults> specifying implicit permissions such as <allow_any>, <allow_inactive>, and <allow_active> with values like yes, no, auth_self, or auth_admin. Annotations are added via <annotate key="...">value</annotate> pairs, for example, to define like executable paths or implications (e.g., org.freedesktop.policykit.imply with a space-separated list of related IDs to create meta-actions). Standard examples illustrate practical use. For instance, the UDisks package defines org.freedesktop.udisks2.filesystem-mount to filesystem ing:
xml
<action id="org.freedesktop.udisks2.filesystem-mount">
  <description>Mount a filesystem</description>
  <message>[Authentication](/page/Authentication) is required to [mount](/page/Mount) the filesystem</message>
  <defaults>
    <allow_any>auth_admin</allow_any>
    <allow_inactive>auth_admin</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
</action>
This requires administrative authentication for non-active sessions but allows active users directly. Similarly, defines org.freedesktop.NetworkManager.enable-disable-network for toggling system networking:
xml
<action id="org.freedesktop.NetworkManager.enable-disable-network">
  <description>Enable or disable system networking</description>
  <message>System policy prevents enabling or disabling system networking</message>
  <defaults>
    <allow_any>no</allow_any>
    <allow_inactive>no</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
  <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/NetworkManager</annotate>
</action>
Here, active users can perform the action without authentication, while others cannot. Distributions and applications extend actions without conflicts by adhering to namespaced identifiers, typically using reverse-DNS conventions like org.freedesktop.* for shared components or com.vendor.app.* for ones, ensuring global uniqueness and preventing overlaps. For actions to be available in authorization queries, they must be registered by placing the policy files in the actions directory during package installation, after which the polkitd daemon loads and monitors them for use in checks.

Rule Specification

Administrators define conditional rules in Polkit to grant or deny for specific actions based on the context of the requesting subject, such as the user's identity, group membership, or session details. These rules are primarily implemented as files with a .rules extension, placed in the directories /etc/polkit-1/rules.d/ for local administrative configurations and /usr/share/polkit-1/rules.d/ for system-wide defaults provided by packages. The Polkit daemon, polkitd, executes these rules using an ECMAScript 5-compliant interpreter such as (libmozjs) by default or Duktape if compiled with that backend, when evaluating requests, allowing for dynamic decision-making at . Each rule file consists of one or more calls to the polkit.addRule , which registers a callback invoked for every check. The is polkit.addRule([function](/page/Function)([action](/page/Action), [subject](/page/Subject)) { ... }), where [action](/page/Action) is an object providing details like the action's via [action](/page/Action).id, and [subject](/page/Subject) represents the requesting entity with properties such as [subject](/page/Subject).[user](/page/User) (the Unix ID) and methods like [subject](/page/Subject).isInGroup("groupname") to check group membership. The callback must return a polkit.Result value to indicate the decision: polkit.Result.YES for unconditional grant, polkit.Result.NO for denial, polkit.Result.AUTH_SELF or polkit.Result.AUTH_ADMIN to require from the or an administrator, respectively, or null (equivalent to polkit.Result.NOT_HANDLED) to defer to subsequent rules. Rules are processed sequentially, and the first non-null result determines the outcome. Rule files are loaded and evaluated in lexicographical order based on their filenames, ensuring that rules in /etc/polkit-1/rules.d/ (which typically use lower numerical prefixes like 10-) take precedence over those in /usr/share/polkit-1/rules.d/ (often prefixed with higher numbers like 50- or 90-). This ordering allows later rules to override earlier ones explicitly by returning a decisive result. Changes to rule files trigger polkitd to reload them without restarting the daemon. Polkit also supports a format using .pkla files (PolicyKit Local Authority) in INI style for simple, static key-value policies, but this format has been deprecated since version 0.106 in 2012 due to limitations in expressiveness and ease of testing. Administrators are encouraged to migrate to rules for more flexible conditional logic. For example, to allow users in the "wheel" group to mount internal filesystems without , a rule file such as /etc/polkit-1/rules.d/10-udisks.rules might contain:
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" &&
        subject.isInGroup("wheel")) {
        return polkit.Result.YES;
    }
});
Another common rule denies actions for non-local sessions to enhance security, for instance:
polkit.addRule(function(action, subject) {
    if (!subject.local) {
        return polkit.Result.NO;
    }
});
To debug rules, administrators can use the pkaction --verbose command to inspect detailed information about actions and the rules that apply to them, revealing which rules are evaluated and their outcomes for a given action ID. Additionally, within rule files, the polkit.log("message") method outputs debugging messages to the system (typically /var/log/secure or via journalctl -u polkit.service), including the filename and for traceability; these logs are most useful when polkitd is run without the --no-debug option suppressed in its configuration.

Usage and Integration

Command-Line Tools

Polkit provides several command-line tools for managing authorizations and executing privileged actions in a policy-driven manner, enabling non-graphical interactions suitable for scripts and terminal-based workflows. These utilities interact with the Polkit daemon to enforce policies defined in action descriptions and rules, allowing users to check permissions, list available actions, and run commands with elevated privileges without relying on traditional tools like . The primary tool for executing commands with elevated privileges is pkexec, which allows an authorized to run a as another user, typically , based on Polkit policies rather than a fixed password prompt like . Its syntax is pkexec [options] PROGRAM [ARGUMENTS...], where PROGRAM is the command to execute and ARGUMENTS are its parameters; if no PROGRAM is specified, it launches the default . Key options include --user username to specify the target user and --disable-internal-agent to suppress the built-in textual agent, forcing use of an external one. For instance, pkexec /usr/bin/[cat](/page/Cat) /etc/shadow runs the cat command as root to display a protected file, prompting for if required by the . Unlike sudo, pkexec provides a minimal for , clearing most environment variables and not validating arguments, making it suitable for scripted use but discouraged for untrusted inputs. pkaction is a for querying information about registered Polkit actions, useful for administrators to inspect available privileges without executing them. Invoked as pkaction [options], it lists all actions from /usr/share/polkit-1/actions/ when run without arguments, displaying action IDs and basic descriptions; the --verbose option provides full details like vendor and default permissions. To describe a specific action, use pkaction --action-id org.freedesktop.policykit.read --verbose, which outputs annotations such as implicit authorizations for active sessions. This tool does not activate actions but aids in verification and . For non-interactive authorization checks, pkcheck verifies whether a subject—such as a process—can perform a given action without attempting execution, returning an exit code to indicate success. The basic syntax is pkcheck --action-id action_id --process pid[,start_time][,uid], where --action-id specifies the action (e.g., org.freedesktop.accounts.user-administration), and --process identifies the process by PID, optionally with start time from /proc/pid/stat to prevent race conditions and UID for precision. Options like --allow-user-interaction permit blocking for authentication, while --enable-internal-agent uses a textual agent for console environments. An example is pkcheck --action-id org.example.action --process 1234,1623456789,1000, which exits with 0 if authorized, 1 if not, and prints diagnostics on failure. It also supports --list-temp to enumerate temporary authorizations and --revoke-temp to clear them. The pklocalauthority tool, once used for managing the local authority by refreshing configuration from disk files in /etc/polkit-1/localauthority.conf.d/ and .pkla formats, is deprecated in modern distributions, having been replaced by integrated mechanisms like polkitd with rules for dynamic policy evaluation. In scripting and automation, these tools enable policy-aware ; for example, a can use pkexec udisksctl [mount](/page/Mount) -b /dev/sdb1 to a via udisksctl, leveraging Polkit to authenticate the action without full access, ensuring the respects defined rules for . Similarly, conditional checks with pkcheck can branch logic based on status, such as verifying permissions before attempting a network change.

Desktop Environment Integration

Polkit integrates seamlessly with major desktop environments through dedicated authentication agents that handle interactive privilege elevation, such as password prompts, in a manner consistent with the desktop's visual style. In , polkit authentication is integrated into , providing graphical dialogs for authentication during privileged operations. For , the polkit-kde-agent-1 daemon delivers a Qt-based authentication UI tailored for the environment. Lightweight desktops like utilize mate-polkit, which offers a compatible service for bringing up authentication dialogs. These agents enable Polkit's use in common desktop tasks requiring per-user permissions. For instance, UDisks leverages Polkit to authorize disk management actions, such as formatting or partitioning drives, allowing non-root users to perform operations after . PackageKit employs Polkit for software and updates, ensuring that users can install packages only after verifying their privileges via the agent's dialog. Similarly, systemd-logind integrates Polkit to control power-related actions like shutdown or suspend, granting access based on user session status and policy rules. During user login, these authentication agents register with the polkitd daemon over to manage interactive authentication for the session, enabling secure handling of actions such as establishing connections without requiring privileges. This registration ensures that privilege requests are routed to the appropriate graphical interface, maintaining a smooth across the session. Practical examples illustrate Polkit's role in everyday interactions. When a user attempts to mount a USB drive via a like in or in , UDisks triggers a Polkit authorization check, prompting the authentication agent for confirmation if needed. Likewise, initiating a shutdown from a desktop panel invokes systemd-logind, which uses Polkit to display an dialog before proceeding. Distributions vary in their default implementations to align with their preferred desktops. primarily integrates Polkit with via the policykit-1-gnome package, which autostarts the agent during sessions. supports both and , selecting agents through desktop-specific autostart files or configuration for session tracking, ensuring compatibility across . As of Polkit 0.126 (released in late ), enhancements include improved log control restricted to root and better permission management for actions like updates, maintaining compatibility with existing command-line tools and desktop agents.

Security Aspects

Design Advantages

Polkit's design provides fine-grained control over authorization decisions, allowing policies to be defined per specific action rather than granting broad privileges, which significantly reduces the attack surface compared to traditional tools like sudo that often enable all-or-nothing escalation to root. This approach enables administrators to tailor permissions based on user identity, groups, or even session context, ensuring that only necessary privileges are extended for discrete operations such as mounting devices or modifying network settings. By centralizing authorization in the polkitd daemon, which operates without privileges, Polkit avoids the vulnerabilities inherent in SUID binaries commonly used in mechanisms. This architecture confines privileged operations to a single, monitored process running under a restricted account, preventing potential exploits that could hijack system-wide access through malicious setuid executables. Polkit supports session-aware through per-user agents, which can present graphical prompts tailored to the user's , enhancing usability without requiring full shells or terminal-based interactions. These agents distinguish between active and inactive sessions, allowing policies to enforce different requirements—such as one-time verification for local actions—while maintaining security isolation for remote or background processes. The framework's auditability is facilitated by logging authorization attempts and decisions, integrated with system loggers like journald or , which supports compliance requirements and forensic analysis of privilege usage. This logging captures details of authentication outcomes, including explicit grants or denials, enabling administrators to monitor and review access patterns for potential anomalies. Polkit's modular design promotes extensibility, permitting custom backends and distribution-specific policies through simple file-based configurations that do not require daemon restarts. This flexibility allows integration with diverse environments, such as embedding rules in or XML formats, while supporting extensions like for secure .

Known Vulnerabilities

One of the most significant vulnerabilities in Polkit is PwnKit, identified as CVE-2021-4034, which was discovered by researchers and publicly disclosed on January 25, 2022, though internal discovery occurred in November 2021. This flaw resides in the pkexec utility, a setuid-root program that allows unprivileged users to execute commands as root, and enables local through a memory corruption issue triggered by setting argc to 0 and argv to , leading to as root. It affects all Polkit versions from 0.105 (released in 2009) up to but not including 0.120, with a CVSS v3.1 base score of 7.8 (high severity) due to its ease of local exploitation without user interaction. The vulnerability was patched in Polkit 0.120 by adding argument validation in pkexec. Earlier issues related to user ID (UID) overflow include CVE-2018-1116 and CVE-2018-19788, both affecting Polkit 0.115. CVE-2018-1116 involves improper handling in the polkit_backend_interactive_authority_check_authorization function, allowing local via a crafted message that bypasses authentication checks. CVE-2018-19788 exploits an by permitting users with a UID greater than INT_MAX (2,147,483,647) to execute arbitrary systemctl commands without authentication, effectively granting elevated privileges. These vulnerabilities, each with a CVSS v3.0 base score of 7.0 (high), were fixed in Polkit 0.116 through improved UID validation and bounds checking in the authentication logic. Another notable denial-of-service is CVE-2021-4115, stemming from a leak in the polkitagenthelper process, which allows an unprivileged user to exhaust available s and crash the polkitd daemon. This issue, with a CVSS v3.1 base score of 5.5 (medium severity), provides no direct but enables repeated denial-of-service attacks by overwhelming system resources, particularly in multi-user environments. It affects Polkit versions prior to 0.124 and was mitigated by closing the descriptor leak in that release. Resource limits on polkitd processes can further reduce the impact. In July 2025, CVE-2025-7519 was disclosed, affecting Polkit versions up to and including 0.126. This vulnerability involves an out-of-bounds write when processing XML files with 32 or more nested elements, potentially leading to memory corruption, crashes, or . It has a CVSS v3.1 base score of 7.1 (high severity) and allows local attackers to exploit it without privileges. The issue is fixed in distribution backports; upstream Polkit remains at 0.126 without an official patch as of November 2025, so users should apply vendor-specific updates. To mitigate these vulnerabilities, administrators should update to the latest Polkit version available from their distribution, which includes patches for all known issues including CVE-2025-7519. Disabling the pkexec utility via removal or (e.g., removing the bit) is recommended if not required, as it eliminates the primary in PwnKit. Additionally, confining polkitd with mandatory access controls like or SELinux profiles can prevent exploitation by restricting usage and inter-process communications. Overall, Polkit vulnerabilities primarily enable local or denial-of-service from unprivileged accounts, posing critical risks in multi-user systems but no known remote exploitation paths without prior local access. These issues underscore the importance of timely updates in shared environments.

References

  1. [1]
    Introduction: polkit Reference Manual - Freedesktop.org
    polkit provides an authorization API intended to be used by privileged programs (“MECHANISMS”) offering service to unprivileged programs (“CLIENTS”).
  2. [2]
    The Polkit authentication framework | Security and Hardening Guide
    Polkit is an authentication framework used in graphical Linux desktop environments, for fine-grained management of access rights on the system.
  3. [3]
    Why use polkit? - LWN.net
    Jun 11, 2021 · Polkit is a sudo reimplementation, acting as an IPC-based policy plugin, enabling non-root users to perform tasks like GUI applications and ...<|control11|><|separator|>
  4. [4]
    Introduction to Polkit: Navigating Authorization Frameworks in Linux
    Mar 7, 2024 · Polkit is an authorization framework which provides API to allow unprivileged subjects to access privileged services.
  5. [5]
    pkexec: polkit Reference Manual - Freedesktop.org
    DESCRIPTION. pkexec allows an authorized user to execute PROGRAM as another user. If PROGRAM is not specified, the default shell will be run.
  6. [6]
    Linux Polkit: Implementing user space authorization on embedded ...
    Jul 8, 2022 · Polkit is an application-level framework for defining and handling security policies, securing user space Linux applications in embedded ...
  7. [7]
  8. [8]
    polkit - Freedesktop.org
    PolicyKit provides an authorization API intended to be used by privileged programs (“MECHANISMS”) offering service to unprivileged programs (“CLIENTS”)
  9. [9]
  10. [10]
  11. [11]
    Chapter 4. PolicyKit | Desktop Migration and Administration Guide
    The PolicyKit utility is a framework that provides an authorization API used by privileged programs (also called mechanisms) offering services to unprivileged ...Missing: shutting | Show results with:shutting
  12. [12]
    NetworkManager.conf
    Whether the system uses PolicyKit for authorization. If true , non-root requests are authorized using PolicyKit. Requests from root (user ID zero) are always ...
  13. [13]
    org.freedesktop.login1
    SetUserLinger() expects three arguments: the UID, a boolean whether to enable/disable and a boolean controlling the polkit authorization interactivity (see ...
  14. [14]
    Appendix A. License: polkit Reference Manual
    - **License Name**: GNU Library General Public License
  15. [15]
    polkit (formerly PolicyKit) is a toolkit for defining and ... - GitHub
    polkit is a toolkit for defining and handling authorizations. It is used for allowing unprivileged processes to speak to privileged processes. DOCUMENTATION.
  16. [16]
    PolicyKit To Enhance Linux Desktop Administration, Lockdown
    Mar 8, 2006 · David Zeuthen (Red Hat) who wrote and maintains the HAL freedesktop library has announced a new Policy Kit library to manage administrative ...Missing: Polkit history
  17. [17]
    polkit man | Linux Command Library
    Polkit (originally PolicyKit) was developed by David Zeuthen at Red Hat, with its initial releases around 2007. It emerged as a response to the growing need for ...
  18. [18]
    PolicyKit 0.3 - Mailing Lists - Freedesktop.org
    PolicyKit 0.3 · Previous message: Hal info for Mitac 8350 based laptop. · Next message: HAL and his implicit options · Messages sorted by: [ date ] ...Missing: Ubuntu openSUSE
  19. [19]
    Releases/FeaturePolicyKit - Fedora Project Wiki
    Oct 3, 2007 · PolicyKit provides a flexible framework for granting users access to privileged operations. It is meant to replace the old userhelper approach.
  20. [20]
    Exploiting PwnKit (CVE-2021-4034): Techniqu… - INE
    Dec 18, 2024 · In 2012, with the release of version 0.105, the project underwent a major overhaul, breaking backward compatibility and renaming itself from ...Missing: rules | Show results with:rules
  21. [21]
    Authorization Rules in polkit - inactivity log for davidz
    Jun 4, 2012 · For the past couple of weeks, I've been working on rewriting the part of polkit that actually makes the authorization decision: the polkit ...Missing: introduction | Show results with:introduction
  22. [22]
  23. [23]
    Index of /software/polkit/releases - Freedesktop.org
    Index of /software/polkit/releases ; polkit-0.119.tar.gz.sign, 2021-06-03 14:20, 488 ; polkit-0.120.tar.gz, 2021-10-04 15:15, 1.6M ; polkit-0.120.tar.gz.sign, 2021 ...
  24. [24]
  25. [25]
  26. [26]
    polkitd: polkit Reference Manual - Freedesktop.org
    polkitd provides the org.freedesktop.PolicyKit1 D-Bus service on the system message bus. Users or administrators should never need to start this daemon.
  27. [27]
    polkit Reference Manual - Freedesktop.org
    polkit provides an authorization API intended to be used by privileged programs (“MECHANISMS”) offering service to unprivileged programs (“SUBJECTS”)
  28. [28]
    Writing polkit Authentication Agents - Freedesktop.org
    Authentication agents are provided by desktop environments. When an user session starts, the agent registers with the polkit Authority using the ...
  29. [29]
    PolkitAuthority: polkit Reference Manual - Freedesktop.org
    PolkitAuthority is used for checking whether a given subject is authorized to perform a given action. Typically privileged system daemons or suid helpers will ...Missing: PKAuthority | Show results with:PKAuthority
  30. [30]
    Part II. D-Bus API Reference: polkit Reference Manual
    ### Summary of CheckAuthorization Method
  31. [31]
    Authorization Checks: UDisks Reference Manual - Storaged
    Whether the user is authorized is checked using polkit allowing the administrator to configure fine-grained permissions via polkit authorization rules.Missing: shutdown | Show results with:shutdown
  32. [32]
    None
    ### Summary of NetworkManager Polkit Policy (Example: Enable/Disable Networking)
  33. [33]
    Authorization Rules in polkit
    **Summary of Polkit Authorization Rules (June 4, 2012, David Zeuthen)**
  34. [34]
    pkaction: polkit Reference Manual - Freedesktop.org
    DESCRIPTION. pkaction is used to obtain information about registered polkit actions. If called without --action-id then all actions are displayed.
  35. [35]
    pkcheck: polkit Reference Manual - Freedesktop.org
    DESCRIPTION. pkcheck is used to check whether a process, specified by either --process (see below) or --system-bus-name , is authorized for action .
  36. [36]
    PKLA format deprecated. / GNU/Linux Discussion / Arch Linux Forums
    Jul 7, 2013 · So on a recent (not Arch) Linux install I was trying to configure Polkit, and found no inkling nor mention of pklocalauthority.Where is polkit-auth? / Installation / Arch Linux Forums[SOLVED] Polkit problem / Newbie Corner / Arch Linux ForumsMore results from bbs.archlinux.org
  37. [37]
    pklocalauthority - Freedesktop.org
    The Local Authority is the default PolicyKit authority implementation. Configuration for the Local Authority and information pertaining to authorization ...Directory Structure · Evaluation Order · ExamplesMissing: tools pkexec pkaction pkcheck
  38. [38]
    polkit-gnome-0.105 - Linux From Scratch!
    Introduction to Polkit GNOME. The Polkit GNOME package provides an Authentication Agent for Polkit that integrates well with the GNOME Desktop environment.
  39. [39]
    Plasma / Polkit KDE Agent · GitLab
    Project information. Daemon providing a Polkit authentication UI for Plasma.
  40. [40]
    mate-desktop/mate-polkit: Authentication Agent for PolicyKit and MATE
    PolicyKit-mate provides an Authentication Agent for PolicyKit that integrates well with the MATE desktop environment.
  41. [41]
    Authorization Checks: UDisks Reference Manual
    ### Summary of UDisks Polkit Action Definitions
  42. [42]
    bugfix: remove the unused PkPolkitClient now we are using polkit ...
    - * needed to do extra functionality. - *. - * Return value: if we gained the privilege we asked for. - **/. -gboolean. -pk_polkit_client_gain_privilege ( ...
  43. [43]
    systemd-logind.service - Freedesktop.org
    Providing polkit-based access for users for operations such as system shutdown or sleep. Implementing a shutdown/sleep inhibition logic for applications.
  44. [44]
    10 Authorization with Polkit - SUSE Documentation
    Written as JavaScript files and located in two places: /usr/share/polkit-1/rules.d is used for third party packages and /etc/polkit-1/rules.d for local ...Missing: 0.105 2012
  45. [45]
    Assigning Privileges with sudo and PolicyKit - ADMIN Magazine
    A LocalAuthority component checks whether the action requested from PolicyKit is allowed. As the name implies, its decision takes into account the user accounts ...
  46. [46]
    polkit Reference Manual - Freedesktop.org
    the latest version of this documentation can be found at http://www.freedesktop.org/software/polkit/docs/latest/.
  47. [47]
    Polkit Explained: A Critical Security Component with Urgent ...
    Polkit, formerly known as PolicyKit, is a toolkit used in Unix-like operating systems to define and handle authorizations. It serves as a centralized access ...
  48. [48]
    CVE-2021-4034: How PwnKit Exploits Polkit's pkexec - Qualys Blog
    Apr 21, 2025 · CVE-2021-4034, a PwnKit vulnerability, lets unprivileged users gain root access via pkexec. Explore its impact and how to mitigate the risk.Missing: rename | Show results with:rename<|control11|><|separator|>
  49. [49]
    CVE-2018-1116 Detail - NVD
    Jul 10, 2018 · A flaw was found in polkit before version 0.116. The implementation of the polkit_backend_interactive_authority_check_authorization function in ...Missing: 19788 UID overflow<|separator|>
  50. [50]
    CVE-2018-19788 Detail - NVD
    Dec 3, 2018 · A flaw was found in PolicyKit (aka polkit) 0.115 that allows a user with a uid greater than INT_MAX to successfully execute any systemctl command.Missing: 1116 overflow
  51. [51]
  52. [52]
    Fedora 42 Update: polkit-126-3.fc42.1 - package-announce
    Jun 10, 2025 · Name : polkit Product : Fedora 42 Version : 126 Release : 3.fc42 ... * Fri Jun 6 2025 Jan Rybar jrybar@redhat.com - 126-3.1 - fix crash ...
  53. [53]
    [PDF] Security and Hardening Guide - SUSE Linux Enterprise Server 15 SP7
    Jun 12, 2025 · ... AppArmor, SELinux, or the au- diting system. The guide also supports system administrators in hardening an instal- lation. Publication Date ...