web-dev-qa-db-ja.com

デフォルトでは、誰がpkexecでroot権限を取得できますか?

今日、私はpkexecと同様の方法でコマンドラインからSudoを使用して、root権限でプログラムを実行できることを学びました。誰がこれを行うことができるかをpkexecがどのように決定するのか興味があります。

pkexec(1)のmanページには

デフォルトでは、問題のプログラムのアクション定義ファイルが存在しない限り、org.freedesktop.policykit.exec許可が必要です。

これは、policykitに不慣れな人にとっては解析するのが少し難しいです。しかし、少し推測して、/usr/share/polkit-1/actions/org.freedesktop.policykit.policyを見てみましょう。 org.freedesktop.policykit.execセクションには、文字列auth_adminがあります。

polkit(8)を参照すると、以下が表示されます。

auth_admin

管理ユーザーによる認証が必要です。

この意味で「管理ユーザー」とは正確には誰ですか?ユーザーが「管理者」であるかどうかを判断するためにどのようなテストが行​​われますか?構成ファイルを見つけて理解するのは次第に難しくなります。

これは設定可能です。たとえば、Ubuntu 15.04のデフォルトを知りたい。

5
Nate Eldredge

デフォルトでは、/etc/polkit/localauthority.conf.d/にあるこれらのファイルにより、Sudoグループのメンバーであり、rootユーザーです。

$ tail /etc/polkit-1/localauthority.conf.d/*
==> /etc/polkit-1/localauthority.conf.d/50-localauthority.conf <==
# Configuration file for the PolicyKit Local Authority.
#
# DO NOT EDIT THIS FILE, it will be overwritten on update.
#
# See the pklocalauthority(8) man page for more information
# about configuring the Local Authority.
#

[Configuration]
AdminIdentities=unix-user:0

==> /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf <==
[Configuration]
AdminIdentities=unix-group:Sudo;unix-group:admin

最初のファイルはUID 0(root)へのアクセスを許可し、2番目のファイルはグループSudoおよびadminにアクセスを許可します。 adminはUbuntuでは実際には使用されませんが、Sudoは使用され、Sudoへのアクセスを許可するために使用されるグループでもあります。

6
muru