Apache HTTP Server Version 2.2
htpasswd - basic authentication에 사용할 사용자파일을 관리한다
htpasswd
는 HTTP basic authentication에 사용할
사용자명과 암호를 저장하는 일반파일을 생성하고 수정한다.
htpasswd
가 파일을 쓰거나 읽을 수 없다면,
오류상태를 반환하고 아무것도 수정하지 않는다.
아파치 웹서버는 자원을 htpasswd
로 만든 파일에
기록한 사용자에게만 보여줄 수 있다. 이 프로그램은 사용자명과
암호를 저장하는 일반 파일을 관리한다. 그러나 다른 자료저장
방식을 위해 암호 정보를 암호화하여 저장할 수 있다. DBM
데이터베이스를 사용하려면 dbmmanage를 참고하라.
htpasswd
는 아파치 특유의 MD5 혹은 시스템의
crypt()
를 사용하여 암호를 암호화한다.
htpasswd
가 관리하는 파일은 두 종류의 암호를
모두 저장할 수 있다. 즉, 같은 파일에 MD5로 암호화한 암호를
사용하는 사용자와 crypt()
로 암호화한 암호를
사용하는 사용자 정보 모두 나올 수 있다.
이 manpage는 명령행 옵션만을 설명한다. httpd에서 사용자인증을 설정하는 지시어에 대한 설명은 아파치 배포본에 포함되있고 http://httpd.apache.org/에서도 볼 수 있는 아파치 설명서를 참고하라.
참고
- httpd
- 배포본에는 SHA1을 지원하는 스크립트도 있다.
개요
htpasswd
[ -c ]
[ -m ]
[ -D ] passwdfile username
htpasswd -b
[ -c ]
[ -m |
-d |
-p |
-s ]
[ -D ] passwdfile username
password
htpasswd -n
[ -m |
-d |
-s |
-p ] username
htpasswd -nb
[ -m |
-d |
-s |
-p ] username password
옵션
-b
- 배치(batch) 모드를 사용한다. 예를 들어, 암호를 물어보지않고 명령행에서 받는다. 명령행에 암호가 직접 드러나므로, 이 옵션은 매우 조심해서 사용해야 한다.
-c
- passwdfile을 만든다. passwdfile이
이미 존재한다면, 덮어쓴다. 이 옵션을
-n
옵션과 같이 사용할 수 없다. -n
- 파일을 수정하지않고 결과를 표준출력으로 출력한다.
아파치가 문서이외의 곳에 생성한 암호를 저장할때 유용하다.
(항상 첫번째 아규먼트인) passwdfile 아규먼트가
없기때문에 명령행 문법이 다르다.
-c
옵션과 같이 사용할 수 없다. -m
- MD5를 사용하여 암호를 암호화한다. Windows, Netware, TPF에서 기본값이다.
-d
crypt()
를 사용하여 암호를 암호화한다. Windows, Netware, TPF를 제외한 모든 플래폼에서 기본값이다. 모든 플래폼의htpasswd
가 이 형식을 지원할 수는 있지만, Windows, Netware, TPF의 httpd 서버는 이 형식을 지원하지 않는다.-s
- 암호를 SHA 암호화한다. LDAP 디렉토리교환형식(ldif)을 사용하여 Netscape 서버로 정보를 보내거나 거져올때 유용하다.
-p
- 암호를 그대로 사용한다. 모든 플래폼의
htpasswd
가 지원하지만, Windows, Netware, TPF의 httpd 데몬만이 일반 암호를 받는다. -D
- 사용자를 삭제한다. htpasswd 파일에 사용자명이 있다면 삭제한다.
passwdfile
- 사용자명과 암호를 저장하는 파일명.
-c
를 사용한 경우 파일이 없다면 새로 만들고, 있다면 덮어쓴다. username
- passwdfile에 만들거나 수정할 사용자명. username이 이 파일에 없다면 항목을 추가한다. 있다면 암호를 수정한다.
password
- 암호화하여 파일에 저장할 암호. 오직
-b
옵션과 같이 사용할 수 있다.
종료코드
htpasswd
는 passwdfile에 사용자명과
암호를 성공적으로 추가하거나 수정한 경우 ("참") 종료코드
0을 반환한다. htpasswd
는 파일에 접근할때 문제가
발생한 경우 1
을, 명령행 형식이 잘못된 경우
2
를, 입력한 암호와 확인차 다시 입력한 값이
일치하지 않은 경우 3
을, 명령이 중단된 경우
4
를, (사용자명, 파일명, 암호, 최종 계산결과)
값이 너무 긴 경우 5
를, 사용자명에 허용하지않는
문자가 포함된 경우 제한 절 참고)
6
를, 파일이 올바른 암호파일이 아닌 경우
7
을 반환한다.
예제
htpasswd /usr/local/etc/apache/.htpasswd-users jsmith
사용자 jsmith
의 암호를 추가하거나 수정한다.
사용자에게 암호를 물어본다. Windows 시스템에서 실행하면
암호를 아파치 특유의 MD5 알고리즘을 사용하여 암호화하고,
아니면 시스템의 crypt()
함수를 사용한다. 파일이
없다면 htpasswd
는 아무 일도 하지않고 오류를
낸다.
htpasswd -c /home/doe/public_html/.htpasswd jane
새로 파일을 만들고 그 파일에 사용자 jane
을
추가한다. 사용자에게 암호를 물어본다. 파일이 있지만 읽거나
쓸 수 없다면, htpasswd
는 파일을 수정하지않고
문구를 출력한후 오류상태를 반환한다.
htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve
명령행의 암호(Pwd4Steve
)를 MD5 알고리즘으로
암호화하여 지정한 파일에 저장한다.
보안상 고려할 점
htpasswd
등이 관리하는 웹 암호파일이 웹서버의
URI 공간에 있으면 안된다. 즉, 브라우저가 이 파일을
볼 수 없어야 한다.
명령행에 암호화하지않은 암호를 사용하기때문에 -b
옵션을 추천하지 않는다.
제한
Windows와 MPE 플래폼은 htpasswd
가 암호화하는
암호의 길이를 255
문자로 제한한다. 더 긴 암호는
255자에서 짤린다.
htpasswd
가 사용하는 MD5 알고리즘은 아파치
소프트웨어 특유의 것이다. 이를 사용하여 암호화한 암호를
다른 웹서버에서 사용할 수 없다.
사용자명은 255
바이트로 제한되고 :
문자를 포함할 수 없다.