2.2. Starteam服务器权限设置

2.2.1. 用户管理
2.2.2. 服务器配置的安全设置
2.2.3. 工程的权限设置
2.2.4. 视图的权限设置
2.2.5. 文件夹的权限设置
2.2.6. Starteam服务器优化

每一个服务器配置一个独立的用户数据库设置。用户的权限设置灵活,和本机帐号设置无关(不用设置本地帐号),且和本地路径无关。

2.2.1. 用户管理

  1. 如果使能了Lockout功能,则需要建立两个系统管理员帐号,以防止一个被锁定(如多次错误登录被无限期死锁),能用另外一个解锁。

  2. 建组原则(假设组名为 team1)

    • 建立用户组和子组

      假设组名为 team1,首先建立一个大组 ga_team1 组;再在 team1 组下再建立三个child group: g_team1_admin 组,g_team1_users 组和 g_team1_rdonly 组(即只读组)。

    • 建组的考虑

      将权限分配到组,是管理权限的基本原则。因为 starteam 在赋予权限时,是将用户名和组名混在一起,因此为组名加上前缀 “g_” 或者 “ga_”。区分 g_ 和 ga_ 是因为要防止误将权限设置到更大的 ga_ 组中(如后所述)。

      组管理员属于 g_team1_admin 组,拥有管理 LABEL 权限,创建新视图,以及管理代码权限分配权限;starteam管理员部分授权,目的是减少starteam管理员的管理负担。提高效率。

      小组的其它用户属于 g_team1_users 组,除了不具有 g_team1_admin 组的管理权限外,其它权限同 g_team1_admin。

      对于其它有研读代码或者掌握进度需求的用户,如 QA、部门领导等属于 g_team1_rdonly 组,除了具有只读方式看代码权限外,其它同 all users。

      建立项目组 ga_project_manager,是独立于项目组(也可以考虑为每个项目组单独设置),进行项目管理。为管理需求变更,在其下建立 g_pm_req;为管理TODO LIST,建立 g_pm_todo组。

      [警告]

      分配权限时,要注意不要把权限赋予大组(如 ga_team1 组)。因为 team1 组包括了 g_team1_rdonly 组(只读用户组)!

    • 关于组本身的权限

      除 Administrators 组外,任何组不要设置组的权限,以免组的权限设置超越了项目的安全设置,使对项目的安全设置形同虚设。

  3. 关于发布机使用独立用户

    在UNIX命令行上进行代码的check in/check out,需要建立独立用户,如:team1_release。以免由于使用同一个用户名在不同工作站check代码,造成文件状态UNKNOWS的情况。参见Starteam Howto中关于文件状态unknown的FAQ。

2.2.2. 服务器配置的安全设置

  1. Starteam VTS 的启动方式设置为NT服务方式

    保证服务器重启后,Starteam自动启动。

  2. Starteam 服务器端配置

    • General

      设置登录超时60秒,未动作超时300分钟。

    • Audits

      设置只保留10天安全日志。

    • Vault

      设置不清除文件状态表;

      设置最大CACHE为400MB。

      设置Cache的文件夹在Valut文件夹之外,以使在备份时,对cache区别对待 (不备份Cache)。

    • Notifications

      使能Email通知。

    • Protocal

      只保留一种协议支持:TCP/IP(SOCKETS),因为别的协议支持有问题;

      TCP/IP加密级别:不作设置,但是管理员要通知用户,如果客户端支持传输加密,请至少选择RSA R4 stream加密。windows客户端都支持,但是unix命令行不支持。

  3. 访问权限(Access Rights)

    管理员完全权限,不赋予其它用户任何权限。

  4. 系统策略(System Policy)

    • Access Rights

      使能 Ignore object ownership, 即忽略OwnerShip,一切均按照权限设置。

      不选择 Ignore group privileges, 即在保证只有 Administrators 组设置了组权限情况下,允许Administrators组用户超越项目的权限限制实施管理。

    • Security Events

      设置只保留30天的安全日值。

    • Passwords

      设置密钥最小长度6个字符。

    • 在用户管理(User manager)界面,设置所有用户第一次登录必须修改口令,并且不允许设置空口令。

    • Logon Failures

      设置5次失败登录锁定帐号,帐号锁定5分钟。

2.2.3. 工程的权限设置

先打开要配置的工程,Project->Access Rights,来设置工程权限。

  1. Project

    • All Users

      设置所有用户(All Users)具有如下权限:

      See Project and Properties

    • g_xxx_admin

      设置组管理员(如:g_team1_admin 组)具有如下权限:

      赋予除了 Delete project 外所有权限。以便于管理员修改自身权限,给自己加上删除label权限等,但要注意缺省没有赋予管理员的权限,当管理员完成相应管理功能后,恢复原状。

      [警告]

      不能赋给任何人删除工程权限!因为工程删除不可逆。

  2. Views

    • All Users

      设置所有用户(All Users)具有如下权限:

      See View and its Properties

    • g_xxx_admin

      设置组管理员(如:g_team1_admin 组)具有如下权限:

      赋予除了 Delete View, Delete Labels 外所有权限。

    [警告]

    Delete View, Delete Labels 不可逆,因此不赋予任何人此权限。但为了减轻管理员负担,赋予了 g_team1_admin 组 change view security setting 权限,g_team1_admin可以修改自己权限,使具有删除 label, 甚至是删除 view 权限,但要注意完成维护功能后,立即去掉该两项权限!

  3. Child Folders

    • g_team1_rdonly 组

      设置只读组(如:g_team1_rdonly 组)具有如下权限:

      具有:See folder and its properties, See folder history, See folder links 权限。

    • g_team1_users 组

      设置普通用户组(g_team1_users 组)具有如下权限:

      除 Modify folder properties, Delete folder from parent folder, Change folder security set 外所有权限。

    • g_team1_admin组

      设置组管理员(如:g_team1_admin 组)具有如下权限:

      除了 Delete folder from parent folder 外所有权限。

  4. Files

    • g_team1_rdonly 组

      设置只读组(如:g_team1_rdonly 组)具有如下权限:

      具有:See file and its properties, See file history, See file links, Check out files 权限。

    • g_team1_users 组

      设置普通用户组(g_team1_users 组)具有如下权限:

      除 Change file security set 外所有权限。

    • g_team1_admin 组

      设置组管理员(如:g_team1_admin 组)具有如下权限:

      所有权限。

      [警告]

      Move folder out of a view or project 权限也是危险操作,文件移出视图,也从历史视图中去掉,可能会破坏完整性。但将文件或目录移动到另外一个视图,是从服务器端删除文件的唯一办法。因此慎用。

  5. Change Request

    • All Users

      添加所有用户(All Users),将权限设置为空。即默认禁止一切的策略。

    [注意]

    工程的权限设置中的ChildFolders, Files, Change request 等的权限设置,用来确定工程的默认设置。即为没有对各项进行单独权限设置时的默认安全设置。

    将 Change Request 定义为默认禁止一切,目的是只在指定目录添加 Change Request.

  6. Topics

    • All Users

      设置所有用户(All Users)具有如下权限:

      设置除了 “Change topic security set”,“Delete Topic from folder”外所有权限。提供用户通过 TOPIC 进行讨论以及保存备忘。

    • 设置组管理员(如:g_team1_admin 组)具有所有权限。

2.2.4. 视图的权限设置

先打开要配置的视图,View->Access Rights,来设置视图权限。

  1. 根视图

    可以不设置权限,继承整个工程中的Project AccessRight的 Views 的各项权限设置。

  2. 分支视图

    按需设置。可以使老版本的维护由其他人完成,或者进行 xp 模式开发,为开发者(非管理员)设置更大的权限。

2.2.5. 文件夹的权限设置

选择视图下相应文件夹,鼠标右键单击,选择 Advanced->Access Rights,设置权限。

需要先设置“根目录”权限。再单独设置各一级子目录(defect, src, doc等)的权限。如果需要还可以对二级目录等(模块)设置权限,但不建议设置二级目录的权限。

  1. 根目录

    根目录和子目录在权限设置上的异同

    1. 根目录的权限不传递,即在根目录上设置的权限对派生的子视图没有影响;而非根目录会传递权限,所以尽量不要在子目录(非根目录)上设置权限,以免连带影响其它视图中该目录的权限,造成混乱。

    2. 根目录继承视图或者工程的 Child Folder 权限;子目录先继承根目录权限, 再继承视图,工程权限。

    3. 因此,不要设置根目录的权限页的 Child Folder 页,这样没有设置权限的子目录便可以继承视图的 Child Folder页的权限。但是可能需要设置根目录权限页的 This Folder 页,因为 This Folder的权限默认取自视图或者工程的 Child Folder 设置。如果有子目录的权限大于视图或者工程的 Child Folder的设置,就需要设置This Folder 设置。但是副作用是,子目录的权限并没有完全继承视图或者工程的更严格的设置,而是采用了根目录的 This Folder 设置和 视图的Subfolder设置的组合(因为根目录没有设置Subfolder权限)。这样有可能使所有能够访问根目录的用户访问整个目录树!!!好像没有更好的解决方案。

    根目录上的权限设置:

    • This Folder

      All Users:所有用户(All Users)具有 See folder and its properties, See folder history, See folder links 权限。

      g_team1_admin: 组管理员(g_team1_admin)具有:除了Delete folder from parent folder 外所有权限。

    • Child Folders,Files, Change Requests, Tasks, Topics

      不作设置,以继承视图或者工程的权限设置。

  2. Defect目录

    • This Folder

      All Users : 所有用户(All Users)具有—— See folder and its properties, See folder history, See folder links 权限。

      g_qa_admin:QA组管理员(g_qa_admin)具有——除了Delete folder from parent folder 外所有权限。

      g_team1_admin:team1组管理员(g_team1_admin)具有——除了Delete folder from parent folder 外所有权限。

      [注意]

      设置服务QA管理员和team1目录管理权限,允许QA管理员建立子目录,用于对CR分类。

    • Child Folders

      All Users:所有用户(All Users)具有——See folder and its properties, See folder history, See folder links 权限。

      g_qa_admin:QA组管理员(g_qa_admin)具有——除了Delete folder from parent folder 外所有权限。

      g_team1_admin:team1组管理员(g_team1_admin)具有——除了Delete folder from parent folder 外所有权限。

    • Change Requests

      All Users:所有用户(All Users)具有——除了Change CR Security set , Delete CR from folder外所有权限。

      g_qa_admin:QA组管理员(g_qa_admin)具有——除了Delete CR from folder 外所有权限。

      [警告]

      为了减轻管理员负担,赋予了 g_qa_admin 组 change CR security setting 权限,g_qa_admin可以修改change request的权限,使之可以被删除,再删除该 cr。

    • Files, Tasks, Topics

      不另外设置权限,继承视图或者工程的权限。

  3. src 目录

    src 目录是用来存放源代码的目录,应着重注意本目录权限设置。

    可以不作任何单独设置,因为继承了视图或者工程的权限设置。如果工程或者视图关于文件的权限设置足够安全的话,可以不必设置本目录权限。

  4. ProjectManagement 目录

    ProjectManagement 目录,用于以文件和 TOPIC形式存储 TODO_LIST, 编程规范,需求变更。

    1. ProjectManagement 目录

      • This Folder

        All Users :所有用户具有—— See folder and its properties, See folder history, See folder links 权限。

        ga_project_manager 组 :具有——除 Modify folder properties, Delete folder from parent folder, Change folder security set 外所有权限。

        g_team1_admin组 :具有——除 Delete folder from parent folder 外所有权限。

      • Child Folders

        All Users :所有用户具有—— See folder and its properties, See folder history, See folder links 权限。

        ga_project_manager 组 :具有——除 Modify folder properties, Delete folder from parent folder, Change folder security set 外所有权限。

        g_team1_admin组 :具有——除 Delete folder from parent folder 外所有权限。

      • Files

        All Users:具有——See file and its properties, See file history, See file links, Check out files 权限。

        ga_project_manager:普通用户组具有——除了 Change file security set, Delete file from folder 外的所有权限。

        g_team1_admin:组管理员具有——除了 Delete file from folder 外的所有权限。

      • Topic

        All Users:具有——除了 Change top security set, Delete topic from forder 外所有权限。

        g_team1_admin:具有——除了 Delete topic from forder 外所有权限。

      • Change

        暂不设置,采用工程缺省禁用配置。

    2. TODO LIST子目录

      所有用户具有只读文件,读写TOPIC权限;g_pm_todo 组 和 g_team1_admin组具有读写文件,读写topic,和整理目录权限。

    3. 编程规范

      所有用户都有整理目录,读写topic权限;g_team1_admin 多了一项管理文件的权限。

    4. 需求变更

      所有用户具有只读文件,只读TOPIC权限;g_pm_req 组 和 g_team1_admin 组具有读写文件,读写topic,和整理目录权限。

2.2.6. Starteam服务器优化

2.2.6.1. 提高数据库性能
  • 数据库可以有多种选择,但是ACCESS基本可以满足需求,虽然有1.2G文件大小限制,但一般应用不会超过。数据库的选择不是性能瓶颈。

  • 安装和使用 Copy Indexes Tools in "StarTeam VirtualTeam Server 4.0\Tuning Scripts\MS Access\Package"。

  • 压缩数据库;(ODBCàsystem dsn)

  • 增加数据库的Max Buffer size从2048至8192,Threads 从3至 24。

  • 关于其他数据库,参见 http://devforum.starbase.com/starbase/Main.asp

2.2.6.2. 提高Starteam服务器性能
2.2.6.3. 备份

备份涉及到:

  • The Configuration and cipher files

    Configuration\server.scg

    Configuration\server.cph

  • Database files

    Database\StarTeamDB.mdb (Assuming Access database)

  • Vault:

    Archive dir: *.*

    Attachments dir: *.*

  • Optional

    Cache dir: *.*

参见http://devforum.starbase.com/starbase/Articles/Default.asp?id=133