Introduction to Polkit
Polkit is a toolkit for defining and handling
authorizations. It is used for allowing unprivileged processes to
communicate with privileged processes.
This package is known to build and work properly
using an LFS 12.4 platform.
Package Information
Download (HTTP): https://github.com/polkit-org/polkit/archive/126/polkit-126.tar.gz
Download SHA256 Sum: 2814a7281989f6baa9e57bd33bbc5e148827e2721ccef22aaf28ab2b376068e8
Download MD5 sum: db4ce0a42d5bf8002061f8e34ee9bdd0
Download size: 448 KB
Estimated disk space required: 7.4 MB (with tests)
Estimated build time: 0.2 SBU (with tests; using parallelism=4)
Polkit Dependencies
Required
duktape-2.7.0 and
GLib-2.86.2 (GObject Introspection recommended)
Recommended
libxslt-1.1.43,
Linux-PAM-1.7.1
![[Note]](../images/note.png)
Note
Since systemd-logind
uses PAM to register user sessions, it is a good idea to build
Polkit with PAM support so
systemd-logind
can track Polkit sessions.
Optional
"gtk-doc" and
"python-dbusmock" (required for tests)
Required Runtime Dependencies
Systemd-258.1
Optional Runtime Dependencies
One polkit authentication agent for using polkit in the graphical
environment:
polkit-kde-agent in
"plasma-build" for KDE,
the agent built in
"gnome-shell" for GNOME3,
"polkit-gnome" for XFCE, and
"lxqt-policykit" for LXQt
Kernel Configuration
Some tests need user namespace support. If you are going to run the test
suite, enable the support and recompile the kernel if necessary:
General setup --->
-*- Namespaces support ---> [NAMESPACES]
[*] User namespace [USER_NS]Installation of Polkit
There should be a dedicated user and group to take control
of the polkitd daemon after it is
started. Issue the following commands as the root user:
groupadd -fg 27 polkitd
useradd -c "PolicyKit Daemon Owner" -d /etc/polkit-1 -u 27 \
-g polkitd -s /bin/false polkitd
Install Polkit by running the following
commands:
meson setup build \
--prefix=/usr \
--buildtype=release \
-D man=true \
-D session_tracking=logind \
-D tests=true
Build the package:
ninja -C build
To test the results, first ensure that the system
D-Bus daemon is running,
and both "dbus-python" and
"python-dbusmock" are installed.
Then run:
ninja -C build test
Now, as the root user:
ninja -C build install
Command Explanations
--buildtype=release: Specify a buildtype
suitable for stable releases of the package, as the default may
produce unoptimized binaries.
-D tests=true: This switch allows to run the
test suite of this package. As Polkit is
used for authorizations, its integrity can affect system security.
So it's recommended to run the test suite building this package.
-D os_type=lfs: Use this switch if you did not create
the /etc/lfs-release file or distribution auto
detection will fail and you will be unable to use
Polkit.
-D authfw=shadow: This switch enables the
package to use the Shadow rather than the
Linux PAM Authentication framework. Use it
if you have not installed Linux PAM.
-D introspection=false: Use this option if you are certain
that you do not need gobject-introspection files for polkit, or do not have
installed GLib-2.86.2 with GObject Introspection.
-D man=false: Use this option to disable generating and
installing manual pages. This is useful if libxslt is not installed.
-D examples=true: Use this option to build the example
programs.
-D gtk_doc=true: Use this option to enable building and
installing the API documentation.
Contents
Installed Programs:
pkaction, pkcheck, pkexec,
pkttyagent, and polkitd
Installed Libraries:
libpolkit-agent-1.so and
libpolkit-gobject-1.so
Installed Directories:
/etc/polkit-1,
/usr/include/polkit-1,
/usr/lib/polkit-1,
/usr/share/gtk-doc/html/polkit-1, and
/usr/share/polkit-1
Short Descriptions
pkaction |
is used to obtain information about registered PolicyKit actions
|
pkcheck |
is used to check whether a process is authorized for action
|
pkexec |
allows an authorized user to execute a command as another user
|
pkttyagent |
is used to start a textual authentication agent for the subject
|
polkitd |
provides the org.freedesktop.PolicyKit1 D-Bus
service on the system message bus
|
libpolkit-agent-1.so
|
contains the Polkit authentication
agent API functions
|
libpolkit-gobject-1.so
|
contains the Polkit authorization API functions
|