huifeituzi 发表于 2009-2-9 17:21:41

cvs权限设置 【转】

cvs权限设置


假设有用户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
         大狼的工作目录 -alxwDIR
         开心的工作目录 -aZXHDIR
       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里

andy20008 发表于 2009-12-5 19:31:09

支持一下,这个不错啊,谢谢 了,学到点了啊,呵,,
页: [1]
查看完整版本: cvs权限设置 【转】