收藏 分销(赏)

CVS的安全和访问方式.doc

上传人:仙人****88 文档编号:11959257 上传时间:2025-08-22 格式:DOC 页数:14 大小:173KB 下载积分:10 金币
下载 相关 举报
CVS的安全和访问方式.doc_第1页
第1页 / 共14页
CVS的安全和访问方式.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
cvs的安全和访问方式 cvs的安全和访问方式 (版本v1.0.0) 中软国际信息技术有限公司 2025年8月22日 第11页 成文信息 主题词: cvs的安全和访问方式 作 者: icss产品部 文档类别: 实施规范 审 核: 批 准: 文档性质: 正式稿 主 送: 存档日期: 2004-12-3 抄 送: 发布日期: 签收信息 发送方 接收方: 接收方: 接收方: 代表人: 代表人: 代表人: 代表人: 日期: 日期: 日期: 日期: 变更信息 版本 原因 作者 日期 目录 第一章 cvs的连接方式 1 第二章 Cvsweb的使用 2 2.1 Cvsweb的安装配置 2 2.2 Cvsweb访问安全 3 第三章 cvs备份 4 3.1 使用cvslock锁定cvs repository 4 3.2 使用tar命令备份 5 3.3 使用rsync工具备份cvs 5 3.3.1 概述 5 3.3.2 备份方法 5 第四章 定期备份工具 7 4.1 使用/etc/crontab 7 4.2 使用at 9 第五章 文件夹权限设置 10 5.1 Cvs的权限要求: 10 5.2 用户权限分配的示例 10 第一章 cvs的连接方式 · Pserver的连接方式: 1、配置cvs服务 2、重启xinetd 3、连接cvs服务器: cvs –d :pserver:user@cvs服务器地址:/cvshome/cvsroot login · ssh的连接方式(传统口令): 1、测试是否安装ssh:rpm –qa|grep ssh 2、检查sshd是否运行:ps –aef|grep ssh 3、启动sshd:/etc/rc.d/init.d/sshd start 4、基于传统口令认证 #ssh –l [在远程服务器上的帐号] [远程服务器的主机名或ip地址] #[yes] #[输入密码] 5、连接cvs: #export CVS_RSH=ssh #exprot CVSROOT=:ext:cvs用户名@cvs服务器地址:/cvshome/cvsroot · ssh的连接方式(密钥): 1、配置远程服务器 编辑/etc/shh/sshd_config文件 将PasswordAuthentication yes改为PasswordAuthentication no 2、配置客户端 在客户端生成密钥 #cd ~ #ssh-keygen –t rsa (dsa) #~/.ssh/id_rsa.pubid文件即是公钥 发布公钥 将生成的id_rsa.pubid文件复制到远程服务器的cvs用户目录下 $cd .ssh $cat ../id_rsa.pubid >> authorized_keys 3、连接cvs: #export CVS_RSH=ssh #exprot CVSROOT=:ext:cvs用户名@cvs服务器地址:/cvshome/cvsroot 第二章 Cvsweb的使用 2.1 Cvsweb的安装配置 1、 下载CVSWEB的tar包 2、 解压缩tar: tar -zxf cvsweb-2.0.6.tar.gz.tgz 3、 将配置文件cvsweb.conf拷贝到/etc/httpd/cvsweb.conf 4、 将cvsweb.cgi拷贝到可执行cgi的目录/var/www/cgi-bin下 5、 修改:cvsweb.cgi让CGI找到配置文件: # == EDIT this == # Locations to search for user configuration, in order: for ("$mydir/cvsweb.conf", '/etc/httpd/cvsweb.conf') 6、修改cvsweb.conf: 修改CVSROOT路径设置: @CVSrepositories = ('local'=> ['Local Repository', '/cvshome/project1'])#<==修改指向本地的CVSROOT 2.2 Cvsweb访问安全 为cvsweb添加用户身份验证功能。 1、安装apache 2、编辑/etc/httpd/conf/httpd.conf: 添加 Alias /cgi-bin "/var/www/cgi-bin" <Directory "/var/www/cgi-bin "> Options Indexes MultiViews AllowOverride AuthConfig #表示进行身份验证 Order allow,deny Allow from all #设置可以访问此服务器的ip </Directory> 3、在/var/www/cgi-bin下创建.htaccess文件 #vi /var/www/cgi-bin/.htaccess 添加如下内容: AuthName "cvs login"  #AuthName 描述 AuthType Basic  AuthUserFile /var/www/cgi-bin/.htpasswd #apache默认系统对“.ht”开头的文件默认不允许外部读取 require valid-user  #require valid-user 或者 require user xxx 限制是所有合法用户还是指定用户 4、就是创建apache的验证用户 htpasswd -c /var/www/cgi-bin/.thpasswd 用户名 #第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数 5、修改密码 htpasswd -m .htpasswd frank 6、修改/cvsroot权限:chmod 775 /....... 6、 重启apache服务: /etc/init.d/httpd restart 7、 访问 http://cvs服务器地址/cgi-bin/cvsweb.cgi,弹出用户验证窗口。 第三章 cvs备份 3.1 使用cvslock锁定cvs repository 1、 下载cvslock.tar.gz包 2、 安装cvslock: # tar –zxvf cvslock.tar.gz #./config #make #make install 3、 使用cvslock锁定要备份的repository。 4、 Cvslock 参数: 描述: cvslock [-q] [-p pid] [-d CVS root] [-R|-W] [-u|-s|-c Command] [-l] directory OPTIONS -q 关闭cvslock,不发送任何诊断信息。 -d 指定repository -p pid 指定进程号。 -s 使用用户的登录shell锁定cvs,退出shell时解除锁定。 -c Command 使用指定的shell 命令锁定 -u 解除锁定,和-p 命令配合使用。 -l 指定锁定的目录. 5、 Cvslock使用示例: · 示例1: # cvslock -d /cvshome/project test 锁定/cvshome/project的module test # ls /cvshome/project/test #cvs.rfl.cvslock.localhost.27378 random.c,v 查看被锁定的目录,可以看到cvs.rfl.cvslock.localhost.27378文件,其中27378代表进程号。 # cvslock -u -p 27378 -d /cvshome/project2 test 解除锁定 # ls /cvshome/project/test random.c,v 用户锁定的文件被删除 · 示例二: # cvslock -s -d /cvshome/project test · 示例三: # cvslock -c 'find . -name "*cvslock*" ' -d /cvshome/project2 –l test 3.2 使用tar命令备份 将cvs相关内容,打成tar包备份保存。 # tar -cvf backup.tar /cvshome #gzip -q backup.tar /cvshome 3.3 使用rsync工具备份cvs 3.3.1 概述 rsync——remote sync是linux/unix系统下的数据镜像备份工具,它的特性如下: 1、可以镜像保存整个目录树和文件系统。 2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。 3、无须特殊权限即可安装。 4、优化的流程,文件传输效率高。 5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。 6、支持匿名传输。 3.3.2 备份方法 1、 下载:rsync 版本 2.4.6 (下载地址:http://rsync.samba.org/rsync/获得最新版本) 2、配置server端的/etc/rsyncd.conf文件 内容如下: uid = nobody gid = nobody use chroot = no         # 不使用chroot max connections = 4         # 最大连接数为4 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log   # 日志记录文件 [cvshome]              # 这里是认证的模块名,在client端需要指定 path = /cvshome     # 需要做镜像的目录 comment = cvs backup ignore errors             # 可以忽略一些无关的IO错误 read only = yes            # 只读 list = no             # 不允许列文件 auth users = backup         # 认证的用户名//可选项 secrets file = /etc/back.pas     # 认证文件名//可选项 3、可选操作:在server端生成一个密码文件/etc/back.pas # vi /etc/back.pas backup:backup 出于安全目的,文件的属性必需是只有属主可读。 4、在server端将rsync以守护进程形式启动 # rsync –daemon 5、可选操作:在启动时把服务起来: 加入inetd.conf 编辑/etc/services,加入rsync   873/tcp,指定rsync的服务端口是873     编加/etc/inetd.conf,加入rsync  stream  tcp   nowait  root  /bin/rsync rsync --daemon 6、从客户端进行测试 普通备份方式: # rsync -vzrtopg --progress --delete 服务器ip地址::模块名 备份位置 # rsync -vzrtopg --progress --delete 192.9.100.251::cvshome /backup 使用ssh备份: # rsync –e ssh -vzrtopg --progress --delete 192.9.100.251::cvshome /backup 参数说明: · v是verbose详细信息 · z是压缩 · r是recursive递归 · topg都是保持文件原有属性如属主、时间的参数 · --progress是显示出详细的进度情况 · --delete是指服务器端删除了这一文件,客户端也相应把文件删除,保持一致 · -e ssh的参数建 立起加密的连接 · --password-file=/password/path/file来指定密码文件,保证可以在脚本中使用rsync而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。 8、 备份脚本 脚本内容如下: #!/bin/sh DATE=`date +%w` rsync -vzrtopg --progress --delete 192.9.100.251::cvshome /backup/$DATE 〉/var/log/rsync.$DATE 9、使用crontab/at定期执行脚本 第四章 定期备份工具 4.1 使用/etc/crontab · 确认安装vixie-cron RPM 软件包:rpm -q vixie-cron · 判定该服务运行状态:/sbin/service crond status · 配置 cron 任务: cron 的主配置文件是 /etc/crontab,它包括下面几行: SHELL=/bin/bash #系统要使用哪个 shell 环境 PATH=/sbin:/bin:/usr/sbin:/usr/bin #定义用来执行命令的路径MAILTO=root # cron 任务的输出被邮寄给此处定义的用户名 HOME=/ #设置在执行命令或脚本时使用的主目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly · /etc/crontab –e添加任务,相应更改被保存在/var/spool/cron/username : 格式如下: minute hour day month dayofweek command ü minute — 分钟,从 0 到 59 之间的任何整数 ü hour — 小时,从 0 到 23 之间的任何整数 ü day — 日期,从 1 到 31 之间的任何整数 ü month — 月份,从 1 到 12 之间的任何整数 ü dayofweek — 星期,从 0 到 7 之间的任何整数 ü command — 要执行的命令 · 控制对 cron 的使用 ü /etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。 ü 这两个使用控制文件的格式都是每行一个用户。 ü 如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。 ü 如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。 · 启动和停止服务 启动:/sbin/service crond start 停止:/sbin/service crond stop 4.2 使用at · 确认安装了at RPM 软件包: rpm -q at · 判定该服务运行状态: /sbin/service atd status · 配置 at 作业 命令格式:at time 命令 参数: -f 从文件中读取命令或 shell 脚本,而非在提示后指定它们 -m 在作业完成后,给用户发送电子邮件 -v 显示作业将被执行的时间 time 参数格式: ü HH:MM 格式 — 譬如,04:00 代表 4:00AM。如果时间已过,它就会在第二天的这一时间执行。 ü midnight — 代表 12:00AM。 ü noon — 代表 12:00PM。 ü teatime — 代表 4:00PM。 ü 英文月名 日期 年份 格式— 譬如,January 15 2002 代表 2002 年 1 月 15 日。年份可有可无。 ü MMDDYY、MM/DD/YY、或 MM.DD.YY 格式 — 譬如,011502 代表 2002 年 1 月 15 日。 ü now + 时间 — 时间以 minutes、hours、days、或 weeks 为单位。譬如,now + 5 days 代表命令应该在 5 天之后的此时此刻执行。 配置步骤: ü 键入at 命令和它的时间参数 ü at> 提示下键入要执行的命令,按 [Enter] 键。 ü 键入 Ctrl-D · 控制对 at 和 batch 的使用 ü /etc/at.allow 和 /etc/at.deny 文件可以用来限制对 at 和 batch 命令的使用。 ü 这两个使用控制文件的格式都是每行一个用户。 ü 如果 at.allow 文件存在,只有其中列出的用户才能使用 at 或 batch 命令,at.deny 文件会被忽略。 ü 如果 at.allow 文件不存在,所有在 at.deny 文件中列出的用户都被禁止使用 at 和 batch 命令。 · 启动和停止服务 启动:/sbin/service atd start 停止:/sbin/service atd stop 第五章 文件夹权限设置 5.1 Cvs的权限要求: 例如:仓库(/cvshome/project1) · Cvs用户对/cvshome/project1/cvsroot及其中所有文件的读权限。 · Cvs用户对/src/master/cvsroot/histroy文件的写权限。 · Cvs用户对其需要修改模块目录的写权限。 5.2 用户权限分配的示例 一、用户情况 设定有两个用户组:cvsadmin组合cvsuser组 其中cvsadmin组中的用户,对于整个cvs服务器具有管理员权限。 cvsuser组中的用户,对整个cvs具有使用的权限,要根据所属项目的不同具体分配权限。 二、仓库情况:每个不同项目对应不同的 设定有两个仓库:仓库一:/cvshome/project1 仓库二:/cvshome/project2 三、模块情况:根据各个项目不同情况划分具体模块 设定仓库一(/cvshome/project1)下有三个模块:test、test1、test2 四、cvs工具:cvs_acls.pl 如使用ssh方式连接,具体操作如下: 以/cvshome/project1为例: 添加用户和组: groupadd cvsadmin groupadd cvsuser useradd –g cvsadmin admin1 useradd –g cvsadmin admin2 useradd –g cvsuser user1 useradd –g cvsuser user2 设置基本权限: cd $CVSROOT chmod -R 2770 test test1 test2 chown -R .cvsadmin test1 chown -R .cvsuser test2 细分权限: 使用cvs_acls.pl,使用方法如下: 1、安装 PERL. 2、在commitinfo 文件中添加一行: DEFAULT /usr/local/bin/cvs_acls 3、 将cvs_acls.pl文件添加到 /usr/local/bin/ 下并设定可执行权限 4、创建文件:$CVSROOT/CVSROOT/avail. 5、修改$CVSROOT/CVSROOT/avail文件内容,格式如下: {avail.*,unavail.*} [| user,user,... [| repos,repos,...]] 6、例如设置如下: unavail ;;使整个仓库不提交。. avail|uer1|test ;;user1可以对test模块有提交权限 unavail|uer2|test ;;user2可以对test模块没有提交权限
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服