systemd
문제를 일으키는 설치 hidepid=2
옵션 설정을 나타내는 문서가 있습니까 /proc
procfs
?
Gnome wayland 세션을 시작하기 전에 나타나는 오류 메시지의 일부는 다음과 같습니다.
systemd[330]: Started D-Bus User Message Bus.
gnome-session[339]: gnome-session-binary[339]: WARNING: Could not get session id for session. Check that logind is properly installed and pam_systemd is getting use
gnome-session-binary[339]: WARNING: Could not get session id for session. Check that logind is properly installed and pam_systemd is getting used at login.
gnome-session[339]: gnome-session-binary[339]: WARNING: Could not parse desktop file orca-autostart.desktop or it references a not found TryExec binary
gnome-session-binary[339]: WARNING: Could not parse desktop file orca-autostart.desktop or it references a not found TryExec binary
gnome-shell[346]: Can't initialize KMS backend: Could not get session ID: No such file or directory
gnome-session[339]: gnome-session-binary[339]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
gnome-session-binary[339]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
gnome-session-binary[339]: Unrecoverable failure in required component org.gnome.Shell.desktop
gdm[296]: GdmDisplay: display lasted 0.735810 seconds
나는 세션 ID가 PID를 통해 어떻게든 얻어지는 것 같은데, 이는 gnome-session에 표시되지 않습니다.
이 문제는 Arch Linux 배포판에서 발생합니다. 그러나 나는 그것이 상류 문제와 관련이 있다고 생각합니다. 논의된 것 같네요젠투 위키 "systemd 없는 GNOME"특히 Gnome의 wayland 세션은 systemd와 긴밀하게 통합되어 있습니다.
systemd
Gnome wayland 세션과 상호 작용하고 Gnome Xorg 세션보다 로그인에 더 의존적인 logind
마운트 옵션 의 조합인 것 같습니다 .hidepid=2
procfs
또한 @sourcejedi의 답변에 제공된 조언을 따르고 로그인에 대해 /etc/fstab 면제를 만들었습니다. 그러니까 내꺼야 이게 내 항목이야/etc/fstab
proc /proc proc nosuid,nodev,noexec,relatime,hidepid=2,gid=26 0 0
여기서 26은 logind 및 polkitd 그룹이 추가되는 proc 그룹의 GID입니다. 그러나 이것은 문제를 해결하지 못했습니다.
그림에서 알 수 있듯이https://www.freedesktop.org/wiki/Software/systemd/logind/
인터페이스 org.freedesktop.login1.Manager { 방법: GetSession(s session_id에서, 출력 o object_path); GetSessionByPID(PID에서, 출력 o object_path);
PID를 사용하여 SessionID를 쿼리하는 것이 가능한 것으로 보이며, hidepid=2
옵션을 사용하면 자연스럽게 문제가 발생할 수 있습니다.
답변1
https://wiki.archlinux.org/index.php/Security#hidepid
Xorg가 작동하려면 systemd-logind에 대한 예외를 추가해야 합니다.
/etc/systemd/system/systemd-logind.service.d/hidepid.conf [Service] SupplementaryGroups=proc
편집: 문서에는 이것이 필요한 이유가 설명되어 있지 않습니다. 상류를 보세요systemd-logind.service, 서비스 단위는 별도의 사용자로 실행되지 않습니다. (hidepid는 일반적으로 해당되지 않는 것으로 설명됩니다 root
). 그러나암호, 내 생각에는 hidepid가 실제로 CAP_SYS_PTRACE 기능을 사용하는 것 같습니다. systemd-logind.service
CAP_SYS_PTRACE를 포함하지 않는 함수 집합으로 제한됩니다 .
그럼에도 불구하고 이는 Arch Linux의 시스템 PID 1이 hidepid를 사용하여 정상적으로 부팅될 수 있음을 의미합니다. 개인적으로 Xorg가 없더라도 다른 소프트웨어가 동일한 systemd-logind 기능을 사용하는 경우 이 "예외"가 필요한지 걱정됩니다.