| 发表于:2007-02-13 14:27:261楼 得分:100 |
不同用户设置不同的访问权限方法 完成如下权限的设置: 假设有用户1:user1 ;用户2:user2 用户1(user1)的工作模块:user1dir;用户2(user2)的工作模块:user2dir 要求实现 user1 只能访问user1dir;user2只能访问user2dir 第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 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 a.将modues文件设为可编辑状态 b.在moudes 加入如下3行 cvsroot cvsroot user1的工作目录 -a user1dir user2的工作目录 -a user2dir c.保存,提交 commit 第6步, 为2个用户分别上传工作目录 选中user1的工作目录 'user1dir ' import module 选中user2的工作目录 'user2dir ' 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 选择 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 进行相应的开发工作了 | | |
|