CVSNT Manual
为什么80%的码农都做不了架构师?>>>
CVSNT Manual
一、安装cvs
1. linux环境
#cat /etc/issue
Red Hat Linux release 9 (Shrike)
2. 以管理员root账号登录
3. 检查是否已装有cvs
#su - root
#rpm -qa | grep cvs
如果返回cvs-1.11.**,就说明已安装了cvs。
4. 卸载已安装的cvs
#rpm -e cvs-1.11.**
5. 安装cvs
下载cvsnt-2.5.03.2382-rh9-rpm.tar.gz到/root。
#cd /root
#tar zxvf cvsnt-2.5.03.2382-rh9-rpm.tar.gz
#rpm -ivh cvsnt-2.5.03.2382-1.i386.rpm
6. 创建cvsadmin账户
#groupadd cvsadmin
组名必须是“cvsadmin”
#useradd -g cvsadmin -s /bin/false -M cvsadmin
7. 创建配置管理员的系统账户
#groupadd wang
#useradd -g wang -s /bin/bash wang
#passwd wang
#vi /etc/group
内容如下
cvsadmin:x:500:wang
8. 创建RunAsUser账户
#groupadd cvs
#useradd -g cvs -s /bin/false -M cvs
9. 设置配置管理员的系统账户
#vi /etc/group
内容如下
cvs:x:502:wang
10. 修改cvs配置目录权限
#chmod a+rw -R /etc/cvsnt
11. 配置PServer
#cp /etc/cvsnt/PServer.example /etc/cvsnt/PServer
#vi /etc/cvsnt/PServer
修改如下内容
RunAsUser=cvs
12. 配置/etc/services文件
#vi /etc/services
增加如下2行
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
13. 配置xinetd服务
#vi /etc/xinetd.d/cvsnt
修改如下内容
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/cvsnt
server_args = authserver
groups = yes
# flags = REUSE IPv6 # 注释掉此行
mdns = no # Lockserver handles mdns broadcast
}
14. 重启xinetd服务
#/etc/init.d/xinetd restart
15. 检查cvspserver服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果
tcp 0 0 *:cvspserver *:* LISTEN
#telnet localhost 2401
看到“Connected to 127.0.0.1.”说明成功。
16. 配置lockserver服务
#chkconfig --list | grep cvslockd
如果没有cvslockd则执行下面命令
#chkconfig --add cvslockd
17. 检查lockserver服务
#telnet localhost 2402
看到“CVSLock 2.2 Ready”说明成功。
二、初始建库
1. 以管理员root账号登录
2. 建项目库
#mkdir -p /cvsdata/p1
#chmod 2770 /cvsdata/p1
#cvs -d /cvsdata/p1 init
#cd /cvsdata/p1/CVSROOT
#touch admin group
#chmod g+w admin group
#cd
#chown -R cvs:cvs /cvsdata/p1
3. 检查远程登录cvs服务器
#cvs -d :pserver:cvs@localhost:/cvsdata/p1 login
没有出现错误提示表示成功。
三、日常管理
1. 以管理员wang账号登录
2. 创建cvs用户的账号
使用linux系统帐号登录cvs不安全,而CVS提供了独立于系统的用户帐号管理,使用配置文件 CVSROOT/passwd来管理帐号。
$cvs -d /cvsdata/p1 passwd -a user1
$cvs -d /cvsdata/p1 passwd -a user2
$cvs -d /cvsdata/p1 passwd -a user4
$cvs -d /cvsdata/p1 passwd -a user5
$cvs -d /cvsdata/p1 passwd -a wang
3. 指定cvs管理员账号
$vi /cvsdata/p1/CVSROOT/admin
格式如下
wang
如果还想加入其他的用户作为管理员,依次加入用户名即可,每个用户名一行。
管理员用户必须是存在CVSROOT/passwd文件中的用户。
4. 创建cvs用户组
将权限相同的用户划分到一组,就是角色的意思,这样可以方便维护。
$vi /cvsdata/p1/CVSROOT/group
格式如下
group1: user1 user2
group2: user4 user5
组中的用户,要在passwd文件中存在。
注意“:”后有个空格。
管理员自动成为“admin”组的成员,group文件中没有显示“admin”组。
5. 设置初始权限
权限管理的基本原则是:如果不显示的指出否定权限,则赋予肯定权限。
对于新建立的Repository,目录没有设置权限,默认是所有人拥有所有目录的权限(CVSROOT除外),对目录有除了更改目录权限以外的全部权限。
任何情况下只有管理员才有权力更改目录的权限。
如果没有定义说明用户有哪些权限,默认的权限为all。
如果在一个用户在一个组中,在对一个文件设置权限时,如果同时有用户与组的权限声明,则以用户声明的为准。
如果一个用户需要访问一个目录,他必须至少有此目录的所有父目录的read权限。
CVS的目录及文件的权限说明会存放在仓库任意目录下的CVS/fileattr.xml文件中,命令无效时可以手工修改。
$cvs -d /cvsdata/p1 rchown -R admin .
$cvs -d /cvsdata/p1 rchacl -R -d .
$cvs -d /cvsdata/p1 rchacl -a read .
$cvs -d /cvsdata/p1 rchacl -a none CVSROOT
$cvs -d /cvsdata/p1 rchacl -u cvs -a none CVSROOT
6. 设置登录方式
$cvs -d :pserver:wang@localhost:/cvsdata/p1 co .
$vi CVSROOT/config
修改如下内容
SystemAuth=no
AclMode=normal
$cvs ci
即修改登录验证方式为CVSNT用户单一验证方式,以后只能用passwd中的用户登录cvs。
$rm -fr CVS*
7. 增加模块
一级目录只能由管理员建立。
$cvs -d :pserver:wang@localhost:/cvsdata/p1 co .
$mkdir module1
$mkdir module2
$cvs -d :pserver:wang@localhost:/cvsdata/p1 add module1
$cvs -d :pserver:wang@localhost:/cvsdata/p1 add module2
8. 设置模块权限
$cvs rchown -R admin module1
$cvs rchown -R admin module2
$cvs -d /cvsdata/p1 rchacl -a none module1
$cvs -d /cvsdata/p1 rchacl -a none module2
$cvs -d /cvsdata/p1 rchacl -u group1 -a all module1
$cvs -d /cvsdata/p1 rchacl -u group2 -a all module2
9. 增加cvs用户
$cvs -d /cvsdata/p1 passwd -a user2
10. 修改cvs用户的密码
$cvs -d /cvsdata/p1 passwd user2
11. 删除cvs用户
$cvs -d /cvsdata/p1 passwd -X user2
12. 修改cvs用户组
$vi /cvsdata/p1/CVSROOT/group
内容按需求修改即可。
四、更换配置管理员
1. 以管理员root账号登录
2. 创建配置管理员的系统账户
#groupadd sun
#useradd -g sun -s /bin/bash sun
#passwd sun
#vi /etc/group
内容如下
cvsadmin:x:500:wang,sun
3. 设置配置管理员的系统账户
#vi /etc/group
内容如下
cvs:x:502:sun
4. 创建cvs用户的账号
#cvs -d /cvsdata/p1 passwd -a sun
5. 设置cvs管理员账号
#vi /cvsdata/p1/CVSROOT/admin
格式如下
wang
sun
1. 检查cvs管理员用户登录
#su - sun
$cvs -d :pserver:sun@localhost:/cvsdata/p1 login
没有出现错误提示表示成功。
2. 检查cvs管理员账号是否有效
$cvs -d /cvsdata/p1 rchown -R admin .
没有出现错误提示表示成功。
转载于:https://my.oschina.net/tadcat/blog/150825
CVSNT Manual相关推荐
- SQL查询1064报错 [ERR] 1064 - You have an error in your SQL syntax; check the manual.......
MySQL建表出现1064问题问题 SQL语句 DROP DATABASE IF EXISTS bookstore; DROP DATABASE bookstore; USE bookstore; C ...
- 解决:Error: Insufficient values in manual scale. 5 needed but only 4 provided.Run `rlang::last_error()
解决:Error: Insufficient values in manual scale. 5 needed but only 4 provided.Run `rlang::last_error() ...
- SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist -
SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist - SAP WM模块里的事务代码LQ02很有用 ...
- SAP QM 事务代码QE01录入结果后回车,为啥不弹出Manual Valuation窗口?
SAP QM 事务代码QE01录入结果后回车,为啥不弹出Manual Valuation窗口? 执行事务代码QE01为检验批#10000000476录入结果, 录入检验结果后回车,没有弹出类似如下图的 ...
- GNU make manual 翻译(一)
当分析PostgreSQL 的源代码的时候,经常遇到 Makefile, 读不懂其中的语句,很是令人烦恼.最近准备静下心来,好好地阅读. 为了达到这一目的,进行一次翻译. 复制代码 1 Overvie ...
- 测试类异常Manual close is not allowed over a Spring managed SqlSession
测试类异常Manual close is not allowed over a Spring managed SqlSession 参考文章: (1)测试类异常Manual close is not ...
- Linux - 手册(manual)使用 详解
手册(manual)使用 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/22664555 环境: Ubuntu 12.04 ...
- php手册数组函数,PHP - Manual手册 - 函数参考 - Array 数组函数 - array_diff计算数组的差集...
PHP - Manual手册 - 函数参考 - Array 数组函数 - array_diff计算数组的差集 array_diff (PHP 4 >= 4.0.1, PHP 5) array_d ...
- WinCVS与CVSNT简明使用手则
1.前言: CVS是版本控制的利器,目前在Linux和Windows下都有不同版本:但是国内大多数应用介绍都是基于Linux等开放源代码的开放性软件组织,而且讲解的也不系统 ,让人摸不着头脑:Wind ...
最新文章
- 【正一专栏】中国足球不是你想不玩就不玩的
- 转载--tomcat整合apr
- 【数据结构与算法】之深入解析“我的日程安排表II”的求解思路与算法示例
- Python 模块之heapq
- 跳一跳python_微信跳一跳python怎么刷分?跳一跳python怎么使用?
- DEDE留言板调用导航的方法
- 哲学家就餐 linux实现_Linux哲学的9个主要原则如何影响您
- 快升级 iOS 10.3.1,修补了致命WiFi安全漏洞!
- 销售行业转行软件测试,这是我成功的感受...
- Web应用程序的目录结构
- android exoplayer 直播流,android – Exoplayer自适应hls流媒体
- ​LeetCode刷题实战248:中心对称数III
- mac 壁纸 android,可以用于任何设备的Android 12壁纸现在已可下载
- Run-Time Check Failure #3 - The variable 'p' is being used without being initialized.
- 【appium报错】Original error:Could not proxy command to remote server. Original error:socket hang up
- 这些渐行渐远的友情,你有过吗?
- Tomcat 2022-7-27
- NORDIC softDevice 蓝牙协议栈初始化程序分析(蓝牙从机,ble_peripheral)
- 基于wifi面向android的远程视频监控客户端开发,基于Wifi面向Android的远程视频监控客户端开发...
- 如何做一个简单的开放接口(1)-功能设计
热门文章
- linux运行 打开计算器,Linux 里头命令行打开计算机 怎么输入
- 20220212:力扣第277场周赛(下)
- 地图标识符号大全_创意游戏小程序大全:胡建土楼游戏!带你领略不一样的创意小游戏...
- sublime text3 选词及批量操作、设置书签快捷键、打开的插件view in browser
- redis服务端的maxclient和最大连接空闲时间设置
- VB 一个API方式存取日志文件的模块
- 英语总结系列(二十六):唠唠我的二月英语历程
- Ajax:前台利器—Ajax
- 去年每天入账25个亿,没错,我就是佩奇
- 18岁华裔准博士生,“杀死了”量子计算大进展