AuthPAM_Enabled on AuthType Basic
AuthName "Subversion Repository" AuthUserFile /etc/shadow Require group www-data
Require valid-user
</Location>
위와 같이 설정을 해주니, shadow의 로그인 정보를 이용하여 svn에 접근할수 있게 되었다.
Apache2: PAM Authentication 리눅스 계정으로 아파치 인증하기
[Q] Apache2 를 이용할 때, 아파치가
설치된 서버의 계정 정보를 이용한 로그인을 제공하려면 어떻게 해야 할까요? 예를 들어, 새로운 전산 프로젝트를 시작하기 위해
Trac 을 개설하고, Trac 을 설치한 서버의 사용자 계정 정보를 이용하여 로그인을 연동시키려면 어떻게 해야 할까요?
[A] PAM Authentication 을 이용하면 됩니다.
Debian / Ubuntu 배포판에서는 간단히 libapache2-mod-auth-pam 모듈을 설치합니다. 그리고 나서
사용자 인증을 필요로 하는 사이트 설정 (httpd.conf 나 각 사이트의 configuration) 의 해당 섹션에 이와
관련된 설정을 하면 됩니다.
우선 AutyType 을 Basic 으로 하는 경우 (가장 간단한 경우) 부터 보겠습니다.
AuthPAM_Enabled on
AuthType Basic
AuthBasicAuthorative off
AuthName “사용자에게 아이디 / 비번을 물어볼 때 표시될 문자열. 따옴표 포함해서 적으면 장땡임.”
Require group “로그인을 허용할 그룹들. 빈칸으로 구분. 따옴표는 적지 마세요.”
Require valid-user # 이건 뭐하는건지 모르겠음
그리고 이 설정을 제대로 이용하기 위해서는 /etc/shadow 파일을 Apache2 가 읽을 수 있어야 합니다. 따라서 이에 대한 설정을 적절한 곳에 해 주도록 합시다. httpd.conf 에 하면 되겠지요? 저같은 경우에는 /etc/apache2/mods-available/auth_pam.load 에 직접 적용하였습니다만 어디까지나 귀차니즘 때문이었습니다.
Group shadow
사실 저 자리에 적어주는 shadow 는 /etc/shadow 파일을 소유하고 있는 그룹명이면 됩니다. 이렇게 할 때 무언가 보안 헛점이 생길 가능성을 원천 봉쇄하기 위해 혹시라도 /etc/shadow 파일에 g+w 가 설정되어 있다면 이를 끄도록 합시다.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-a DIGESTAUTH, --auth=DIGESTAUTH
[projectdir],[htdigest_file],[realm]
--basic-auth=BASICAUTH
[projectdir],[htpasswd_file],[realm]
-p PORT, --port=PORT the port number to bind to
-b HOSTNAME, --hostname=HOSTNAME
the host name or IP address to bind to
--protocol=PROTOCOL http|scgi|ajp
-q, --unquote unquote PATH_INFO (may be needed when using ajp)
--http10 use HTTP/1.0 protocol version (default)
--http11 use HTTP/1.1 protocol version instead of HTTP/1.0
-e PARENTDIR, --env-parent-dir=PARENTDIR
parent directory of the project environments
--base-path=BASE_PATH
the initial portion of the request URL's "path"
-r, --auto-reload restart automatically when sources are modified
-s, --single-env only serve a single project without the project list
-d, --daemonize run in the background as a daemon
--pidfile=PIDFILE When daemonizing, file to which to write pid
--umask=MASK When daemonizing, file mode creation mask to use, in
octal notation (default 022)
아무튼 로그인에 성공(!) 하면은 아래와 같이 "New Ticket" 이라는 녀석이 생겨난다.