▶ htpasswd 란?
특정 페이지를 제한하고 싶을때 홈페이지 특정 디렉토리에 패스워드 장치를 걸어 두고 특정 사용자에게 ID와 비밀번호를 발급하여 해당 디렉토리 접근시 ID와 비밀번호를 제시하여 특정 사용자만 통과할 수 있도록 하는 기능을 말합니다.
▶ .htaccess 파일 만들기
.htaccess 파일을 이용하여 가능합니다. 먼저 접근을 제어하고 싶은 디렉토리 내에 .htaccess 파일을 아래와 같은 내용으로 생성합니다 .htaccess 파일 만들기
ex) test라는 디렉토리에 특정 사용자만 접근가능하도록 하고 admin이라는 계정을 만들고
happy라는 계정을 추가합니다.
/home/username/test/.htaccess
------------------------------------------------------------------
AuthName '사용자인증연습'
AuthType Basic
AuthUserFile /home/username/test/.htpasswd
AuthGroupFile /dev/null
ErrorDocument 401 '' 죄송합니다!! 당신은 정식 사용자가 아닙니다.'
<Limit GET>
require valid-user
</Limit>
------------------------------------------------------------------
.htaccess파일을 생성후 htpasswd(아파치를 설치한 디랙토리의 bin 디랙토리에 가면 있음)라는 유틸리티를 실행시켰을때 .htpasswd라는 파일이
자동으로 생성됩니다.
특정 페이지를 제한하고 싶을때 홈페이지 특정 디렉토리에 패스워드 장치를 걸어 두고 특정 사용자에게 ID와 비밀번호를 발급하여 해당 디렉토리 접근시 ID와 비밀번호를 제시하여 특정 사용자만 통과할 수 있도록 하는 기능을 말합니다.
▶ 사용자 만들기와 추가하기
1) .htaccess파일 생성후 htpasswd(아파치를 설치한 디랙토리의 bin 디랙토리에 가면 있음) 명령어를 이용하여 해당 디렉토리에 접근가능한 사용자 계정 및 패스
워드를 생성합니다.
Usage:
htpasswd -c .htpasswd admin [enter]
Adding password for admin.
New password: <비밀번호입력>
Re-type new password: <비밀번호입력확인>
2) test사용자 계정 추가
Usage:
htpasswd .htpasswd test [enter]
Adding password for admin.
New password: <비밀번호입력>
Re-type new password: <비밀번호입력확인>
'-c' 옵션은 초기화후 새롭게 적용될때 이용되는 옵션입니다.
만약 htpasswd -c .htpasswd test 적용하게 되면 admin이 아닌 test로 리셋됩니다.
[아파치 서버 설정]
http://www.superuser.co.kr/apache/user_quote/page01.htm
cf. http://www.superuser.co.kr/unixwebhosting/htpasswd/index.htm
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>