-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathpsm.preface.background.html
114 lines (105 loc) · 4.97 KB
/
psm.preface.background.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>1.1. 项目背景</title>
<link rel="stylesheet" href="/stylesheets/master.css" type="text/css">
<link rel="stylesheet" href="/stylesheets/syntax.css" type="text/css">
<link rel="stylesheet" href="/docbook/includes/css/docbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
<link rel="start" href="index.html" title="敏捷 Web 开发实践">
<link rel="up" href="psm.preface.html" title="1. 前言">
<link rel="prev" href="psm.preface.html" title="1. 前言">
<link rel="next" href="psm.preface.implement.html" title="1.2. 最终的实现">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<script language="javascript" type="text/javascript" src="/docbook/includes/js/header.js"></script><script language="javascript"> write_header("/docbook"); </script><div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">1.1. 项目背景</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="psm.preface.html"><img src="/docbook/includes/images/docbook/prev.png" alt="上一页"></a> </td>
<th width="60%" align="center">1. 前言</th>
<td width="20%" align="right"> <a accesskey="n" href="psm.preface.implement.html"><img src="/docbook/includes/images/docbook/next.png" alt="下一页"></a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect2" lang="zh-cn">
<div class="titlepage"><div><div><h3 class="title">
<a name="psm.preface.background"></a>1.1. 项目背景</h3></div></div></div>
<p>Subversion使用配置文件进行基于路径的授权,手工配置易于出错。
下面是一个错误百出的配置示例:</p>
<pre class="programlisting">
[groups]
admin = &admin, admin1, admin2
group1 = @group2, user1
group2 = user2, @group1
[aliases]
admin = jiangxin
[/]
@admin = rw
[/trunk]
$authenticated = rw
[repos1:/]
* =
user1 =
@group1 = r
@admin = rw
[repos1:/trunk/src]
* =
@group1 = rw
@visiters = r
</pre>
<p>其中的错误或可能的错误有:</p>
<div class="orderedlist"><ol type="1">
<li><p><span class="emphasis"><em>组的循环引用:</em></span>
group1包含了group2,而group2又反过来包含group1,造成循环引用。</p></li>
<li><p><span class="emphasis"><em>包含未定义的组或者别名:</em></span>
例如在 repos1 版本库的 /trunk/src 的策略中用到了 @visiters 组,
而该组没有在[groups]小节中定义;</p></li>
<li><p><span class="emphasis"><em>潜在的配置错误:</em></span>
版本库repos1的根路径,欲限制user1的访问,而实际效果并非如此,
因为uer1属于group1组,而group1组被授权。user1实际获得的权限是策略能够给予
的最大权限;</p></li>
<li><p><span class="emphasis"><em>潜在的配置错误:</em></span>
访问版本库repos1的 /trunk 目录,会参照缺省的[/trunk]小节设置,
这可能跟管理员本意不符。需要对repos1的/trunk重新定义权限以覆盖缺省的
[/trunk]小节的设置。</p></li>
</ol></div>
<p>其中1和2的错误会造成Subversion服务中断故障!3和4的问题如果不经过测试很难发现!
在我们为客户实施Subversion技术支持服务过程中,发现了用户迫切需要容错性强的
授权管理工具,于是便有了开发图形化管理界面的打算。选择 Python 是因为 Python
语言的魅力以及 Python 开发过程的高效。</p>
</div>
<table class="copyright" border="0" cellpadding="0" cellspacing="0" width="100%">
<col width="33%">
<col width="33%">
<col width="33%">
<tr>
<td></td>
<td align="center" valign="center"></td>
<td align="right" valign="center"><p class="copyright">
Copyright © 2006 <a href="http://www.worldhello.net/doc/"><b>WorldHello 开放文档之源</b> 计划</a></p></td>
</tr>
</table>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="psm.preface.html"><img src="/docbook/includes/images/docbook/prev.png" alt="上一页"></a> </td>
<td width="20%" align="center"><a accesskey="u" href="psm.preface.html"><img src="/docbook/includes/images/docbook/up.png" alt="上一级"></a></td>
<td width="40%" align="right"> <a accesskey="n" href="psm.preface.implement.html"><img src="/docbook/includes/images/docbook/next.png" alt="下一页"></a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">1. 前言 </td>
<td width="20%" align="center"><a accesskey="h" href="index.html"><img src="/docbook/includes/images/docbook/home.png" alt="首页"></a></td>
<td width="40%" align="right" valign="top"> 1.2. 最终的实现</td>
</tr>
</table>
</div>
<script language="javascript" type="text/javascript" src="/docbook/includes/js/footer.js"></script><script language="javascript"> write_footer("/docbook"); </script>
</body>
</html>