2013-11-25 1 views
1

사용자는 모든 CVS 활동을 실행하기 위해 ssh 쉘을 사용하고 있습니다. 그것들을 물리적으로 CVS 서버에 로깅하는 것을 차단할 수 있습니까? 예를 들어, 체크 아웃 파일에 다음 명령을 사용합니다 : 그들은 그룹의 일부이기 때문에원격 CVS 사용자가 실제로 repo 서버에 로그인하지 못하도록 차단

cvs -z3 -d:ext:[email protected]:/cvsroot/projects checkout -d project1 . 

권한을 갖는 서버/쓰기 CVS 저장소의 파일 시스템을 읽고, 그들이 REPO 서버에 로그인을 SSH를 수 있고, 실제 파일을 삭제하십시오. 그들을 막을 수 있습니까? 나는 DeneyUsers로 sshd_config를 시도했거나 NOLOGON 셸로/etc/passwd를 설정했지만 모두 CVS 명령을 차단합니다.

감사합니다.

답변

0

예, 가능합니다. 나는 cvs 만 실행하는 사용자 정의 셸을 사용하고 있습니다.

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 

int main(int argc, char** argv) 
{ 
    if (getenv("CVSROOT") == NULL) 
    setenv("CVSROOT", "/home/cvs", 0); 

    execl("/usr/bin/cvs", "cvs", "server", NULL); 

    printf("No Permission.\n"); 
} 
0

당신은 rssh를 설치하고 사용자의 로그인 셸이 설정할 수 :

여기에 코드입니다.

http://www.pizzashack.org/rssh/

rssh는 사용자를 제한 할 수 있습니다 (cvs 포함) 명령의 목록이 있습니다. 시스템에 직접 접속하려고하면 거부되고 다음과 같은 메시지가 수신됩니다.

This account is restricted by rssh. 
Allowed commands: cvs 

If you believe this is in error, please contact your system administrator. 
관련 문제