htpasswd - basic authentication에 사용할 사용자파일을 관리한다 - Apache HTTP Server

Apache Server 2.0

Apache HTTP Server Version 2.0

<-

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을 지원하는 스크립트도 있다.
top

개요

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

top

옵션

-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 옵션과 같이 사용할 수 있다.
top

종료코드

htpasswdpasswdfile에 사용자명과 암호를 성공적으로 추가하거나 수정한 경우 ("참") 종료코드 0을 반환한다. htpasswd는 파일에 접근할때 문제가 발생한 경우 1을, 명령행 형식이 잘못된 경우 2를, 입력한 암호와 확인차 다시 입력한 값이 일치하지 않은 경우 3을, 명령이 중단된 경우 4를, (사용자명, 파일명, 암호, 최종 계산결과) 값이 너무 긴 경우 5를, 사용자명에 허용하지않는 문자가 포함된 경우 제한 절 참고) 6를, 파일이 올바른 암호파일이 아닌 경우 7을 반환한다.

top

예제

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 알고리즘으로 암호화하여 지정한 파일에 저장한다.

top

보안상 고려할 점

htpasswd 등이 관리하는 웹 암호파일이 웹서버의 URI 공간에 있으면 안된다. 즉, 브라우저가 이 파일을 볼 수 없어야 한다.

명령행에 암호화하지않은 암호를 사용하기때문에 -b 옵션을 추천하지 않는다.

top

제한

Windows와 MPE 플래폼은 htpasswd가 암호화하는 암호의 길이를 255 문자로 제한한다. 더 긴 암호는 255자에서 짤린다.

htpasswd가 사용하는 MD5 알고리즘은 아파치 소프트웨어 특유의 것이다. 이를 사용하여 암호화한 암호를 다른 웹서버에서 사용할 수 없다.

사용자명은 255 바이트로 제한되고 : 문자를 포함할 수 없다.