>> Delete No. 2322 article
No. CVS Server 설정하기(패스워드 인증 방식)

등록 2002-03-17 16:50:00     조회 4
이름 버거    

		때로는 모든 상황을 염두에 두고 쓰여진 자세한 문서보다는, 어떤 예제 상
황을 가정에 두고 따라하기 식으로 쓰여진 글이 도움이 될 때가 있더군요.
그래서 이번에 CVS 서버를 설정하면서 겪은 어려움을 바탕으로 이런 글을
작성해보았습니다.
 서버 설정 외에 CVS 기본 사용법에 대해서는 우선 다른 문서를 참고하시기
바랍니다.
   cvsuser, cvsuser2 두개의 cvs 계정 사용자가 pubcvs라는 시스템 계정을 사
용하여, 패스워드 인증 방식으로 CVS 서버에 접속하도록 설정하겠습니다.
익명, 읽기 전용으로 anonymous 계정도 추가하겠습니다.
(여기서 시스템 계정은 오직 pubcvs만 추가하면 됩니다)
데이터 저장을 위한 창고 디렉토리로는 /usr/cvs를 사용하겠습니다.
  1. 먼저 창고(repository) 디렉토리를 생성하고 초기화를 합니다.
 # mkdir /usr/cvs
# cvs -d /usr/cvs init
# CVSROOT=/usr/cvs; export CVSROOT
  테스트 모듈을 만들어 둡니다. 테스트에 사용할 파일들이 들어있는 디렉토
리에 들어가서 다음과 같이 쳐줍니다. (나중에 테스트 직전에 만들 때는,
접근 권한 설정에 신경을 써줘야 하겠죠?)
 # cvs import test tester none
  2. 인터넷 데몬을 통해 접속할 수 있게, /etc/xinetd.d 디렉토리에 다음과
같은 내용의 cvspserver라는 파일을 추가시킵니다. --allow-root=옵션 뒤에
 창고 디렉토리의 경로가 나와야 합니다.
 service cvspserver
{
    disable = no
    flags           = REUSE;
    socket_type     = stream;
    wait            = no;
    user            = root;
    server          = /usr/bin/cvs
    server_args     = -f --allow-root=/usr/cvs pserver
    log_on_failure  += USERID
}
  3. pubcvs라는 시스템 계정을 추가시킵니다.
 # adduser pubcvs
  4. /etc/group 파일을 편집하여 pubcvs가 pubcvs 그룹에 포함되도록 합니다
.
 pubcvs:x:502:
=> pubcvs:x:502:pubcvs
  5. cvs 계정 설정을 위해, /usr/cvs/CVSROOT 디렉토리에 passwd 파일을 만
듭니다.
패스워드가 들어가는 부분에는, 시스템 패스워드가 인코딩되는 방식대로 인
코딩된 패스워드가 들어가야 하는데, /etc/shadow 파일에서 원하는 패스워
드를 가진 사용자의 패스워드를 갖다가 붙이면 됩니다.
cvs에서 패스워드 관리가 안전하지 못하므로, 임시로 다른 패스워드로 설정
 후 갖다붙이고 다시 원래의 패스워드로 복구시키는 것이 나을 것 입니다.
패스워드가 들어가는 부분이 비어있을 경우에는, 어떤 패스워드를 입력해도
 접속이 가능하게 됩니다.(익명 계정)
 anonymous::pubcvs
cvsuser:인코딩된패스워드:pubcvs
cvsuser2:인코딩된패스워드:pubcvs
  6. anonymous 계정을 읽기 전용으로 하기 위해서, /usr/cvs/CVSROOT 디렉토
리에 readers 파일을 만들고, 그 안에 anonymous라고 써줍니다.(마지막에
빈줄 하나가 들어가야 하는게 중요하다고 합니다)
 # vi /usr/cvs/CVSROOT/readers
 anonymous
  7. 창고 디렉토리 이하의 소유자 및 소유그룹을 pubcvs로 바꿔주고, 접근
모드를 사용자 및 그룹에 대해 읽기, 쓰기, 실행이 가능하도록 해줍니다.
 chown -R pubcvs:pubcvs /usr/cvs
chmod ug+rwx /usr/cvs /usr/cvs/CVSROOT
  8. 인터넷 데몬을 다시 시작합니다.
 # killall xinetd
# xinetd -stayalive
  9. 제대로 설정되었는지 테스트를 해봅니다.
 로그인:
# cvs -d :pserver:cvsuser@localhost:/usr/cvs login
=> 패스워드 입력 후, 아무 에러 없이 프롬프트로 떨어지면 성공
 체크아웃:
# cvs -d :pserver:cvsuser@localhost:/usr/cvs checkout test
=> test 디렉토리가 생성되면서, 그 밑으로 파일들이 받아지면 성공
  로그인까지 잘 되는데, 체크아웃에서 permission denied라고 나오면서 안
되는 경우에는, 재부팅하고 하니까 잘 되더군요(윈도우도 아니구 원..-_-)
xinetd 재시작하는 부분이 문제가 있는 것 같더라구요. 잘 되다가도 xinetd
 재시작하면 또 불통됩니다. (사실 이거 때문에 시간을 가장 많이 소비했습
니다. 이 글의 주제 되겠네요.. 정말이지 티오대로 하라는대로 했는데, 뭔
가 안 될 때는 잠시 쉬면서 맘을 접었다가, 다시 해보라는 말이 잘 적용되
는 경우였던 것 같네요)
   그 밖의 더 자세한 내용은 다음에서..
 http://kldp.org/KoreanDoc/html/CVS_Tutorial-KLDP/x144.html http://www.cvshome.org/  말그대로 1원짜리 팁이라
도 되길 바라며..^^--#ill'emall
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved