背景

  公司要组建一个版本控制服务器,选定了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. ViewModel从未如此清爽 - 轻量级WPF MVVM框架Stylet

    Stylet是我最近发现的一个WPF MVVM框架, 在博客园上搜了一下, 相关的文章基本没有, 所以写了这个入门的文章推荐给大家. Stylet是受Caliburn Micro项目的启发, 所以借鉴 ...

  2. Android布局方式

    1. LinearLayout(线性布局)     android:orientation="vertical"    android:layout_width="wra ...

  3. 抓包工具-Wireshark(详细介绍与TCP三次握手数据分析)

    功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP ...

  4. 安装Mysql5.7并修改初始密码

    Centos 安装MySQL可以参考之前写的一篇文章 Centos7.3 安装Mysql5.7并修改初始密码 windows安装mysql5.7有两种方式 1.下载.msi安装文件直接根据界面提示进行 ...

  5. Mac OS X 安装后的简单设置

    让Mac拥有类似apt-get的功能--安装Homebrew Homebrew是一个包管理器,用于在Mac上安装一些OS X没有的UNIX工具(比如著名的wget). 国内下载地址:http://ww ...

  6. Unslider Web前端框架之图片轮播

    前端框架,前端组件,前端库,都是一个意思,能看源码. 最近做H5小游戏,用到了图片轮播的组件,而且要求支持移动端触屏滑动.一开始用的是nivo slider,但是对大小不一样的图不支持box 的参数设 ...

  7. 源码安装zabbix_server服务端

    按照上一篇安装lnmp环境:http://www.cnblogs.com/armo/p/6067716.html 保证lnmp正常运行,然后安装zabbix_server 安装依赖 yum -y in ...

  8. yiic执行出现不是内部或外部命令的解决办法

    右击我的电脑-->属性-->高级系统设置-->高级-->环境变量-->系统变量 设置为"D:\Program Files (x86)\wamp\bin\php\ ...

  9. Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7065294.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十四)--S ...

  10. Chapter 1. Introduce

    前言 本书全名是<H.264 and MPEG-4 Video Compression, Video Coding For Next-generation Multimedia>,作者为 ...