博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cvsacl 控制cvs的用户权限
阅读量:6115 次
发布时间:2019-06-21

本文共 3022 字,大约阅读时间需要 10 分钟。

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服务

本文转自 走在右边 51CTO博客,原文链接:http://blog.51cto.com/gsliuyang/334244,如需转载请自行联系原作者
你可能感兴趣的文章
网络时间服务centos7 chrony
查看>>
坚果云增量同步帮你轻松应对要甲方爸爸
查看>>
oracle 简单SQL
查看>>
你需要知道的那些 redis 数据结构!
查看>>
网页上的声音没有了怎么办?
查看>>
基本数据类型的取值范围
查看>>
教你导入图片到几何画板中
查看>>
CentOS 7 修改日志时间戳格式
查看>>
从“复盘”中不断学习与提高
查看>>
我的友情链接
查看>>
Redis学习(管线)
查看>>
php文件怎么打开
查看>>
点在多边形内的判断
查看>>
python 之re模块(正规表达式)简单扯一下犊子
查看>>
对星外主机提权利用
查看>>
Nginx sticky模块实现session粘滞
查看>>
Java中getResourceAsStream的用法
查看>>
使用UltraEdit打造C/C++编译环境!
查看>>
使用screen管理你的远程会话
查看>>
我的友情链接
查看>>