多仓库多用户多权限的CVS服务器配置
来源:互联网 发布:推荐淘宝内部券qq群 编辑:程序博客网 时间:2024/06/08 10:51
需求:建立多个cvs仓库,有多个账户对每个仓库有不同的使用权限。
所需软件:
服务器端软件
cvs-1.11.17.tar.gz
xinetd-2.3.13-4.4E.1.i386.rpm(AS4自带)
cvs-1.11.17.tar.gz
xinetd-2.3.13-4.4E.1.i386.rpm(AS4自带)
Windows客户端:
wincvs 2.0.2.4
wincvs 2.0.2.4
配置步骤:
一、 配置服务器:
1. 安装cvs、xinetd。
略。
2. 增加cvs组和cvsroot用户。
# groupadd cvs
# useradd -g cvs -G cvs -d /usr/local/cvsroot cvsroot
# passwd cvsroot
# chmod -R 770 /usr/local/cvsroot
3. 创建仓库。
# su cvsroot
# cd /usr/local/cvsroot
# mkdir dev
# mkdir prod
# cvs -d /usr/local/cvsroot/dev init
# cvs -d /usr/local/cvsroot/prod init
# chmod -R 770 ./dev ./prod
4. 创建xinetd所需的cvspserver文件。
# exit (退出到root环境)
# cd /etc/xinetd.d
# vi cvspserver
写入如下内容:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server= /usr/bin/cvs
server_args= -f --allow-root=/usr/local/cvsroot/dev --allow-root=/usr/local/cvsroot/prod pserver
log_on_failure += USERID
}
注:
xinetd的server_args有长度限制,所以如果想建立运行很多仓库的话,可以使用如下方法:
# groupadd cvs
# useradd -g cvs -G cvs -d /usr/local/cvsroot cvsroot
# passwd cvsroot
# chmod -R 770 /usr/local/cvsroot
3. 创建仓库。
# su cvsroot
# cd /usr/local/cvsroot
# mkdir dev
# mkdir prod
# cvs -d /usr/local/cvsroot/dev init
# cvs -d /usr/local/cvsroot/prod init
# chmod -R 770 ./dev ./prod
4. 创建xinetd所需的cvspserver文件。
# exit (退出到root环境)
# cd /etc/xinetd.d
# vi cvspserver
写入如下内容:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server= /usr/bin/cvs
server_args= -f --allow-root=/usr/local/cvsroot/dev --allow-root=/usr/local/cvsroot/prod pserver
log_on_failure += USERID
}
注:
xinetd的server_args有长度限制,所以如果想建立运行很多仓库的话,可以使用如下方法:
#vi /etc/xinetd.d/cvspserver
写入如下内容:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/local/cvsroot/cvs.run
log_on_failure += USERID
}
编辑/usr/local/cvsroot/cvs.run
# vi /usr/local/cvsroot/cvs.run
写入如下内容:
#!/bin/bash
/usr/bin/cvs -f /
--allow-root=/usr/local/cvsroot/dev /
--allow-root=/usr/local/cvsroot/prod /
pserver
# chmod a+x /usr/local/cvsroot/cvs.run
5. 写入 cvspserver 服务(但一般系统中已有)
vi /etc/services
写入:
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
6. 启动cvspserver服务
# /etc/init.d/xinetd restart
写入如下内容:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/local/cvsroot/cvs.run
log_on_failure += USERID
}
编辑/usr/local/cvsroot/cvs.run
# vi /usr/local/cvsroot/cvs.run
写入如下内容:
#!/bin/bash
/usr/bin/cvs -f /
--allow-root=/usr/local/cvsroot/dev /
--allow-root=/usr/local/cvsroot/prod /
pserver
# chmod a+x /usr/local/cvsroot/cvs.run
5. 写入 cvspserver 服务(但一般系统中已有)
vi /etc/services
写入:
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
6. 启动cvspserver服务
# /etc/init.d/xinetd restart
7. 检查cvspserver是否已启动
# netstat -l | grep cvspserver
二、 用户的创建和权限管理。
8. 创建可以登录cvs服务器的虚用户
# su cvsroot
# vi /usr/local/cvsroot/dev/CVSROOT/passwd
# su cvsroot
# vi /usr/local/cvsroot/dev/CVSROOT/passwd
写入:
tony:123456:cvsroot
mike:123456:cvsroot
hall:123456:cvsroot
表示tony、mike和hall有登录dev仓库的权限。
# vi /usr/local/cvsroot/prod/CVSROOT/passwd
tony:123456:cvsroot
mike:123456:cvsroot
hall:123456:cvsroot
表示tony、mike和hall有登录dev仓库的权限。
# vi /usr/local/cvsroot/prod/CVSROOT/passwd
写入:
tony:123456:cvsroot
mark:123456:cvsroot
表示tony和mark有登录prod仓库的权限。
tony:123456:cvsroot
mark:123456:cvsroot
表示tony和mark有登录prod仓库的权限。
9. 给不同的用户分配不同的权限:
允许tony对dev仓库有写的权限:
# vi /usr/local/cvsroot/dev/CVSROOT/writers
写入:
tony
允许mike和hall对dev仓库只有读的权限:
# vi /usr/local/cvsroot/dev/CVSROOT/readers
写入:
mike
hall
# vi /usr/local/cvsroot/dev/CVSROOT/writers
写入:
tony
允许mike和hall对dev仓库只有读的权限:
# vi /usr/local/cvsroot/dev/CVSROOT/readers
写入:
mike
hall
允许tony对prod仓库有写的权限:
# vi /usr/local/cvsroot/prod/CVSROOT/writers
写入:
tony
允许mark对prod仓库只有读的权限:
# vi /usr/local/cvsroot/prod/CVSROOT/readers
写入:
mark
# vi /usr/local/cvsroot/prod/CVSROOT/writers
写入:
tony
允许mark对prod仓库只有读的权限:
# vi /usr/local/cvsroot/prod/CVSROOT/readers
写入:
mark
10. 创建生成密码所需的文件:
# vi /usr/local/cvsroot/cvspswd.pl
写入:
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}/n";
# vi /usr/local/cvsroot/cvspswd.pl
写入:
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}/n";
# chmod a+x /usr/local/cvsroot/cvspswd.pl
11. 生成密码。
11. 生成密码。
如果密码为07890,则:
# /usr/local/cvsroot/cvspswd.pl 07890
回车后会得到一行加密后的字符串,,用这行字符串替换每个仓库下面的/cvsroot/passwd中的123456
# /usr/local/cvsroot/cvspswd.pl 07890
回车后会得到一行加密后的字符串,,用这行字符串替换每个仓库下面的/cvsroot/passwd中的123456
12. 测试:
# cvs -d :pserver:tony@ip:/usr/local/cvsroot/dev login
输入密码后没有错误提示即正常登录了。
# cvs -d :pserver:tony@ip:/usr/local/cvsroot/dev login
输入密码后没有错误提示即正常登录了。
- 多仓库多用户多权限的CVS服务器配置
- CVS 多仓库 多权限控制
- 使用CVS配置多用户
- cvs服务器的配置
- CVS服务器的配置
- CVS服务器的配置
- Linux权限详解,多用户多组各种权限配置原理
- CVS服务器建立和权限配置
- CVS服务器建立和权限配置(zz)
- CVS服务器建立和权限配置方法
- CVS服务器建立和权限配置方法
- CVS服务器建立和权限配置方法
- CVS服务器的安装配置
- CVS仓库的写法
- CVS服务器建立和权限配置完全方案
- CVS权限配置
- cvs权限配置
- Samba服务器多用户有不同的访问权限
- web developer tips (83):通过反射从堆栈里获取调用的方法名称
- 软件推荐:强大的本地搜索工具Everything及FAT16/FAT32转化为NTFS
- ZIP与RAR2
- J2ME打混淆包
- Symbian 下字符串解析类 TLex8 的使用
- 多仓库多用户多权限的CVS服务器配置
- Java 写rtf(word) excel文件
- java 线程入门(备忘)
- SIFT特征中关键点检测技术研究
- MTK环境搭建
- 查找域内的计算机,加入COMBOX
- 关于设计
- as
- 文件读写常用操作