2013-11-25 47 views
1

我們的用戶使用ssh shell來運行所有CVS活動。是否有可能阻止他們從物理上登錄到CVS服務器?例如,他們使用以下命令簽出文件:阻止遠程CVS用戶從物理登錄到回購服務器

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

,因爲它們是組的一部分具有權限的服務器上的讀/寫CVS倉庫的文件系統,他們可以ssh登錄到回購服務器刪除物理文件。我可以阻止他們嗎?我嘗試過使用DeneyUsers的sshd_config,或者用NOLOGON shell設置/ etc/passwd,但是它們也都封鎖了CVS命令。

謝謝

回答

0

是的,這是可能的。我正在使用只執行cvs的自定義shell。

下面的代碼:

#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並將其設置爲用戶的登錄shell。

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

RSSH命令(包括cvs)的列表,你可以限制用戶。如果他們試圖直接進入機器ssh他們將被拒絕並收到這樣的消息:

This account is restricted by rssh. 
Allowed commands: cvs 

If you believe this is in error, please contact your system administrator. 
相關問題