20 05 2014
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
Linux Ftp Client 명령어 Linux sendmail 기본 명령어 및 속도개선 ,수신측보안설정관련