| « | 七月 2009 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||
大部分是转载
http://blog.hexun.com/fns/1664381_d.html
http://blog.hexun.com/gemini_leo/642878_d.html
我在2.5.03下还是有些不同的,比如chacl命令格式。
另外单一模式下,windows用户中也需要建立和cvs中用户一样的用户(这个很不解。。。)
:pserver:cvsadmin@192.168.0.1:4021/CVSNT/Repository 这里的192.168.0.1是服务器的IP地址,/CVSNT/Repository就是前面设置Repository时设置的Name,可以改为你机器上的配置。修改系统变量之后以下的步骤在任何与服务器相连的机器上进行,当然该机器上应该有CVSNT的可执行文件。 7、如果为了避免出现错误,先重启一下CVSNT服务器,再启动命令提示符来到E:/CVSNT/Works,因为已经启用单一验证方式,先要进行登录。 cvs login 输入密码,此时就是以cvsadmin登录了。 8、添加admin文件,首先将CVSROOT检出,在CVSROOT下新建admin文件,内容为 cvsadmin 执行命令: cvs add admin cvs ci 9、修改checklist文件,在该文件末尾添加一行: [空格]admin error message 注意:admin前的空格不能少。 执行命令: cvs ci 经过以上步骤,可以说用户配置已经基本完成了,CVSNT可以很好的工作在单一验证方式下。进一步的管理可使用以下命令: 添加用户: cvs passwd -a username,使用时不必理会需要添加别名的提示。 修改用户权限:cvs chacl username:r|w|c|n,(r:Read w:write c:control n:none) 要添加组管理,只需同添加admin步骤一样,按照格式要求新建group文件即可。 | ||||
wincvs+cvsnt权限设置 以下是我最近在公司实习配置CVSNT(2.5)和WINCVS(2.0)的一些经验。普通是WINCVS和CVSNT操作网上资料很多。可以自行查找。关于权限设置的资料相对较少和散乱。所以我作了整理,并对容易发生错误的地方着重进行了讲解。 假设已经安装了WINCVS和CVSNT,并建立了仓库。完成了登陆和导入导出的操作。 (1)管理员登陆以后把服务器中仓库的CVSROOT目录(Module)导出(Checkout)到一个工作目录,比如“admin”。具体操作见“导出模块”。 CVS中目录权限介绍: 系统支持的目录权限如下: r (读取权限) w (写入权限) c (创建和删除权限) n (没有任何权限) 默认情况下,任何用户都拥有任何目录的所有权限。 任何情况下只有目录的拥有者和管理员才有权力更改目录的使用权限。下面将会介绍如何修改目录权限和目录的拥有者。 (2)对CVSROOT目录的管理: CVSROOT目录是在创建仓库时有NTCVS建立的。里面包含了许多关于仓库的信息的文件。 认证口令的时候,服务器先检查 CVSROOT/passwd 文件中的用户。如果找到用户,就按CVS内置的权限管理方法进行认证。如果没有找到,或passwd 文件不存在,服务器将采用操作系统的用户认证机制。为安全起见,应该采用CVS内置的权限管理。具体方法如下: 1)在服务端 CVSROOT 目录下建立文件passwd(不建立则在添加用户时自动创建)。出于安全考虑,默认不会将 passwd列在 checkoutlist 文件里面。既从客户端导出CVSROOT时不会导出该文件。在WINCVS中转到CVSROOT目录。点击主菜单“Admin->command line”或”ctrl+ L”弹出命令行对话框。在对话框中输入增加管理员的命令: cvs passwd -a -r systemuser username //建立与系统用户systemuser有相同权限的用户,用户名为username。 //当某个用户绑定的系统用户被删除时,则这个用户也不能登陆。 或 cvs passwd -a username //建立用户名为username的用户 在两次弹出的对话框输入密码。确认即可。这时可以看到passwd文件多了一行: username:CUXQwLMdoZHNs:systemuser 或 username:CUXQwLMdoZHNs 在增加管理员时,应该使用第一种方法:命令为: cvs passwd -a -r Administrator username 在实际操作中建议使用第一种命令。采用第二种命令增加的用户有时在login时会出现不能登陆的情况(具体原因还不清楚)。 2)修改CVSROOT下的配置文件 config,加入一行:“ SystemAuth=no”其中no表示用passwd检查用户密码权限是否正确。yes 为默认值,表示如果用户在passwd文件中不存在,就用系统用户检查权限是否正确,这就使用了CVS内置的权限管理功能了。 然后在CVSROOT下建立admin文件。这个文件是指定CVSNT的管理员列表的文件,CVSNT根据这个文件来判断一个用户是否是管理员。文件的内容是一个用户列表。如下: user1 user2 user3 这些代表user1,user2,user3都是管理员,在此之前CVS将服务器的管理员用户作为自己的管理员用户的。 3)在CVSROOT下加入文件readers,writers来控制用户的读写权限。文件每行内容与admin文件相同。格式为: 用户名回车。 特别注意的是:只有在writer文件中的用户既能读取,又能进行提交修改。在readers中的用户只能读取,同时在两个文件中的用户只能读取。在writers文件中必须有管理员的用户名。因为管理员在操作控制时将会涉及到文件的读写。对于一般用户就不要写进这两个文件了。 这样就完成了对CVSROOT目录的权限设定。不在readers和writers文件中的用户将不能导出CVSROOT这个module。仅在readers文件中的用户能进行导出操作但不能进行提交修改操作。仅在writers文件中的用户能进行导出和提交修改操作。 下面讲一下不使用系统管理员而自己建立的管理员的步骤: 1. 使用命令cvs passwd -a -r Administrator username建立一个和Administrator有相同权限的管理员用户。 2. 在admin文件中添加该管理员的用户名。 3. 在writers文件中添加该管理员的用户名。 4. 在config 文件中添加一行代码:SystemAuth=no,这样就不能使用Administrator而只能使用自己建立的管理员进行操作了。 (3)对一般目录权限的设置 1) 配置CVS库模块文件modules 先从客户端导入两个module。比如test和localdir。在modules加入如下3行: CVSROOT CVSROOT 目录1 -a localdir 目录2 -a test 第一列为描述信息,第二列为参数或空格。第三列为相对路径。如果描述信息和相对路径不同则需要参数“-a”。 在导出模块的时候(remote->checkout module),可以点击module name and path on the server一栏旁边的“...” 按钮弹出窗口: 这样可以使客户端更加方便的进行module选择。 2) 为各个module进行权限配置 module在仓库的下就是一个独立的目录。为module设置权限有两种方法。第一种是手工配置,在module目录下有一个子目录CVS,在里面有一个fileattr.xml文件。在未设置以前打开文件如下: 在 在 加入以上代码以后文件如下: 第二种方法是使用命令来设置,其实也是通过命令来修改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 同时具有对该模块的读写: 注意这里的group不用" " 。 | ||||
None
I like this!
Wyle | 18/04/2007, 22:12














