ユーザーとしてログインするたびに、新しいPAMセッションが作成されます。たとえば、私は人々がpam_group
次のことに慣れていると思います。特定のデバイスにアクセスするには、セッションのプロセスをグループに追加します。、ローカル端末にログインする場合。
pam_systemd
systemd --user
すべてのユーザーのログインセッションで共有されているインスタンスを起動します。たとえば、Fedora 26では、最近すべてのgnome端末プロセスが実際にsystemd --user
。端末コマンドが実行される場所です。個々のログインごとに作成されたシステムセッションの範囲内では実行されません。
PAMセッションは、systemd --user
個々のインスタンスとインスタンスが作成するプロセスにどのような影響を与えますか?
答え1
systemd --user
pam_systemdは起動に使用するために文書化されています[email protected]
。
[email protected]
PAMName=
専用PAMセッションで実行するために使用されます。pam_systemd
特別な場合があり、スタートアップがPAMName=systemd-user
無限に繰り返さ[email protected]
れたり、デッドロックに陥ることはありません。 (また、このプロセスは新しいセッション範囲単位には含まれません。)
$ systemctl cat user@
# /usr/lib/systemd/system/[email protected]
[Unit]
Description=User Manager for UID %i
After=systemd-user-sessions.service
[Service]
User=%i
PAMName=systemd-user
Type=notify
ExecStart=-/usr/lib/systemd/systemd --user
Slice=user-%i.slice
KillMode=mixed
Delegate=yes
TasksMax=infinity
TimeoutStopSec=120s
pam_systemd は、実際には TTY に依存する PAM セッション関連機能を使用しません。代わりにlogind
ACLを使用してログイン権限を付与してください。ユーザー特定のデバイスにアクセスします。 PAMセッションが開いている限り、どのそのUIDを持つプロセスはそのUIDにアクセスできます。
Logindには、このユーザープロセスがX Windowsなどのディスプレイサーバー用の特定のデバイスを開くことを可能にするDBusインターフェースもあります。 VTと複数の「座席」(デバイスグループ)の切り替えを処理するコードがあります。