Linux中用CVSNT进行目录、文件的权限设置

1 CVSNT for Linux的安装及使用

1.1 使用CVSNT的原因

要达到目录或文件的详细权限设定,要借助CVS扩展包,但在Fedora Core 5 Linux中,使用ACL扩展包的CVS容易出错。这可能是CVS程序在引入ACL功能时导致产生一些新的BUG造成的。

在此,我使用的CVSNT for Linux 版,CVSNT已经有其自己实现的ACL控制策略,能完成目录及文件权限的详细分配、控制。

 

1.2 安装CVSNT for Linux

www.cvsnt.org下载Linux版的CVSNTFedora Core 5 Linux下可以直接使用RedHatRPM安装包 cvsnt- 2.5.03 .2382-rh9-rpm.tar.tar

安装步骤如下:

1)      解压文件

#tar xvf cvsnt- 2.5.03 .2382-rh9-rpm.tar.tar

会产生一些RPM文件

2)      安装CVSNT RPM

#rpm –ivh cvsnt- 2.5.03 .2382-1.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目录下:

S92cvslockdK29cvslockd分别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命令,进入viinsert输入状态,将disable=yes改变成disable=no

保存,退出:ESC->wq

修正后的cvsnt文件如下图:

 

然后,重启xinetd服务

#service xinetd restart

 

1.4 初始化CVS仓库

使用cvs init命令即可。如初始化/home/cvsroot,可直接使用命令:

#cvs –d /home/cvsroot init

完成初始化。

注:cvsnt中可以对仓库设置别名,详细请参见命令帮助,别名及仓库路径存于/etc/cvsnt/PServer。如/home/cvsroot如果要别名成/cvsroot,则可以如下初始化库:

#cvs –d /home/cvsroot –a /cvsroot init

      

       同时修改CVSROOT/config,设置“SystemAuth=no”,使用CVS内置的用户、密码验证。见“ 3.1.6 使用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=”group 1” >…</acl>单元,则cvs用户登录后不能查看到src/目录下内容。但如果增加了<acl user=”cvs”>…</acl>后,则cvs用户能查看到src/目录下的内容了。此时“cvs”用户在组“group1”中的。

 

1.6 目录及文件的权限分配

CVS的目录及文件的权限说明会存放在仓库任意目录下的CVS/fileattr.xml文件中,每个定义的权限会以 <acl user= ></acl>元素来定义。如下面是一个目录下的定义:

这个文件说明了对于目录,cvstest用户没有写权限,而对此目录下的A.java文件,用户cvstest有读权限而没有写权限。

如果没有定义说明用户有哪些权限,默认的权限为allCVS的权限有: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)

注:rchaclrchownrlsaclchaclchownlsacl的区别在于,rchaclrlsacl可直接对服务器资源权限进行更改,而不需要先checkout到本地。而使用chacllsacl,则必须先checkout到本地。然后进行更改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值