背景

  公司要组建一个版本控制服务器,选定了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根目录区别内外管理,"关于多域的配置可看前面我写的博客)

    FTP的对外发布权限管理:

    用户:所有拥有公司SVN账户人员
    目录:FTP根目录指定可查看子目录及文件
    权限:只读(查看,下载)
    具体操作:建立一个群组--”外网发布只读群组“,公司所有人员权限设置为空,群组涵盖公司所有人员。设置群组根目录及目录只读权限覆盖所有人员权限!则所有拥有公司SVN账户人员可登录看见FTP服务器发布的内容!

           FTP服务器管理员权限:
             建立系统管理员群组,限定系统管理员,配置系统管理权限,将系统管理员拉入对应群组。对FTP目录有完全控制权限。

           部门权限:
            1.部门管理员。建立XX部门管理员群组,限定部门管理员,配置群组管理权限,将部门Leader拉入对应群组

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

Serv-U FTP版本控制服务器 - 目录规范的更多相关文章

  1. linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)

    linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...

  2. 服务器编程入门(5)Linux服务器程序规范

    问题聚焦:     除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范.     工欲善其事,必先利其器,这篇主要来探 ...

  3. Linux 高性能服务器编程——Linux服务器程序规范

    问题聚焦:     除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范.     工欲善其事,必先利其器,这篇主要来探 ...

  4. CentOS 7 使用SVN+Apache搭建版本控制服务器

    svn简介 Subversion是一个免费/开源的版本控制系统, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. ...

  5. day 14 项目目录规范; time ; logging

    import   sys print(sys.modules) 程序一运行,解释器将里面的所有内容全部加载到内存 项目目录规范: 代码不可能全部只写在一个文件,十几万行代码,调整,修改都很不方便. 所 ...

  6. 实战:使用SVN+apache搭建一个版本控制服务器

    今天讲的内容: 实战:使用SVN+apache搭建一个版本控制服务器 每天: 10:00 晚上:21:00 服务端:xuegod63.cn   IP:192.168.10.63 服务概述: SVN(s ...

  7. FTP 无法获取目录列表的处理方法

    FTP 无法获取目录列表的处理方法 1.以阿里云的服务器为例 对于阿里云的服务器是因为阿里云为了进一步保护用户的安全利益使用了安全策略组,我们要设置安全策略组对应的端口开启. 首先要设置端口范围,这个 ...

  8. svn+apache搭建版本控制服务器

    Centos7(linux)搭建版本控制服务器(svn+apache) 1.简介: 版本控制服务器: 版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所 ...

  9. linux高性能服务器编程 (七) --Linux服务器程序规范

    第七章 LInux 服务器程序规范 1)linux服务器程序一般以后台进程形式运行.后台进程又称为守护进程,是没有控制终端的,所以不会受到外界的干扰.守护进程的父进程通常是init进程(PID为1的进 ...

随机推荐

  1. cookie笔记(一)

    1.浏览器存储信息的一个工具 2.容量有限,每个域名一般50个.详情 3.形式:键=值: 4.获取:document.cookie; 5.设置:document.cookie="uid=we ...

  2. 什么是Web Worker?

    简单点说,Web Worker就是一个运行在后台的JavaScript线程,不会影响页面的响应. 我们知道,JavaScript是单线程的脚本语言,即同一时刻只能做一件事情,否则会带来极其复杂的同步问 ...

  3. javascript走马灯的效果(文档标题文字滚动)

    做一些网站的时候,文档标题会滚动,这个效果是走马灯的效果. <!DOCTYPE html> <html> <head> <meta charset=" ...

  4. Bash内置命令

    Bash有很多内置命令,因为这些命令是内置的,因此bash不需要在磁盘上为它们定位,执行速度更快. 1)列出所有内置命令列表$enable 2)关闭内置命令test$enable -n test 3) ...

  5. [0] 解决版本冲突-使用SVN主干与分支功能

    解决版本冲突-使用SVN主干与分支功能 1  前言 大多数产品开发存在这样一个生命周期:编码.测试.发布,然后不断重复.通常是这样的开发步骤: 1)    开发人员开发完毕某一版本(如版本A)功能后, ...

  6. 浅析TCP/IP 协议

    TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族. TCP/IP协议模块关系 从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层.网络层.传输层.应用层 ...

  7. 轻松Angularjs实现表格按指定列排序

    angular表格点击序号进行升序,再次点击进行降序排序,在输入框输入信息,出现相对应数据的那一行. html: <input type="text" ng-model=&q ...

  8. win7安装oracle10g数据库 提示“…实际版本为6.1”

    1.最重要的是需要以管理员的身份操作 2.修改重要的文件 然后解压,在目录中找到refhost.xml(有两个,我的一个是在stage\prereq\db目录下,一个是在stage\prereq\db ...

  9. Blockly编程:用Scratch制作游戏愤怒的小牛(小鸟)

    愤怒的小鸟曾经很热门,网上还说他是程序员最喜欢玩的游戏.最先我是WIKIOI的评测页面看到他的,后来在2014年全国信息学奥林匹克联赛第一天第三题飞扬的小鸟也看到了它.因此,突然想做一个类似愤怒的小鸟 ...

  10. 数据结构之数据的next和nextval

    KMP算法是模式匹配专用算法. 它是在已知模式串的next或nextval数组的基础上执行的.如果不知道它们二者之一,就没法使用KMP算法,因此我们需要计算它们. KMP算法由两部分组成: 第一部分, ...