pam_xauth.so
[
debug
] [
xauthpath=/path/to/xauth
] [
systemuser=UID
] [
targetuser=UID
]
pam_xauth는 사용자 간에 xauth 키("쿠키"라고도 함)를 전달하기 위해 만들어진 PAM 모듈이다.
pam_xauth가 없으면 xauth가 켜져 있고 사용자가 su(1) 명령으로 다른 사용자의 권한을 획득하는 경우에 그 사용자가 원래 사용자의 X 디스플레이에 접근할 수 없게 된다. 디스플레이에 접근하는 데 필요한 키를 새 사용자가 가지고 있지 않기 때문이다. pam_xauth는 세션이 생성될 때 su를 실행하는 사용자(출발 사용자)의 키를 그 사용자가 획득하는 신원의 사용자(대상 사용자)에게로 전달하고 세션이 사라질 때 그 키를 파기해서 문제를 해결해 준다.
그래서 예를 들어 xterm 세션에서 su(1)를 실행할 때 xauth(1) 명령이나 ~/.Xauthority 파일을 따로 건드리지 않고도 X 프로그램을 실행할 수 있게 된다.
xauth가 $DISPLAY 환경 변수에 연결된 키를 나열해 줄 수 있는 경우에만 pam_xauth가 키를 전달하게 된다.
호출측 사용자 홈 디렉터리의 ~/.xauth/export
와
대상 사용자 홈 디렉터리의 ~/.xauth/import
로
기초적인 접근 제어가 가능하다.
사용자에게 ~/.xauth/import
파일이 있으면
그 파일에 나열된 사용자로부터만 쿠키를 받게 된다.
~/.xauth/import
파일이 없으면 다른 어떤
사용자로부터도 쿠키를 받아들이게 된다.
사용자에게 ~/.xauth/export
파일이 있으면
그 파일에 나열된 사용자로만 쿠키를 전달하게 된다.
~/.xauth/export
파일이 없으며 호출측
사용자가 root가 아니면 다른 어떤
사용자로도 쿠키를 전달하게 된다. ~/.xauth/export
파일이 없으며 호출측 사용자가 root면
다른 사용자로 쿠키를 전달하지 않는다.
import 파일과 export 파일 모두 (* 같은) 와일드카드를 지원한다. import 파일과 export 파일 모두 비어 있을 수 있으며, 어떤 사용자도 허용하지 않음을 나타낸다.
debug
디버그 정보 찍기.
xauthpath=/path/to/xauth
xauth 프로그램의 경로 지정. (기본적으로
/usr/X11R6/bin/xauth
,
/usr/bin/xauth
,
/usr/bin/X11/xauth
중 한 경로에 있어야 한다.)
systemuser=UID
"시스템" 사용자에 속한다고 상정할 가장 높은 UID 값 지정. pam_xauth는 root, 그리고 "targetuser" 지정 시 그 사용자까지는 제외하고 UID가 이 값 이하인 사용자에게 크리덴셜 전달을 거부한다.
targetuser=UID
시스템 사용자 검사에서 예외로 하는 대상 UID 지정.
메모리 버퍼 오류.
import/export 파일 권한 거부됨.
사용자 이름 내지 UID를 알아낼 수 없거나 사용자 홈 디렉터리에 접근할 수 없음.
성공.
알 수 없는 사용자.
다음 행을 /etc/pam.d/su
에 추가해서
su 호출 시 사용자 간에 xauth 키를 전달할 수 있다.
session optional pam_xauth.so