CVS 权限配置
?
1.设置CVS库
set cvsroot=:pserver:administrator@127.0.0.1/CVS
2.使用Administrator 增加用户
? ?cvs login
? ?输入Administrator密码
? ?cvs passwd -a -r administrator ccsong ?(增加ccsong用户)
? ?输入两次密码 完成用户增加
?
?
?
?
?
?
?
?
?
<fileattr>
??<directory>
????<owner>Administrator</owner>
??</directory>
</fileattr>
在<owner></owner>之间设置目录的所有者。目录的拥有者和管理员才有权力更改目录的使用权限。目录权限未设置时,所有用户对目录有除了更改目录权限以外的全部权限。在<directory></directory>之间加入以下代码表示取消所有用户对目录的的默认全部权限。
<acl>
??????<all deny="1" />
????</acl>
在<directory></directory>之间加入以下代码表示用户user具有创建、读写、注释的权限。目录的所有者也要通过以下代码进行权限设置。
????????<acl user="user">
??????????<create />
??????????<read />
??????????<tag />
??????????<write />
????????</acl>
加入以上代码以后文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<fileattr>
??<directory>
<acl>
??????????<all deny="1" />
</acl>
????<acl user="user">
??????????<create />
??????????<read />
??????????<write />
??????????<tag />
????????</acl>
????<owner>user</owner>
??</directory>
</fileattr>
第二种方法是使用命令来设置,其实也是通过命令来修改fileattr.xml文件来进行权限设置。具体方法是在WINCVS中用管理员身份登陆并导出要设置的module。选中module,在文件信息栏显示module的文件信息。打开命令行对话框输入以下命令来设置。
命令格式:
cvs chacl [-R] [-r branch] [-u user] [-j branch] [-n] [-p priority] [-m message] [-a [no]{read|write|create|tag|control|all|none}[,...]] [-d] [file or directory...]
????-a access????Set access(设置权限)
????-d????????Delete ACL(删除目录的控制权限)
????-j branch????Apply when merging from branch(合并分支时应用)
????-m message????Custom error message(定制错误消息)
????-n????????Do not inherit ACL
????-p priority????Override ACL priority(不受目录权限管理)
????-r branch????Apply to single branch(在单个分支上应用)
????-R????????Recursively change subdirectories(嵌套设置权限,对目录下每个子目录也进行相同的目录权限设置)
????-u user????????Apply to single user(应用在单个用户)
例如??cvs chacl -r –a none //取消所有用户的默认权限,禁止一切访问。
cvs chacl -R -u user -a read????//设置用户user有读的权限。
通过下面的代码更改目录所有者:
cvs chown dirowner //dirowner为要设定的管理员?????
通过下面的代码显示目录的信息:
cvs lsacl
这两种方法中,第二种方法比较简单,不容易出错。但在第二种方法没有效果的时候可以用第一种方法进行设置。第一种方法中的命令和以前的版本略有不同。具体见它的格式。
????以上就可以完成对目录的权限设置。在模块(module)下的每一个目录下都会自动产生一个名为CVS的文件夹,里面都有一个fileattr.xml文件用来控制目录的访问权限。方法同上。
?
(3)关于分组(group)的应用
分组:将权限相同的用户划分到一组,这样可以方便维护。就是角色的意思,分组使用在对模块访问权限的划分的方法如下:
a.在服务器端 CVSROOT目录下新建文件 group。
b.在文件中建立分组,group文件内容如下:
group1:user1 user2 user3
group2:user5 user6 user7
c.之后对组进行权限划分,和对单个用户方式一样,就可以使组内用户和组具有相
同的权限,如 选中模块,执行如下命令可以使用户 user1 user2 user3 同时具有对该模块的读权限了。
??cvs chacl -R -u group1 -a write
在fileattr.xml文件中加入如下代码也可以使用户 user1 user2 user3 同时具有对该模块的读写:
<acl user=guoup1>
??????????<create />
??????????<read />
??????????<tag />
??????????<write />
????????</acl>
注意这里的group不用" " 。