디렉토리에 패스워드를 거는 방법입니다.
1. 먼저 .htaccess 파일을 하나 만들어야 합니다. 암호인증을 걸고자 하는 디렉토리로 이동하셔서 편집기를 사용하여 .htaccess 라는 파일을 만듭니다. 파일의 내용은 다음과 같습니다.
$ vi .htaccess
———————————————————–
AuthName “타이틀명을 적으세요”
AuthType Basic
AuthUserFile /암호를 걸고자 하는 디렉토리 절대경로/.htpasswd
AuthGroupFile /dev/null
ErrorDocument 401
require valid-user
———————————————————–
2. test 라는 아이디로 인증 과정을 거쳐야만 웹상에서 디렉토리에
들어갈수 있는 경우에 다음과 같이 합니다.
$ htpasswd -c .htpasswd test
Adding password for test
New password:
Re-type new password:
위와 같이 htpasswd -c .htpasswd <생성하고자 하는 아이디> 라고 해주시면 패스워드를 물어보게 됩니다.
-c 옵션은 최초 사용자 생성시만 붙입니다. 그 다음 생성아이디는
그냥 -c 옵션은 빼고 htpasswd .htpasswd <아이디> 라고 해주시면 됩니다.
한줄씩 살펴보겠습니다.
AuthName 뒤에는 폴더에 들어가려고 할때 뜨는 창에 나타나는 내용을 적어줍니다. 반드시 한문장만 표기하십시오.
AutthType Basic 은 그냥 그대로 둡니다.
AuthUserFile /home/본인id/htdocs/admin/.htpasswd 는 htpasswd 파일의 디스크상의 위치를 나타냅니다.(패스를 걸 디렉토리의 경로가 되겠죠.) 이 위치는 ftp접속시에 (ws-ftp 기준) 오른쪽 상단에 나타나는 폴더의 위치입니다.
나머지 아래 부분은 그대로 둡니다..
AuthGroupFile /dev/null
require valid-user
두번째, “htpasswd”의 설명
이 파일은 일종의 유닉스 프로그램으로 .htpasswd 라는 파일을 생성시켜주는 프로그램입니다.
.htpasswd 파일은 패스워드가 기록 되는 파일입니다.
여기에서 중요한 사실은 .htaccess file이 존재하여야만 사용자 인증을 요구하게 되고, 사용자의 실제 확인은 AuthUserFile에서 지정된 file을 통해 이루어진다는 것이다(위의 예에서는 /home/hgkim/public_html/protected/.htpasswd). 그러므로 사용자 인증을 위한 .htpasswd 파일명은 항상 .htpasswd로 지정할 필요 없고, 단지 AuthUserFile에서 지정한 파일명이 되면 되는 것이다. 실제 보안을 위해서는 .htpasswd라는 파일이름을 사용하지 않는 것이 일반적이다. 예를 들면 .htpasswd 대신에 .mypasswdfile로 하는 것이다. 그리고 이 경우에는 절차 2에서
$htpasswd -c .mypasswdfile firstUser
이라고 하여야 하고, .htaccess에서는
AuthUserFile /home/hgkim/public_html/protected/.mypasswdfile
이 되어야 할 것이다.
새로운 사용자의 추가는 다음의 두 과정을 거쳐야 한다.
첫째
/home/hgkim/public_html/protected 에서
$htpasswd .htpasswd secondUser
를 실행하여 .htpasswd에 새로운 사용자(여기서는 user name이 secondUser)를 추가한다.
이를 실행하고 난 뒤에 .htpasswd의 내용을 보면 다음과 같이 될 것이다.
firstUsr:EvWvEDw.MP.9Y
secondUser:QXTwykzTuGnpI
‘:’ 앞에 있는 부분은 user name을 나타내고, 뒷부분은 password에 해당되는 것으로 unix에서 제공되는 crypt()함수를 이용하여 암호화한 내용이다.
둘째
pico나 vi를 이용하여 .htaccess file의 내용중에서
require user firstUser 부분을
require user firstUser, secondUser
로 변경한다.