(주)누리웨어

화상연동/Web,APP 구축및서비스/LMS/평생교육/학점은행/기업교육/연수관리/설문구축/

Linux CVS 구성

1. 리눅스에 CVS서버가 설치되어 있는지 확인

//버전확인
# cvs -v

2. 저장소 디렉토리 생성 및 초기화
//CVS 저장 디렉토리 생성
# mkdir -p /home/cvs/project1

//CVS 저장 디렉토리 초기화
# cvs -d /home/cvs/project1 init

3. CVS 저장 디렉토리 권한 설정
// CVS 그룹 생성

# groupadd cvs

// CVS 유저 생성
# useradd -u $UID -g $GID -d /$HomeDirectory cvs

// 유저:그룹 변경
# chown -R cvsuser:cvs /home/cvs

// CVS 저장 디렉토리 권한 변경
# chmod -R 770 /home/cvs

4. CVS사용자 등록
//디렉토리이동
# cd /home/cvs/project1/CVSROOT

//passwd 파일 생성
# vi passwd

[ 사용자 암호생성 ]

// htpasswd 명령어를 사용 하여 CVS ID:PASSWD 생성
ex) htpasswd -nb [ID] [PASS] 로 ID:PASSWD

# htpasswd -nb testuser testpasswd

testuser:ETND93SaXW5yw

// passwd파일에 사용자암호 생성한것을 추가하고 저장한다.

testuser:ETND93SaXW5yw:cvs //맨 끝에 :cvs를 추가한다

:wq! //저장후 종료

5. /etc/xinetd.d 디렉토리에 cvspserver란 서비스 설정 파일 등록

# vi /etc/xinetd.d/cvspserver

service cvspserver

{

disable = no

flags = REUSE

socket_type = stream

wait = no

user = cvsuser

server = /usr/bin/cvs

server_args = –allow-root=/home/cvs/project1 –allow-root=/home/cvs/project2 pserver

log_on_failure += USERID

}

6. xinetd 슈퍼데몬을 다시 실행

# service xinetd restart

7. CVS서버가 돌고 있는지 CVS port 확인

# netstat -an | grep 2401

8. 기타

8-1) htpasswd 파일이 없을 경우 아래와 같이 C 소스를 작성하여 컴파일 한다.

====================================================================================================================

# vi cvspasswd.c

/*=========================================================================

*

* Copyright Insight Software Consortium

*

* Licensed under the Apache License, Version 2.0 (the “License”);

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0.txt

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an “AS IS” BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*

*=========================================================================*/

#include

#include

#include

#include //시스템에 따라 대신 를 사용 할 수 있으니 확인이 필요 함.

#include

#include

#include

main(argc, argv)

int argc;

char *argv[];

{

time_t now;

char salt[64];

if (argc != 3) {

fprintf(stderr, “Usage: cvspasswd [name] [passwd]\n”); exit(1);

}

if (time(&now)==-1) {

fprintf(stderr, “System Error: time not available\n”); exit(1);

}

/* add a little salt to our crypt */

printf(“ctime : %s”, ctime(&now));

snprintf(salt, sizeof(salt), “%s”, ctime(&now));

salt[0] = salt[17]; salt[1] = salt[18]; salt[2] = ‘\0’;

printf(“%s:%s\n”, argv[1], crypt(argv[2], salt));

exit(errno);

}

:wq!

====================================================================================================================

아래와 같은 명령어를 사용하여 컴파일한다.

# gcc -o cvspasswd cvspasswd.c -lcrypt

2) 읽기권한만 부여하는 법

$저장소 디렉토리/CVSROOT/readers 파일 생성

해당 파일 내에 읽기 권한만 부여할 사용자 ID 추가

[출처] [Linux] CVS 서버 구성|작성자 oxcow119

댓글 남기기