完成如下权限的设置:
假设有用户
1
:
user1 ;
用户
2
:
user2
用户
1(user1)
的工作模块
:user1dir;
用户
2(user2)
的工作模块
:user2dir
要求实现
user1
只能访问
user1dir;user2
只能访问
user2dir
第
1
步,设置
CVS
的库配置文件(模块
CVSROOT
)的访问权限方法:
建立超级用户的工作目录
WINCVSADMIN
1.
以
cvsnt
服务器超级用户
administrtor
登陆
wincvs
2.
CHECKOUT
库控制文件
checkout moudel 'cvsroot',
此目录下的文件为
CVS
的高级配置文件,可以在本地进行修改,提交,本身在版本控制之中
3.
修改
CVSRoot
的访问权限,在命令行输入如下命令,
#
之后为说明,不需要输入,每行命令要单独执行,这是
4
条命令
cvs chacl default:n #
取消所有用户的默认权限
cvs chacl administrator:rcw #
设置
Administrator
拥有所有权限
读取
;
创建和删除
;
写入
cvs chown administrator #
更改的拥有者
Administrator
cvs lsacl #
察看权限的设置情况
第
2
步,建立
CVS
的用户,正常可以用
WINNT
系统的用户作为
CVS
的用户访问
CVS
但是这种方式安全性太差
可以建立
CVS
自己的用户
1.
建立
WINNT
系统用户
CVSUSER
,权限设为一般用户就可以,只要能访问
WINNT
就可以
2.
建立密码文件
PASSWD,
直接在服务端
CVSROOT
目录下建立文件就可以
PASSWD
出于安全考虑,不要将
passwd
列在
checkoutlist
文件里面。
3.
建立
CVS
用户
在
WINCVS
命令行下输入命令
cvs passwd -a -r cvsuser user2 #
建立
USER2
用户与系统用户
cvsuser
有一样的权限
,
回车
#
后提示输入两次口令
cvs passwd -a -r cvsuser user1 #
建立
user1
用户与系统用户
cvsuser
有一样的权限
,
回车后
#
提示输入两次口令
cvs passwd -a -r administratro administrator #
建立
administrator
用户与系统用户
# administrator
有一样的权限
,
回车后提示输入两次口令
可以看到
PASSWD
文件多了两行
user2:CUXQwLMdoZHNs:cvsuser #
中间为加密的密码
,
密码使用
Unix
标准的
crypt()
函数加密
user1:ZTUCMKUkZ6ap2:cvsuser administrator:oN2Stm4NIf31Q:administrator
第
3
步
,
使用
CVS
用户登陆
由于
CVS
在默认模式下
,
是采用系统用户登陆的
,
这就要修改配置文件
CONFIG
设置文件
CONFIG
为修改状态,加入如下一行
SystemAuth=no
#yes
默认值
,
表示
如果用户在
PASSWD
文件中不存在
,
就用系统用户检查权限是否正确
#no
表示用
PASSWD
检查用户密码权限是否正确之后提交
在设置
CONFIG
文件
SystemAuth=no
之后
需要在
cvs
控制目录
cvsroot/
下建立
admin
文件
这个文件是指定
CVSNT
的管理员列表的文件,
CVSNT
根据这个文件来判断一个用户是否是管理员。文件的内容很是一个用户列表。如下:
user1 user2 user3
这些代表
user1,user2,user3
都是管理员
在此之前
cvs
将服务器的管理员用户作为自己的管理员用户的
第
4
步
,
加入文件
WRITERS ,READERS
控制用户的读写权限
在
cvsroot
目录下加入两个文本文件,
WRITERS ,READERS
其每行内容为
用户名
回车
只有加入
WRITERS
中的用户才能进行提交
加入
READERS
中的用户只能读取
同时在两个文件中的用户只能读取
在
writers
文件中加入如下
user2 user1 administrator
第
5
步,
配置
CVS
库模块文件
--modules
1.
将
MODUES
文件设为可编辑状态
2.
在
MOUDES
加入如下
3
行
CVSRoot CVSRoot user1
的工作目录
-a user1DIR
user2
的工作目录
-a USER2DIR c.
保存
,
提交
COMMIT
第
6
步
,
为
2
个用户分别上传工作目录
选中
USER1
的工作目录
'USER1DIR' IMPORT MODULE
选中
USER2
的工作目录
'USER2DIR' IMPORT MODULE
注意
:
上传的目录不能为空目录
,
其下必须有文件
(
啥文件都行
)
上传成功后,删除这
2
个目录
OR
改名
补充一下分组的使用方法:分组:将权限相同的用户划分到一组,这样方便维护。就是角色的意思,分组使用在对模块访问权限的划分。
方法:
1.
在服务器端
cvsroot
目录下新建文件
group
2.
建立分组
group1,group2 ,group
文件内容如下
group1:user1 user2 user3 group2:user5 user6 user7
3.
之后对组进行权限划分,和对单个用户方式一样,就可以使组内用户和组具有相同的权限,如选中模块,执行如下命令
chacl -R default:n
cvs chacl -R group1:rcw
cvs lsacl
可以使,用户
user1 user2 user3
同时具有对该模块的读写和控制的权限
第
7
步
,
下载目录到本地做权限设置
CHECKOUT MODULE
选择
user1
的工作目录
'USER1DIR'
CHECKOUT MODULE
选择
user2
的工作目录
'USER2DIR'
选择
菜单
/remote/checkou moudule
在打开窗口中
点击
'...'
按钮
在打开窗口中选择
user1
的工作目录
ok
按钮
确定
按钮
第
8
步
分别设置
2
用户
(USER1;USER2)
对各自目录的访问权限
选中模块
USER1 ,
在命令行输入如下
3
条命令
cvs chacl -R default:n
cvs chacl -R USER1:rcw
cvs lsacl
选中模块
USER2 ,
在命令行输入如下
3
条命令
,
cvs chacl -R default:n
cvs chacl -R USER2:rcw
cvs lsacl
说明
加
'-R '
参数表示对模块的权限是递归的。解释一下:如目录结构
dira |---dira1 |---dira2
命令:
cvs chacl default:n
只对
目录
dira
有效,而对子目录无效
cvs chacl -R default:n
对目录
dira
及其下子目录都有效
第
9
步
已经完成了设置
以用户
USER1 OR USER2
登陆
WINCVS
就只能
CHECKOU
各自的模块
USER1DIR
,
USER2DIR
进行相应的开发工作了