root権限なしでgnomeはどのように再起動しますか?


8

Linuxカーネル開発の本を読んでいます。第5章の「システムコールの実装」の77ページに記載されています。

たとえば、capable(CAP_SYS_NICE)は、呼び出し元が他のプロセスのnice値を変更できるかどうかをチェックします。デフォルトでは、スーパーユーザーはすべての機能を所有し、非ルートは何も所有しません。たとえば、次に示すのはreboot()システムコールです。最初のステップが、呼び出しプロセスにCAP_SYS_REBOOTがあることを確認する方法に注意してください。その1つの条件ステートメントが削除された場合、任意のプロセスがシステムを再起動する可能性があります。

ただし、Debian Sidでは、gnomeを使用するか、sudoまたはsuなしで/ sbin / rebootを実行して、マシンを再起動できます。これはどのようにして可能ですか?

たぶんsystemctlで?

ls -l /sbin/reboot 
lrwxrwxrwx 1 root root 14 Jun 28 04:23 /sbin/reboot -> /bin/systemctl

編集:ユーザーグループ

[damian@xvz:~]$ groups 
damian sudo wireshark bumblebee

編集2:systemctl権限

[damian@xvz:~]$ ls -l /bin/systemctl 
-rwxr-xr-x 1 root root 626640 Jun 28 04:23 /bin/systemctl

多分です systemctl。何をls -l /bin/systemctl教えてくれますか?
G-Manは「モニカの復活」を2015

回答:


12

これは、次の名前の承認マネージャーを介して行われpolkitます。

polkitは、特権プログラム(「メカニズム」)がサービスを提供する特権プログラム(「メカニズム」)が、何らかのプロセス間通信メカニズムを通じてサービスを提供することを目的とした承認APIを提供します。

systemdし、polkit非リモートセッションを持つユーザーは、電源関連のコマンドを発行することができます。polkit登録されたすべてのアクションをリストし、それらのいずれかに関する詳細を取得できますpkaction(引数なしで呼び出されると、すべてのアクションIDがリストされます)。
この特定のケースでは、アクションIDは次のorg.freedesktop.login1.rebootように実行します。

pkaction --action-id org.freedesktop.login1.reboot --verbose

出力は次のようになります。

org.freedesktop.login1.reboot:
  description:       Reboot the system
  message:           Authentication is required for rebooting the system.
  vendor:            The systemd Project
  vendor_url:        http://www.freedesktop.org/wiki/Software/systemd
  icon:              
  implicit any:      auth_admin_keep
  implicit inactive: auth_admin_keep
  implicit active:   yes

ここでactive: yesは、アクティブなセッションのユーザーがシステムを再起動することを許可されていることを意味します(polkitページの暗黙の許可の詳細)。セッションがアクティブかどうかは、次の方法で確認できます。

loginctl show-session $ XDG_SESSION_ID --property = Active
Active=yes

1
つまり、実行するプログラムは私の許可なしにマシンを再起動できるということですか?
osdamv 2015

1
@osdamv-実行するすべてのプログラムと同様にrm -rf、ユーザーファイルを作成できます...
don_crissti '17 / 07/17

3
@osdamv sudo --user=jimmyユーザーjimmyがそのpolkitコマンドを実行する権限を持っていない場合、信頼できないすべてのプログラムを実行できることに注意してください...
Bakuriu

このpkactionを実際に実行するにはどうすればよいですか?
ジェレミア

@Geremia-質問が理解できません。
don_crissti
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.