리눅스 시스템 호출 setsid()는 우리가 로그인 할 때나 새로운 데몬을 시작하고자 할 때마다 우리가 원하는 언제든지 새로운 세션을 생성 할 수 있다는 것을 알고 있습니다. 그리고 linux-PAM (pluggable authentication module)도 "세션 관리"라는 개념을 가지고 있습니다. 따라서 제 질문은 입니다. Linux PAM의 세션은 setsid()가 작성한 세션과 동일합니까? 그리고 일반적으로 리눅스 PAM 세션에서 무엇을 할 수 있습니까? 감사합니다. .linux-PAM 세션은 linux 프로세스 세션과 동일합니까?
답변
짧은 답변은 아니지만 다른 것들이지만 로그인 세션을 처리하는 프로세스는 양쪽 모두를 처리해야합니다.
PAM 세션은 libpam의 내부 개념입니다. 간단히 말해 PAM을 사용하는 응용 프로그램이 시작될 때 pam_start
을 호출 한 다음 하나 이상의 PAM 함수를 호출하고 차례로 libpam이 PAM 모듈에 전달합니다. 이 중 두 가지는 pam_open_session
및 pam_close_session
입니다.
PAM 세션의 목표는 (일반적으로 대화 형이지만 반드시 필요한 것은 아니지만) 로그인 세션의 설정과 해체를 처리하는 것입니다. 따라서 세션 그룹에 구성된 PAM 모듈은 일반적으로 utmp에 사용자를 추가하고, 로그인 환경마다 (예 : 로컬 tmpdir을 구성하는 경우) 설정하고, Kerberos 자격 증명을 저장하는 등의 작업을 수행합니다. 세션이 닫히면 해당 변경 사항이 취소됩니다.
pam_open_session
을 호출하는 프로세스는 로그인 세션의 길이에 따라 달라야하므로 결론적으로 pam_close_session
을 호출 할 수 있습니다. 이런 일이 일어나는 마술은 없습니다.
setsid
은 훨씬 낮은 수준입니다. setsid
은 일반적으로 tty (제어 터미널)에 연결된 프로세스의 관련 그룹 인 프로세스 그룹과 거의 같은 수준입니다. 그 목적은 주로 쉘 세션 관리를위한 것입니다. 세션은 쉘을 닫을 때 일반적으로 SIGHUP을 수신해야하는 프로세스, 프로세스 관리 (예 : 일시 중단 및 계속) 등으로 관리하고자하는 모든 프로세스입니다. 쉘의 세션 그룹에있는 모든 프로세스는 프로세스 제어 및 신호 처리에 대한 다양한 저수준 함의를 갖는 pseudo-tty로 설정된 제어 터미널을 갖습니다.
- 1. RoR은 PHP 세션과 동일합니까?
- 2. Java 서블릿 및 PHP 용 세션은 동일합니까?
- 3. 세션은
- 4. Linux-Linux 프로세스 기록 확인
- 5. linux - 프로세스 PID를 가져옴
- 6. Linux 프로세스 활동
- 7. suid가있는 Linux 프로세스 디버그
- 8. 세션과 캐싱의 차이점
- 9. 세션은
- 10. CodeIgniter 세션과 쿠키
- 11. Linux 프로세스 간 재진입 세마포어
- 12. ARM linux : 프로세스 주소 공간
- 13. 자신의 프로세스 스케줄링 C/linux
- 14. 프로세스 모니터링 - Python/Ubuntu/Linux
- 15. C++의 Linux 프로세스 로더
- 16. 프로세스 메모리 맵 (Linux Windows)
- 17. linux - 프로세스 간 일대일 통신
- 18. Linux 모듈이 프로세스 함수를 후크합니다.
- 19. JVM 및 Java Linux 프로세스
- 20. Linux/Windows에서 쓰레드/프로세스 비교
- 21. Linux 프로세스 주소 공간 설명?
- 22. 고유 한 프로세스 권한 Linux
- 23. 스티커 세션이 쿠키 기반 세션과 다른가요?
- 24. NHibernate : 상태 저장 세션과 무 상태 세션은 서로 다른 매핑이 필요합니다.
- 25. Passport.js 세션은 로그인 안드로이드
- 26. , 내 세션은
- 27. org.hibernate.SessionException : 세션은
- 28. 세션은 AJAX
- 29. CodeIgniter의 세션은
- 30. 세션은 복원되지