사용자로 로그인할 때마다 새로운 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 및 여러 "좌석"(장치 그룹) 전환을 처리하는 코드가 있습니다.