Polkit-123
Polkit の概要
Polkit
パッケージは、権限情報を定義し操作するためのツールキットです。 非特権 (unprivileged) プロセス から特権
(privileged) プロセスへのアクセスを行う際に利用されます。
注記
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS
開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
パッケージ情報
Polkit の依存パッケージ
必須
GLib-2.78.3
Recommended
duktape-2.7.0, gobject-introspection-1.78.1,
libxslt-1.1.39, Linux-PAM-1.5.3, and
elogind-252.9
注記
Since elogind uses PAM to
register user sessions, it is a good idea to build Polkit with PAM support so elogind can track
Polkit sessions.
任意
GTK-Doc-1.33.2, dbusmock-0.30.0, and SpiderMonkey from
Firefox-115.5.0 (can be used in place of duktape)
Optional Runtime
Dependencies
One polkit authentication agent for using polkit in the graphical
environment: polkit-kde-agent in
Plasma-5.27.10 for KDE, the agent built in
gnome-shell-45.2 for GNOME3, polkit-gnome-0.105 for XFCE, and lxqt-policykit-1.4.0 for LXQt
Polkit のインストール
polkitd
デーモンの起動には、これを制御するための専用のユーザーおよびグループが必要です。 そこで root
ユーザーになって以下を実行します。
groupadd -fg 27 polkitd &&
useradd -c "PolicyKit Daemon Owner" -d /etc/polkit-1 -u 27 \
-g polkitd -s /bin/false polkitd
If using SpiderMonkey from
Firefox-115.5.0, make the following change (see Command
Explanations below for more information):
sed -e '/mozjs/s/102/115/' -i meson.build &&
sed -e 's/JS_Init/JS::DisableJitBackend(); &/' \
-i src/polkitbackend/polkitbackendjsauthority.cpp
一般ユーザーとして以下のコマンドを実行し Polkit
をビルドします。
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
-Dman=true \
-Dsession_tracking=libelogind \
-Dtests=true &&
ninja
To test the results, first ensure that the system D-Bus daemon is running, and both D-Bus Python-1.3.2 and dbusmock-0.30.0 are installed. Then run
ninja test.
root
ユーザーになって以下を実行します。
ninja install
コマンド説明
sed -e '/mozjs/s/102/115/'
meson.build: Allow building this package with
SpiderMonkey from Firefox 115 ESR releases.
sed -e
's/JS_Init/JS::DisableJitBackend(); &/' ... :
The JIT compiling of SpiderMonkey from
Firefox-115.5.0 needs W+X mapping which is dangerous and is not
permitted by the systemd unit file
shipped within the polkit package. This command is not strictly
needed on systems based on sysvinit but it still improves security.
It has no effect if building polkit with the recommended duktape-2.7.0 Javascript engine.
--buildtype=release
:
本パッケージの安定版リリース向けに適したビルドタイプを指定します。
デフォルトにしていると、最適化されていないバイナリを生成する場合があるためです。
-Dtests=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.
-Djs_engine=mozjs
: This switch allows
using the SpiderMonkey from
Firefox-115.5.0 JavaScript engine instead of the duktape-2.7.0 JavaScript engine.
-Dos_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.
-Dauthfw=shadow
: 本スイッチは認証フレームワークとして
Linux-PAM ではなく Shadow を使うことを指定します。 Linux-PAM をインストールしていない場合は、本スイッチを用いてください。
-Dintrospection=false
: Use this option
if you are certain that you do not need gobject-introspection files
for polkit, or do not have gobject-introspection installed.
-Dman=false
: Use this option to disable
generating and installing manual pages. This is useful if libxslt
is not installed.
-Dexamples=true
: Use this option to
build the example programs.
-Dgtk_doc=true
: Use this option to
enable building and installing the API documentation.
パッケージ構成
インストールプログラム: pkaction, pkcheck, pkexec, pkttyagent, polkitd
インストールライブラリ: libpolkit-agent-1.so, libpolkit-gobject-1.so
インストールディレクトリ: /etc/polkit-1, /usr/include/polkit-1,
/usr/lib/polkit-1, /usr/share/gtk-doc/html/polkit-1,
/usr/share/polkit-1
概略説明
pkaction
|
登録されている PolicyKit アクションについての情報を取得するために用います。
|
pkcheck
|
プロセスがアクションを行う権限を有するかどうかをチェックするために用います。
|
pkexec
|
認証されたユーザーが、他ユーザーとなってコマンド実行することを許可します。
|
pkttyagent
|
プロセスなどに対して、テキスト情報による権限エージェントを開始します。
|
polkitd
|
システムメッセージバス上にて、org.freedesktop.PolicyKit1 なる D-Bus サービスを提供します。
|
libpolkit-agent-1.so
|
Polkit の認証エージェント API
関数を提供します。
|
libpolkit-gobject-1.so
|
Polkit 認証 API 関数を提供します。
|