기타 CVS Linux Setting [1]

황제낙엽 2007.03.01 00:55 조회 수 : 773 추천:61

http://blog.naver.com/mickey109/60006489852CVS Linux Setting

RPM 으로 CVS를 설치 후 , 셋팅
mkdir /home/CVS
cvs -d /home/CVS init  - Repository 초기화(즉, CVSROOT란 디렉토리와 CVS 에서 기본적으로 쓰는 파일들이 생긴다)
groupadd cvs
vi /etc/group
 
내용중 cvs:*:510:flazma,pizza   그룹 구성원 추가

그러면 inetd로 CVS 접속을 허용하는 방법을 알아보자. 우선 CVS가 사용하는 포트 번호(2401번)를 등록해야 한다.
/etc/services에 다음과 같은 줄이 있는지 살펴 보자.

cvspserver      2401/tcp

만일 없다면 위의 내용을 추가하면 된다. 다음은 실제로 해당 포트를 열어줄 차례인데, 이는 씨스템이 inetd를 쓰고 있는지,
xinetd를 쓰고 있는지에 따라 설정 방법이 다르다.

1. inetd의 경우는 /etc/inetd.conf에 다음 내용을 추가한다.

cvspserver stream tcp nowait root /usr/bin/cvs cvs

   --allow-root=/home/cvs pserver


편의상 두 줄로 나타냈으나, 실제 파일에는 한 줄로 들어가야 한다. 만약 tcpd를 사용한다면 위의 줄 대신 다음을 추가한다.

cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs

   --allow-root=/home/cvs pserver


물론 /usr/bin/cvs나 /usr/sbin/tcpd는 실제로 이들 명령이 위치하는 절대 경로로 써 주어야 한다.
새로운 설정 내용을 반영하려면 inetd를 재시작하여야 한다. inetd의 프로세스 ID가 357이라면 다음과 같이 HUP 신호를 보내면 된다.

# kill -HUP 357

2. xinetd를 쓴다면 /etc/xinetd.d에 cvspserver란 이름으로 별도의 파일을 만들어야 한다. 파일 내용은 다음과 같다.

# default: on
# description: The cvspsever serves CVS Passowrd Server sessions; it uses 
#          unencrypted username/password pairs for authentication.
service cvspserver
{
        disable         = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        protocol             = tcp
        user            = root
        server          = /usr/bin/cvs
        server_args     = -f --allow-root=/home/CVS pserver
        log_on_failure  += USERID
}


inetd의 경우와 마찬가지로 /usr/bin/cvs는 cvs 명령의 절대 경로, /home/CVS는 저장소의 위치로 바꿔 준다.
xinetd를 재시작하는 방법도 inetd와 동일하다. 우선 xinetd의 프로세스 ID(357이라 가정한다)를 알아낸 후, HUP 신호를 보내자.

# kill -HUP 357
 
이제 접속 포트는 열어두었으니, 개발자들에게 CVS 계정을 발급하는 일만 남았다.
암호 인증 방식을 이용하는 경우, 계정과 암호는 저장소의 CVSROOT 디렉토리 밑에 passwd란 이름의 파일에 저장된다. 여기에서는 /home/CVS/CVSROOT/passwd가 될 것이다.
하지만 이 파일은 처음에는 존재하지 않는다. 그러므로 직접 만들어주어야 하는데, 먼저 예를 하나 보도록 하자.

flazma:YxNPCzaM/WCp2:cvs
pizza:Yw2najHG5cLfo:cvs


각 줄은 한 사용자에 대한 정보를 담고 있다. 줄은 ':'을 경계로 다시 세 부분으로 나뉘는데 첫 부분이 사용자의 CVS 계정 이름(씨스템 계정과는 무관하다), 그 다음은 암호, 그리고 마지막은 씨스템 계정 이름이다.
즉, 이 파일에는 현재 flazma 와 pizza이라는 두 사용자가 등록되어 있고, 이들이 CVS 이용시에는 cvs란 씨스템 계정의 권한을 갖는 것이다.
암호부분은 유닉스 씨스템에서 전통적으로 사용되는 crypt 함수를 이용하여 변환된 값이 저장되어 있다.
새로운 사용자를 추가하려면 같은 형식으로 한 줄을 추가해 주면 된다. 하지만 간단한 방법으로 /etc/shadow 파일 안의 내용중 암호화된 부분을 사용하여 /home/CVS/CVSROOT/passwd 로 만들면 된다
 
마지막으로 필요한 것은 cvs란 씨스템 계정에 저장소에 대한 읽기 및 쓰기 권한을 주는 것이다.
앞 절과 일관성을 유지하려면 cvs란 그룹을 만들고 cvs란 사용자를 cvs 그룹에 추가한 후, cvs 그룹에 대한 권한을 같은 방법으로 열어주면 된다.

# chgrp -R cvs /home/CVS
# chmod ug+rwx /home/CVS /home/CVS/CVSROOT
로 권한 설정
 
CVS에 접근(login)
cvs -d :pserver:flazma@localhost:/home/CVS login
 
환경 변수 등록 (bash 쉘)
export CVSROOT=:pserver:flazma@localhost:/home/CVS
 
 
작업공간 생성 : CVS서버로부터 모듈들을 불러와 클라이언트에 작업공간을 생성한다.
※주의 : 현재 CVSN( Server ) 와 Linux CVS ( Server ) 에서 커맨드 가 안 먹는 것이 있음
cvs ls 라는 커맨드가 CVSNT에서는 먹히나 , Linux CVS에서는 안먹힘 , 셋팅상의 문제일수도??? 즉, 서버의 모듈 리스트를 가져올 수가 없음


번호 제목 글쓴이 날짜 조회 수
79 [Gemini] branch 와 worktree 의 차이점 황제낙엽 2026.09.27 15
78 버전 관리 이슈 케이스 (1) : 장기적으로 pull 하지 않은 개발자의 대량의 merge 이슈 발생 file 황제낙엽 2026.05.13 480
77 sourcetree - 특정 커밋으로 프로젝트 변경 황제낙엽 2025.08.26 676
76 git clone시 보안에 취약하지만 사용자 아이디와 비번 저장해놓고 사용하기 황제낙엽 2025.08.05 683
75 cherry pick 내가 원하는 커밋만 가져오기 file 황제낙엽 2022.02.17 1051
74 Git Extensions Online Manual 황제낙엽 2022.02.17 5441
73 TortoiseSVN 초보자 가이드 file 황제낙엽 2022.02.09 973
72 [TortoiseSVN] SVN Revision 되돌리는 법 file 황제낙엽 2022.02.09 2608
71 심플한 커밋 이력 조회 (git log --pretty=format) [2] 황제낙엽 2022.01.12 1078
70 Git 특정 폴더 및 파일만 clone 하기 (작성중) 황제낙엽 2021.10.08 1018
69 git remote set-url file 황제낙엽 2021.09.03 909
68 git clone [bare/mirror] 정리 file 황제낙엽 2021.09.03 1493
67 Git Repository 이동하기 황제낙엽 2021.09.02 912
66 유용한 Git 명령어 몇가지 황제낙엽 2021.09.02 924
65 Git의 4가지 영역 황제낙엽 2021.09.02 907
64 Git bare repository 황제낙엽 2021.09.02 834
63 git reset의 3가지 옵션 제대로 이해하기 file 황제낙엽 2021.07.31 916
62 이전 커밋으로 되돌리기 (revert, reset) file 황제낙엽 2021.07.31 1075
61 TortoiseSVN - add to ignore list file 황제낙엽 2021.06.04 1176
60 Ubuntu 에 Git 설치 황제낙엽 2020.09.13 937