首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

windows上CVS权限设置

2012-12-22 
windows下CVS权限设置不同用户设置不同的访问权限方法DALANG 20040112关于权限管理的操作,我感觉不错的 假

windows下CVS权限设置
不同用户设置不同的访问权限方法 
                                         DALANG 20040112
关于权限管理的操作,我感觉不错的 

假设有用户1:lxw ;用户2:zxh
有用户1的模块::lxwdir;用户2的模块:zxhdir
要求 lxw 只能访问lxwdir;zxh只能访问zxhdir

第1步,设置CVS的库配置文件(模块CVSROOT)的访问权限
方法:建立超级用户的工作目录 WINCVSADMIN
       a.以cvsnt服务器超级用户administrtor 登陆 wincvs
       b.CHECKOUT 库控制文件 checkout moudel 'cvsroot',此目录下的文件为CVS的高级配置文件,可以在本地进行修改,提交,本身在版本控制之中
       c.修改CVSRoot的访问权限,在命令行输入如下命令   #之后为说明,不需要输入 每行命令要单独执行,这是4条命令
         cvs chacl default:n           #取消所有用户的默认权限
         cvs chacl administrator:rcw   #设置Administrator拥有所有权限 读取;创建和删除;写入
         cvs chown administrator       #更改的拥有者Administrator
         cvs lsacl             #察看权限的设置情况
第2步,建立CVS的用户
       正常可以用WINNT 系统的用户作为CVS 的用户,访问CVS ,但是这种方式安全性太差
       可以建立CVS 自己的用户
       a.建立WINNT系统用户 CVSUSER,权限设为一般用户就可以,只要能访问WINNT就可以 
       b.建立密码文件PASSWD,
           直接在服务端 CVSROOT 目录下建立文件就可以 PASSWD
           出于安全考虑,不要将 passwd列在 checkoutlist 文件里面。 
       C.建立CVS用户 
           在WINCVS 命令行下输入命令 
           cvs passwd -a -r cvsuser zxh         #建立ZXH用户与系统用户cvsuser有一样的权限,回车后提示输入两次口令
           cvs passwd -a -r cvsuser lxw         #建立lxw用户与系统用户cvsuser有一样的权限,回车后提示输入两次口令
           cvs passwd -a -r administratro administrator #建立administrator用户与系统用户administrator有一样的权限,回车后提示输入两次口令
           可以看到PASSWD 文件多了两行
           zxh:CUXQwLMdoZHNs:cvsuser     #中间为加密的密码,密码使用Unix标准的crypt()函数加密
           lxw: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文件中加入如下
           zxh
           lxw  
           administrator      

第5步, 配置CVS库模块文件——modules
       a.将MODUES文件设为可编辑状态
       b.在MOUDES 加入如下3行
         CVSRoot             CVSRoot
         大狼的工作目录 -a   lxwDIR
         开心的工作目录 -a   ZXHDIR
       c.保存,提交 COMMIT
第6步, 为2个用户分别上传工作目录
       选中LXW的工作目录'LXWDIR'       IMPORT MODULE  
       选中ZXH的工作目录'ZXHDIR'       IMPORT MODULE          
       注意:上传的目录不能为空目录,其下必须有文件(啥文件都行)
       上传成功后,删除这2个目录OR 改名
(补充一下分组的使用方法:
分组:将权限相同的用户划分到一组,这样方便维护。就是角色的意思,分组使用在对模块访问权限的划分。
方法:
a.在服务器端 cvsroot 目录下新建文件 group
b.建立分组 group1,group2 ,group文件内容如下
group1:user1 user2 user3
   group2:user5 user6 user7
c.之后对组进行权限划分,和对单个用户方式一样,就可以使组内用户和组具有相同的权限,如 选中模块,执行如下命令
   chacl -R default:n
       cvs chacl -R group1:rcw
       cvs lsacl   
可以使,用户 user1 user2 user3 同时具有对该模块的读写和控制的权限

第7步,下载目录目到本地做权限设置 CHECKOUT MODULE
       CHECKOUT MODULE         选择 大狼的工作目录   'LXWDIR'
       CHECKOUT MODULE         选择 开心的工作目录   'ZXHDIR'
     做法是这样的
       选择 菜单\remote\checkou moudule
             在打开窗口中 点击‘...’ 按钮 
       在打开窗口中选择 大狼的工作目录 
       ok 按钮
       确定 按钮 


第8步 分别设置2用户(LXW;ZXH)对各自目录的访问权限 
       选中模块 LXW ,在命令行输入如下3条命令,
       cvs chacl -R default:n


       cvs chacl -R LXW:rcw
       cvs lsacl 
       选中模块 ZXH ,在命令行输入如下3条命令,
       cvs chacl -R default:n
       cvs chacl -R ZXH:rcw
       cvs lsacl 
说明 加 ‘-R ’参数表示对模块的权限是递归的。解释一下:
如目录结构   dira
                               |---dira1
                               |---dira2
命令:cvs chacl default:n 只对 目录 dira 有效,而对子目录无效
       cvs chacl -R default:n     对目录dira及其下子目录都有效
                              
第9步 已经完成了设置   
       以用户 LXW OR ZXH 登陆WINCVS 就只能CHECKOU 各自的模块 LXWDIR,ZXHDIR  
       进行相应的开发工作了

在执行命令cvs passwd -a -r cvsuser zxh         的时候
在本地目录 CVSROOT 目录下的PASSWD文件里没有生成相关的用户和密码
而在服务器 CVSROOT 目录下的PASSWD文件里生成了相关的用户和密码 


如果是这样,是一种正常现象
原因是你没有把passwd 控制文件加入到 cvs版本 控制之中—文件checkoutlist里
 

[解决办法]
                                               wincvs 日常操作
一丶 修改文件,并上传到服务器上
1.双击文件打开,进行修改,然后保存后
2.在修改的文件上右键点击选择commit selection..提交选项,被修改的文件标记是红色的.
3.在弹出的对话框中,你无需任何设置,你可以填入你的备注,注明你是修改了什么.修改过的文件版本会更新

二丶下载服务器的文件,替换本地文件
你对服务器上的文件做了修改,但是你本地的文件却并没有修改,现在就要到服务器上开载最新的版本来替换旧的版本
1.在模块上右键选择Update selection【更新选项】
2.在弹出的对话框中也无需做任何的设置,确认即可
3.这时,你的文件版本会更新,在下面显示地方也能看到更新了一个文件的字样。

三丶修改了一个文件,结果发现修改错了,需要重新下载服务器的文件
1.在发现修改错的文件上右键选择Update selection..
2.在弹出的对话框中勾中Get th clean copy ,点击OK,成功!

四丶添加一个目录
1.打开你要创建到其下面的目录
2.在这个目录下的任一文件上右键选择Explore selection 【资源管理器】
3.创建好文件夹或文件
4.上传你把创建的文件夹(如果文件夹中没有子目录或文件,没有递归上传,需要在操作一遍)
点击modfy--add selection 修改--添加文件
5.如果是文件的话请点击modfy--add binary 修改--添加二进制文件,然后在新创建的文件上右键选择commit selection,上传文件才算成功

五丶如何取回以前的某个版本
1.在要取回以前版本的文件上右键选择Update selection更新选项
2.在弹出的对话框中的选择卡sticky options 中勾选Retrieve rev./tag/bran 找回版本/标签/分支 在其中选择你要找回的版本 点击确定就OK了

六丶删除分支/标签,取得最新的版本 
1.在要取得最新版本的文件上右键选择Update selection更新选择
2.在弹出的对话框中的选择卡Update settings 中勾中Reset any sticky date/tag/'-k' options就OK了

七丶固定版本
经过一段时间修改,各个文件的版本不一至,而且文档管到一个阶段,需要固定版本
1.在模块上右键选择commit selection 
2.在弹出的对话框中的选项卡Commit options 中勾中Force revision/branch 选择要固定的版本就OK
[解决办法]
该回复于2009-03-12 15:30:15被版主删除
[解决办法]
1. readers和writers生产的影响是只对CVSROOT还是全局的文件库?


2. 如果readers和writers存在,而又使用chacl设置了权限,以哪个为准?
[解决办法]
多谢楼主

热点排行