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









本文转自 走在右边 51CTO博客,原文链接:http://blog.51cto.com/gsliuyang/334244,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
项目管理 数据安全/隐私保护
项目管理工具权限设置:如何自定义与控制访问
项目管理工具指南关注自定义和用户权限控制。工具提供自定义字段、状态、标志及用户权限简档和角色功能,允许团队根据需求调整,确保安全性和访问相关性。权限简档是一组权限设置,定义用户对系统的访问权限,可分配给多个用户。通过定制角色和权限,项目经理能精细控制团队成员的访问范围。例如,不同角色如管理员、产品经理和测试人员有不同的权限设定。此外,工具还支持@提及角色、跨项目依赖和任务编号等功能,如Zoho Projects提供的4级权限设置,实现精细化管理。
65 4
|
Linux 数据安全/隐私保护
Linux使用用户权限管理
一、root与sudo权限管理 1、root:root是Linux系统中的超级用户或管理员账户。它拥有系统上的最高权限,可以执行任何操作,包括修改系统配置、安装软件等。root账户具有无限制的权力,因此在使用root账户时需要特别小心,以避免不小心造成系统损坏或安全问题。 2、sudo:sudo是一种命令,用于在Linux系统上以root权限执行特定的命令或操作。它允许普通用户临时获取root权限,而无需切换到root账户。通过sudo,系统管理员可以授予特定用户或用户组执行特定命令的权限,从而实现更细粒度的权限管理。这样可以减少对root账户的使用,降低潜在风险。 二、root root账户
171 0
SVN 权限配置详细说明
svnserve权限配置 分配权限时,目录应该应该遵从从大到小,权限应该从小到大的规则 即:目录从根目录开始,权限从没有权限(为空即可)到可写再到可读写。 提示:目录的访问权限既可以分配给组,也可以分配指定用户。
3729 0
|
数据安全/隐私保护
【SVN】关于SVN创建多个版本库共用权限和密码并且设置钩子同步web目录
【SVN】关于SVN创建多个版本库共用权限和密码并且设置钩子同步web目录
162 0
【SVN】关于SVN创建多个版本库共用权限和密码并且设置钩子同步web目录
|
存储 缓存 Linux
【Android 逆向】Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )
【Android 逆向】Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )
236 0
【Android 逆向】Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )
|
Devops 数据安全/隐私保护
批量创建用户并使用sudo和ACL来控制用户权限
最近公司应相关部门的监管要求加强了对用户权限的控制,为了积极响应国家的号召,公司账号权限设计管理的重任就落到我的肩上。
1195 0
|
XML 数据格式 Android开发