背景
公司要组建一个版本控制服务器,选定了serv-u,初始目的是应用于war级的一些标准组件的版本控制/测试交付/统一对外发布渠道。
项目过程图:
如果不使用版本控制会出现什么问题?
War标准组件级
备份多个版本,费空间,费时间
不同版本的组件随意流动,无法进行控制
- 难于恢复至以前正确版本 容易引发BUG
不同组件冲突,管理混乱
难于追溯问题组件的提交人和提交时间
- 无法进行权限控制 ,本发布困难
为什么选择Serv-u
- 1.流量控制 带宽限制,支持对上传、下载流量,磁盘空间,网络带宽设定限制,从而能够保证用户有限的资源不被大量的FTP 访问用户所消耗。
- 2.支持文件上传和下载过程中的断点续传。断点续传能有效地降低重复下载。
- 3.远程管理方便用户从任何地方管理FTP Server,提供工作效率。
- 4.安全性能出众。安全机制通过严格的权限控制,提供系统安全性和稳定性。在目录和文件层次都可以设置安全防范措施。
- 5.支持"多宿主"IP站点对需单个服务器支持多IP地址的站点尤为适用。
- 6.支持匿名用户接入。
- 7.作为系统服务运行。
- 8.符合windows 标准的用户界面友好亲切,易于掌握。
- 9.支持实时的多用户连接,支持匿名用户的访问;
- 10.通过限制同一时间最大的用户访问人数确保PC 的正常运转。
- 11.能够为不同用户提供不同设置,支持分组管理数量众多的用户。
- 12.可自用设置在用户登录或退出时的显示信息,支持具有UNIX 风格的外部链接。
- 13.可以基于IP 对用户授予或拒绝访问权限。
- 14.可以监控每个用户的行为日志,变更可追溯
使用交互图
基本思路:在一台服务器上建立一个仓库,仓库里可以存放许多不同产品的标准组件。由仓库管理员统一管理这些源程序.这样就好象只有一个人在修改文件一样.
搭建FTP版本控制服务器
建立仓库/目录
仓库及目录创建按照以下规则进行建立
安装Serv-U 配置“域”即FTP根目录,对应整个公司对外发布目录,由FTP服务器管理员进行管理
FTP根目录下按照部门,分别建立目录,由部门Leader进行管理
部门目录下按照部门所涵盖产品,分别建立标准组件目录,由部门组件发布负责人进行管理
最下级用户,无目录管理权限,可读取下载整个FTP服务器指定可查看目录内容
配置Serv-u用户账号
Serv-U可使用Mysql数据库进行用户管理。 通过Mysql数据库管理用户账号密码,账号密码同公司SVN账户同步,使用SVN同一套账号密码。(账号,姓名,密码,邮箱)。限定了访问来源,同时账户可支持自管理(自己找回密码)。
客户端登录
Serv-u支持多种登录方式,可以按需进行调整开放
配置用户权限规范
配置目录规范需要了解Serv-U的账号管理规则:
Serv-U有服务器——域——组——用户四级账号管理规则,每一级都有相应的根目录,目录访问规则和虚拟路径的设置。
Serv-U中所有地方的权限都是由小到大,由上到下。具体到上边的问题就是设置规则的优先级为用户,群组,域,服务器。假如有一个账号在多个地方对某一目录设置了不同的权限,那么首先看用户属性中设置的目录权限,如果其他地方设置于此处有冲突,则以此处为准;如果用户属性没有设置,则看上一级群组中如何设置的,依此类推。
首先建立一个“域“,并确认FTP根目录
(可以配置多个域配置同一个FTP根目录区别内外管理,"关于多域的配置可看前面我写的博客)
用户:所有拥有公司SVN账户人员
目录:FTP根目录指定可查看子目录及文件
权限:只读(查看,下载)
具体操作:建立一个群组--”外网发布只读群组“,公司所有人员权限设置为空,群组涵盖公司所有人员。设置群组根目录及目录只读权限覆盖所有人员权限!则所有拥有公司SVN账户人员可登录看见FTP服务器发布的内容!
2.部门标准组件发布人员。立XX部门XX组件发布群组,群组限定该标准组件发布人员(通常为两人,测试/开发负责人),配置群组管理权限,将标准组件测试/开发负责人拉入对应群组
网上搜索资料发现有朋友碰到一个问题:弄好后发现把用户加进群组里只能继承根目录和限制的那些设置,群组目录和虚拟目录都不能继承
实际测试:弄好后把用户加进群组里只能继承根目录、群组目录访问、限制的那些设置,虚拟目录都不能继承
在创建用户的时候,需要在目录访问里添加一个目录权限,路径输入“%HOME%”,路径名没有双引号,然后权限提供只读权限,点确定后群组目录和全局目录还有虚拟路径的文件夹都能显示出来,因为手动添加用户的时候软件不会给你添加这个默认根目录,所以自己没添加的话就能看不到任何目录,如果用向导创建的话就没这个问题。
注意:如果你想通过群组“目录访问”限制用户只能访问根目录中的哪些目录,那么需要移除用户目录权限中的“%HOME%”,因为用户继承所有目录后因为用户权限会高于群组权限,用户就可直接看到包含在群组根目录中的所有目录和文件。
关于对目录规范配置的一个列子
需求:有A.B.C.D.四个文件夹,其中D文件夹下有文件夹D1.D2.D3.D4;有用户组1.2.3.4,其中所有用户组能访问A.B.C,但对D文件夹用户组1只能访问D1,用户组2只能访问D2,用户组3只能说D3,用户组4只能访问D4
实施:
在用户组的权限设置里面操作。
以用户组1为例。
首先定位路径为A,权限为“只读”。
然后分别定位B和C,权限也是“只读”。
最后选择路径为D1文件夹,权限为“只读”。
OK了。
这时候用户组1一共有4条规则。
其他用户组依照同样的方法,只是最后一步换个文件夹。
PS:所有用户组的根目录均设置为A、B、C、D文件夹的根目录。
日志配置
Serv-u支持实时日志监控,选择某个已经建立好的具体域后,除了在Activity——“Domain log”下看到部分日志外,还可以在Settings——Messages选显卡下设置登录信息记录到文件。
其他配置
磁盘配额
为了保证FTP服务器的正常稳定运行,对于开放上传权限的用户有时候有必要开启上传文件大小限制。选中某个群组后,目录访问规则,双击需限制目录,然后在”目录内容的最大尺寸“栏里根据需要填写允许该用户最大使用的磁盘空间即可。
限制上传、下载速度和最大用户连接数
1、可以在本地服务器——限制和设置——限制选项卡下设置一个全局的参数。
2、可以在某个域下的限制和设置——限制选项卡中设置登录该域的最大用户连接数。
3、针对某个具体用户进行具体设置:可以设置最大上传、下载速度;设置该用户的最大连接数;设置线程数(同一IP的连接数)。
IP访问策略
Deny Access(拒绝访问):选中此项则下面列出的IP地址被拒绝访问此FTP服务器。
Allow Access(允许访问):选中此项则只有下面列出的IP地址被允许访问此FTP服务器