cvsacl 控制cvs的用户权限

cvs的权限能够经过cvsacl这个软件来控制 个人系统安装的cvs是1.11.17这个版本,系统自带的,若是没有请本身安装 cvsacl能够去这个站点下载http://cvsacl.sourceforge.net/ 安装比较简单 解压文件:tar zxf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz 进入源码目录: cd cvs-1.11.22-cvsacl-1.2.5-patched 配置源码文件:./configure 后面能够不跟参数,默认吧 编译源码文件: make 安装cvsacl:  make install 打开/etc/server文件,查找cvspserver行是cvs的监听端口,通常都有,若是没有就本身添加一行吧,格式以下 cvspserver      2401/tcp                        # CVS client/server operations cvspserver      2401/udp                        # CVS client/server operations 接着在/etc/xinetd.d下建立文件cvspserver ,内容以下 service cvspserver           cvs的服务名 { flags             = REUSE socket_type       = stream wait              = no user              = root     server            = /usr/bin/cvs  cvs的可执行文件的路径 server_args       = -f --allow-root=/cvs/cms --allow-root=/cvs/caiwu pserver  这里注意一下,是cvs的仓库,若是有多个就在中间加空格,个人就是两个仓库 log_on_failure   += USERID disable           = no } 建立两个组,一个是cmsadmin,一个是caiwuadmin groupadd cmsadmin groupadd caiwuadmin 建立两个用户,一个是cms,一个是caiwu useradd -g cmsadmin -s /sbin/nologin cms useradd -g caiwuadmin -s /sbin/nologin caiwu 这个两个用户是cvs用户映射到系统的用户,cvs的仓库须要使用,加入到一个组,是为了之后扩展使用方便一些 咱们如今来建立cvs的仓库,先建立两个目录一个是cms,一个是caiwu mkdir /cvscms mkdir /cvs/caiwu 初始化两个数据仓库 cvs -d /cvs/cms init cvs -d /cvs/caiwu init 随后能够查看/cvs/cms和/cvs/caiwu目录下面各自多了一个CVSROOT的目录,这个是cvs的配置目录 咱们来修改如下几个文件 第一个是aclconfig chmod 770 /cvs/cms/CVSROOT/aclconfig vi /cvs/cms/CVSROOT/aclconfig 注释掉这行UseSystemGroups=yes 启用这行UseCVSGroups=yes 保存退出 chmod 770 /cvs/caiwu/CVSROOT/aclconfig vi /cvs/caiwu/CVSROOT/aclconfig 注释掉这行UseSystemGroups=yes 启用这行UseCVSGroups=yes 保存退出 第一行的意思是不使用系统验证cvs用户,第二行是启用cvs的group验证用户,后面咱们讲到 建立cvs的用户文件有两个方法,第一个是建立系统用户,第二个是使用apche的htpasswd来完成,最终的目的只是想获得加密的密码而已,应为个人cvs服务器有apche,全部我就使用htpasswd了 /app/apache2/bin/htpasswd -c /cvs/cms/CVSROOT/passwd test 接着输入两次密码便可,会在/cvs/cms/CVSROOT目录下生成passwd的文件,内容以下 test:91fMB/09ThoYI冒号前面是用户名,后面是密码,咱们稍做修改,就成了cvs可以使用的passwd文件 test:91fMB/09ThoYI:cms能看明白了吧,在密码后面又加了一个冒号,后面的cms是系统cms用户,如今的意思是将test的cvs用户映射成系统的cms用户,咱们的/cvs/cms目录的属主也是这个用户,多个用户以此类推来实现,若是你使用htpasswd建立用户的话,第一次使用-c参数,之后就不用了 接着建立cvs工做组,这个的做用是之后赋予权限的时候使用 vi /cvs/cms/CVSROOT/group cmsgroup:x:1:a,test,test1,test2,test3 vi /cvs/caiwu/CVSROOT/group caiwugroup:x:1:a,test,test1,test2,test3 这个文件的格式是这样的第一个是组的名字,后面是用户,多个用户以逗号隔开,网上的资料说cvs的group有bug,第一个用户必须不存在,我没有做具体的测试,就随便写了一个不存在的a用户,若是你有时间测试一下 修改cms和caiwu的属主和属组 chown -R caiwu.caiwuadmin /cvs/caiwu chown -R cms.cmsadmin /cvs/cms 修改目录的权限 chmod 770 /cvs/cms chmod 770 /cvscaiwu cvs的配置基本上就搞定了,下面来给仓库配置权限吧,权限有如下8中,本身根据须要来设置吧 # 权限        参数                  说明  # 没有权限     n         用户不能作任何cvs操做  # 读权限       r         能够执行annotate, checkout, diff, export,log, rannotate, rdiff, rlog, status 命令  # 写权限       w         能够执行commit/checkin命令  # tag         t         能够执行tag/rtag命令,依赖读权限   # 建立        c          能够执行 add import 命令  # 删除        d          能够执行rm命令  # 所有权限     a          能够执行全部cvs命令处理cvsacl管理命令  # 管理权限     p          能够执行全部命令 cvs -d /cvs/cms racl -R test:n CVSROOT  -d后面的路径是cvs的仓库 racl是内部参数 -R 是递归的就是说包括了子集目录,test是用户,n是权限,CVSROOT是具体的目录,这条命令的意思是不容许test用户读取CVSROOT下的文件内容,默认状况下cvs的用户具有最高的权限,修改好了权限,能够查看CVSROOT下的access来看具体的内容 cat /cvs/cms/CVSROOT/access # CVS ACL definitions file. DO NOT EDIT MANUALLY d:CVSROOT:HEAD:test!n: /etc/rc.d/init.d/xinetd restart重启cvs服务
相关文章
相关标签/搜索