pam_selinux.so
[
open
] [
close
] [
restore
] [
nottys
] [
debug
] [
verbose
] [
select_context
] [
env_params
] [
use_current_range
]
pam_selinux는 다음으로 실행하는 프로세스의 기본 SELinux 보안 문맥을 설정하는 PAM 모듈이다.
새 세션이 시작될 때 모듈의 open_session 부분에서 다음 execve(2) 호출에 쓸 실행 보안 문맥, 제어 터미널의 파일 보안 문맥, 새 커널 키링 생성에 쓸 보안 문맥을 계산해서 설정한다.
세션이 끝날 때 모듈의 close_session 부분에서 모듈의 open_session의 변경 전에 적용되고 있던 원래 보안 문맥들을 복원한다.
PAM 스택에 pam_selinux를 추가하는 게 응용을 실행하는 다른 PAM 모듈의 동작을 방해하게 될 수도 있다. 이를 방지하려면 PAM 스택에서 그런 모듈들 뒤에 pam_selinux.so open 행을 두고, 또 그런 모듈들 앞에 pam_selinux.so close 행을 둬야 한다. 그런 배치가 가능하지 않은 경우에는 pam_selinux.so restore 행을 이용해 원래 보안 문맥들을 임시로 복원할 수 있다.
open
모듈의 open_session 부분만 실행한다.
close
모듈의 close_session 부분만 실행한다.
restore
모듈의 open_session 부분에서, 보안 문맥들을 앞선 모듈 호출 전의 상태로 잠시 복원한다. restore 옵션 없이 이 모듈을 한 번 더 호출하면 다시 새 보안 문맥들을 설정하게 된다.
nottys
제어 터미널의 보안 문맥을 설정하지 않는다.
debug
syslog(3)를 통한 디버그 메시지를 켠다.
verbose
보안 문맥 설정 시 사용자에게 알려 준다.
select_context
원하는 보안 문맥 역할을 사용자에게 물어 본다. MLS가 켜져 있으면 민감도 단계도 묻는다.
env_params
PAM 환경에서 보안 문맥 역할을 얻는다. MLS가 켜져 있으면 민감도 단계도 얻는다. 이 옵션과 select_context 옵션은 상호 배타적이다. 해당하는 PAM 환경 변수는 SELINUX_ROLE_REQUESTED, SELINUX_LEVEL_REQUESTED, SELINUX_USE_CURRENT_RANGE다. 앞의 둘은 이름 그대로이며, 마지막 변수를 1로 설정하면 모듈 명령행에 use_current_range를 지정한 것처럼 PAM 모듈이 동작하게 된다.
use_current_range
사용자 문맥에 기본 단계 대신 현재 프로세스의 민감도 단계를 사용한다. 또한 민감도 단계를 사용자에게 묻거나 PAM 환경에서 얻지 않게 한다.
보안 문맥을 성공적으로 설정했다.
유효한 보안 문맥을 얻거나 설정할 수 없다.
시스템에서 알지 못하는 사용자다.
메모리 할당 오류.