注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

隐龙 为了一生的信念

今日默默沉于水,他日飞腾在九天...

 
 
 

日志

 
 

【转载】CVSNT for linux 配置  

2014-04-09 21:57:24|  分类: 开发工具 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文转载自唐僧《CVSNT for linux 配置》
1.1 使用CVSNT的原因
 
  要达到目录或文件的详细权限设定,要借助CVS扩展包,但在Fedora Core 5 Linux中,使用ACL扩展包的CVS容易出错。这可能是CVS程序在引入ACL功能时导致产生一些新的BUG造成的。
 
   在此,我使用的CVSNT for Linux 版,CVSNT已经有其自己实现的ACL控制策略,能完成目录及文件权限的详细分配、控制。
 
 删除旧有安装包
Rpm –e cvsnt
rpm -e cvs
 
删除路径:rm –r 路径名
 
 
1.2 安装CVSNT for Linux
 
http://www.cvsnt.org/archive/下载Linux版的CVSNT,上面有cvsnt的多个版本,可以下载cvsnt-2.5.05.3489-rh9-rpm.tar.gz
 
安装步骤如下:
 
1)      解压文件
 
#tar xvf cvsnt-2.5.05.3489-rh9-rpm.tar.gz 
会产生一些RPM文件
 
2)      安装CVSNT RPM
 
#rpm –ivh cvsnt-2.5.05.3489-rh9-i386.rpm
不同的版本,可能名字不一样,不过名字不是主要问题了。
 
 
 
1.3 配置CVSNT服务
 
在Linux下安装好CVSNT后,要进行相应的配置,以便正确使用。下面配置步骤分别说明。
 
1)      启动cvslock服务
 
#service cvslockd start
 
或建立cvslockd自动启动文件,以便系统启动时自动启动cvslockd服务。方法如下:在/etc/rc[345].d下,建立到/etc/init.d/cvslockd 的软链接。以便系统启动或关闭时引用。
 
首先,建立软链接:
 
#ln -sf /etc/init.d/cvslockd S92cvslockd
 
#ln -sf /etc/init.d/cvslockd K29cvslockd
 
然后,将链接文件copy到/etc/rc[345].d目录下:
 
将S92cvslockd,K29cvslockd分别copy到/etc/rc3.d,/etc/rc4.d,/etc/rc5.d目录下即可。
 
 
 
2)      修改CVS配置目录权限
 
将/etc/cvsnt目录的权限设置成所有人可读写的。因为在CVS库初始化时,要将配置写入到这个目录。如果不将权限设置成所有人可写,则只有root用户能初始化CVS库了。
 
设置/etc/cvsnt给所有人读写权限的命令如下:
 
#chmod a+rw –R /etc/cvsnt
 
 
 
3)      启动CVSNT Xinetd服务
 
首先,修改/etc/xinetd.d/cvsnt文件,设置“disable=no”。操作如下:
 
#vi /etc/xinetd.d/cvsnt
 
输入i命令,进入vi的insert输入状态,将disable=yes改变成disable=no
 
保存,退出:ESC->wq。
 
修正后的cvsnt文件如下图:
 
 
 
 
然后,重启xinetd服务
 
#service xinetd restart
 
 
编辑文件/etc/xinetd.d/cvspserver,其内容如下:
 service cvspserver
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/cvs
        server_args     = -f --allow-root=/home/cvsserver pserver
        groups          = yes
        log_on_failure  += USERID
        flags           = REUSE
        mdns            = no # Lockserver handles mdns broadcast
}
  注:
  a)
  这里-allow-root参数的值应该和前面创建的cvsserver的根目录一致。否则后面login时会出现: no such repository的错误。
  b)
  flags的标志是用于setsockopt设置socket的一些属性,这里的REUSE表示socket关闭后可以立即重用,而不用等到超时后才能重用。
 
 
1.4 初始化CVS仓库
 
使用cvs init命令即可。如初始化/home/cvsroot,可直接使用命令:
 
#cvs –d /home/cvsroot init
 
完成初始化。
 
注:cvsnt中可以对仓库设置别名,详细请参见命令帮助,别名及仓库路径存于/etc/cvsnt/PServer。如/home/cvsroot如果要别名成/cvsroot,则可以如下初始化库:
 
同时,需要在PServer中,添加Locale=zh_CN.GBK,这样中文不会产生乱码,很重要,我就被这个问题搞了半天。
 
#cvs –d /home/cvsroot –a /cvsroot init。
 
      
 
       同时修改CVSROOT/config,设置“SystemAuth=no”,使用CVS内置的用户、密码验证。 
 
 
1.5 用户、分组
 
CVSNT下的用户增加、修改、删除,可直接使用cvs passwd命令来完成。如下图显示了用命令来增加一个新用户cvsuser,将它映射到系统用户cvsroot上。
 
 
 
 
分组:建立文件$CVSROOT/CVSROOT/group,其中存放的分组格式如下:
 
group1:user1 user2 user3
 
group2:user5 user6 user7
 
 
 
    如果在一个用户在一个组中,在对一个文件设置权限时,如果同时有用户与组的权限声明,则以用户声明的为准。如有一用户cvs,他属于组group1。见下图:
 
   
 
 
在目录src下,有ACL说明文件CVS/fileattr.xml如下:
 
   
 
如果只有<acl user=”group1”>…</acl>单元,则cvs用户登录后不能查看到src/目录下内容。但如果增加了<acl user=”cvs”>…</acl>后,则cvs用户能查看到src/目录下的内容了。此时“cvs”用户在组“group1”中的。
 
 
 
1.6 目录及文件的权限分配
 
CVS的目录及文件的权限说明会存放在仓库任意目录下的CVS/fileattr.xml文件中,每个定义的权限会以 <acl user= ></acl>元素来定义。如下面是一个目录下的定义:
 
 
 
 
这个文件说明了对于目录,cvstest用户没有写权限,而对此目录下的A.java文件,用户cvstest有读权限而没有写权限。
 
如果没有定义说明用户有哪些权限,默认的权限为all。CVS的权限有:read|write|create|tag|control|all|none。其中control权限为both read and write。
 
设置CVS的权限可直接修改CVS/filleattr.xml文件,也可以使用命令来设置,设置权限的命令如下:
 
cvs rchracl(或cvs chacl)
 
修改所有者的命令为:cvs rchown(或cvs chown)
 
显示权限列表的命令为:cvs rlsacl(或cvs lsacl)
 
注:rchacl、rchown、rlsacl与chacl、chown、lsacl的区别在于,rchacl、rlsacl可直接对服务器资源权限进行更改,而不需要先checkout到本地。而使用chacl,lsacl,则必须先checkout到本地。然后进行更改。
  评论这张
 
阅读(376)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017