source: proiecte/HadoopJUnit/hadoop-0.20.1/docs/cn/hdfs_permissions_guide.html @ 120

Last change on this file since 120 was 120, checked in by (none), 14 years ago

Added the mail files for the Hadoop JUNit Project

  • Property svn:executable set to *
File size: 18.2 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<meta content="Apache Forrest" name="Generator">
6<meta name="Forrest-version" content="0.8">
7<meta name="Forrest-skin-name" content="pelt">
8<title>
9      HDFS权限管理甚户指南
10    </title>
11<link type="text/css" href="skin/basic.css" rel="stylesheet">
12<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
13<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
14<link type="text/css" href="skin/profile.css" rel="stylesheet">
15<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
16<link rel="shortcut icon" href="images/favicon.ico">
17</head>
18<body onload="init()">
19<script type="text/javascript">ndeSetTextSize();</script>
20<div id="top">
21<!--+
22    |breadtrail
23    +-->
24<div class="breadtrail">
25<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://hadoop.apache.org/">Hadoop</a> &gt; <a href="http://hadoop.apache.org/core/">Core</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
26</div>
27<!--+
28    |header
29    +-->
30<div class="header">
31<!--+
32    |start group logo
33    +-->
34<div class="grouplogo">
35<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
36</div>
37<!--+
38    |end group logo
39    +-->
40<!--+
41    |start Project Logo
42    +-->
43<div class="projectlogo">
44<a href="http://hadoop.apache.org/core/"><img class="logoImage" alt="Hadoop" src="images/core-logo.gif" title="Scalable Computing Platform"></a>
45</div>
46<!--+
47    |end Project Logo
48    +-->
49<!--+
50    |start Search
51    +-->
52<div class="searchbox">
53<form action="http://www.google.com/search" method="get" class="roundtopsmall">
54<input value="hadoop.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
55                    <input name="Search" value="Search" type="submit">
56</form>
57</div>
58<!--+
59    |end search
60    +-->
61<!--+
62    |start Tabs
63    +-->
64<ul id="tabs">
65<li>
66<a class="unselected" href="http://hadoop.apache.org/core/">项目</a>
67</li>
68<li>
69<a class="unselected" href="http://wiki.apache.org/hadoop">绎基</a>
70</li>
71<li class="current">
72<a class="selected" href="index.html">Hadoop 0.18文档</a>
73</li>
74</ul>
75<!--+
76    |end Tabs
77    +-->
78</div>
79</div>
80<div id="main">
81<div id="publishedStrip">
82<!--+
83    |start Subtabs
84    +-->
85<div id="level2tabs"></div>
86<!--+
87    |end Endtabs
88    +-->
89<script type="text/javascript"><!--
90document.write("Last Published: " + document.lastModified);
91//  --></script>
92</div>
93<!--+
94    |breadtrail
95    +-->
96<div class="breadtrail">
97
98             &nbsp;
99           </div>
100<!--+
101    |start Menu, mainarea
102    +-->
103<!--+
104    |start Menu
105    +-->
106<div id="menu">
107<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">文档</div>
108<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
109<div class="menuitem">
110<a href="index.html">抂述</a>
111</div>
112<div class="menuitem">
113<a href="quickstart.html">快速入闚</a>
114</div>
115<div class="menuitem">
116<a href="cluster_setup.html">集矀搭建</a>
117</div>
118<div class="menuitem">
119<a href="hdfs_design.html">HDFS构架讟计</a>
120</div>
121<div class="menuitem">
122<a href="hdfs_user_guide.html">HDFS䜿甚指南</a>
123</div>
124<div class="menupage">
125<div class="menupagetitle">HDFS权限指南</div>
126</div>
127<div class="menuitem">
128<a href="hdfs_quota_admin_guide.html">HDFS配额管理指南</a>
129</div>
130<div class="menuitem">
131<a href="commands_manual.html">呜什手册</a>
132</div>
133<div class="menuitem">
134<a href="hdfs_shell.html">FS Shell䜿甚指南</a>
135</div>
136<div class="menuitem">
137<a href="distcp.html">DistCp䜿甚指南</a>
138</div>
139<div class="menuitem">
140<a href="mapred_tutorial.html">Map-Reduce教皋</a>
141</div>
142<div class="menuitem">
143<a href="native_libraries.html">Hadoop本地库</a>
144</div>
145<div class="menuitem">
146<a href="streaming.html">Streaming</a>
147</div>
148<div class="menuitem">
149<a href="hadoop_archives.html">Hadoop Archives</a>
150</div>
151<div class="menuitem">
152<a href="hod.html">Hadoop On Demand</a>
153</div>
154<div class="menuitem">
155<a href="http://hadoop.apache.org/core/docs/r0.18.2/api/index.html">API参考</a>
156</div>
157<div class="menuitem">
158<a href="http://hadoop.apache.org/core/docs/r0.18.2/jdiff/changes.html">API Changes</a>
159</div>
160<div class="menuitem">
161<a href="http://wiki.apache.org/hadoop/">绎基</a>
162</div>
163<div class="menuitem">
164<a href="http://wiki.apache.org/hadoop/FAQ">垞见问题</a>
165</div>
166<div class="menuitem">
167<a href="http://hadoop.apache.org/core/mailing_lists.html">邮件列衚</a>
168</div>
169<div class="menuitem">
170<a href="http://hadoop.apache.org/core/docs/r0.18.2/releasenotes.html">发行诎明</a>
171</div>
172<div class="menuitem">
173<a href="http://hadoop.apache.org/core/docs/r0.18.2/changes.html">变曎日志</a>
174</div>
175</div>
176<div id="credit"></div>
177<div id="roundbottom">
178<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
179<!--+
180  |alternative credits
181  +-->
182<div id="credit2"></div>
183</div>
184<!--+
185    |end Menu
186    +-->
187<!--+
188    |start content
189    +-->
190<div id="content">
191<div title="Portable Document Format" class="pdflink">
192<a class="dida" href="hdfs_permissions_guide.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
193        PDF</a>
194</div>
195<h1>
196      HDFS权限管理甚户指南
197    </h1>
198<div id="minitoc-area">
199<ul class="minitoc">
200<li>
201<a href="#%E6%A6%82%E8%BF%B0">抂述</a>
202</li>
203<li>
204<a href="#%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD">甚户身仜</a>
205</li>
206<li>
207<a href="#%E7%90%86%E8%A7%A3%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%AE%9E%E7%8E%B0">理解系统的实现</a>
208</li>
209<li>
210<a href="#%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9FAPI%E5%8F%98%E6%9B%B4">文件系统API变曎</a>
211</li>
212<li>
213<a href="#Shell%E5%91%BD%E4%BB%A4%E5%8F%98%E6%9B%B4">Shell呜什变曎</a>
214</li>
215<li>
216<a href="#%E8%B6%85%E7%BA%A7%E7%94%A8%E6%88%B7">超级甚户</a>
217</li>
218<li>
219<a href="#Web%E6%9C%8D%E5%8A%A1%E5%99%A8">Web服务噚</a>
220</li>
221<li>
222<a href="#%E5%9C%A8%E7%BA%BF%E5%8D%87%E7%BA%A7">圚线升级</a>
223</li>
224<li>
225<a href="#%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0">配眮参数</a>
226</li>
227</ul>
228</div>
229   
230<a name="N1000D"></a><a name="%E6%A6%82%E8%BF%B0"></a>
231<h2 class="h3">抂述</h2>
232<div class="section">
233<p>
234                Hadoop分垃匏文件系统实现了䞀䞪和POSIX系统类䌌的文件和目圕的权限暡型。每䞪文件和目圕有䞀䞪<em>所有者owner</em>和䞀䞪<em>组group</em>。文件或目圕对其所有者、同组的其他甚户以及所有其他甚户分别有着䞍同的权限。对文件而蚀圓读取这䞪文件时需芁有<em>r</em>权限圓写入或者远加到文件时需芁有<em>w</em>权限。对目圕而蚀圓列出目圕内容时需芁具有<em>r</em>权限圓新建或删陀子文件或子目圕时需芁有<em>w</em>权限圓访问目圕的子节点时需芁有<em>x</em>权限。䞍同于POSIX暡型HDFS权限暡型䞭的文件没有<em>sticky</em><em>setuid</em>或<em>setgid</em>䜍因䞺这里没有可执行文件的抂念。䞺了简单起见这里也没有目圕的<em>sticky</em><em>setuid</em>或<em>setgid</em>䜍。总的来诎文件或目圕的权限就是它的<em>暡匏mode</em>。HDFS采甚了Unix衚瀺和星瀺暡匏的习惯包括䜿甚八进制数来衚瀺权限。圓新建䞀䞪文件或目圕它的所有者即客户进皋的甚户它的所属组是父目圕的组BSD的规定。
235        </p>
236<p>
237                每䞪访问HDFS的甚户进皋的标识分䞺䞀䞪郚分分别是<em>甚户名</em>和<em>组名列衚</em>。每次甚户进皋访问䞀䞪文件或目圕<span class="codefrag">foo</span>HDFS郜芁对其进行权限检查
238        </p>
239<ul>
240               
241<li>
242                   åŠ‚果甚户即<span class="codefrag">foo</span>的所有者则检查所有者的访问权限
243                </li>
244               
245<li>
246                   åŠ‚æžœ<span class="codefrag">foo</span>关联的组圚组名列衚䞭出现则检查组甚户的访问权限
247                </li>
248               
249<li>
250                   åŠåˆ™æ£€æŸ¥<span class="codefrag">foo</span>其他甚户的访问权限。
251                </li>
252       
253</ul>
254<p>
255                劂果权限检查倱莥则客户的操䜜䌚倱莥。
256</p>
257</div>
258
259
260<a name="N10065"></a><a name="%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD"></a>
261<h2 class="h3">甚户身仜</h2>
262<div class="section">
263<p>
264圚这䞪版本的Hadoop䞭客户端甚户身仜是通过宿䞻操䜜系统给出。对类Unix系统来诎
265</p>
266<ul>
267
268<li>
269   ç”šæˆ·åç­‰äºŽ<span class="codefrag">`whoami`</span>
270</li>
271
272<li>
273   ç»„列衚等于<span class="codefrag">`bash -c groups`</span>。
274</li>
275
276</ul>
277<p>
278将来䌚增加其他的方匏来确定甚户身仜比劂Kerberos、LDAP等。期埅甚䞊文䞭提到的第䞀种方匏来防止䞀䞪甚户假冒及䞀䞪甚户是䞍现实的。这种甚户身仜识别机制结合权限暡型允讞䞀䞪协䜜团䜓以䞀种有组织的圢匏共享文件系统䞭的资源。
279</p>
280<p>
281䞍管怎样甚户身仜机制对HDFS本身来诎只是倖郚特性。HDFS并䞍提䟛创建甚户身仜、创建组或倄理甚户凭证等功胜。
282</p>
283</div>
284
285
286<a name="N10083"></a><a name="%E7%90%86%E8%A7%A3%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%AE%9E%E7%8E%B0"></a>
287<h2 class="h3">理解系统的实现</h2>
288<div class="section">
289<p>
290        每次文件或目圕操䜜郜䌠递完敎的路埄名给name node每䞀䞪操䜜郜䌚对歀路埄做权限检查。客户框架䌚隐匏地将甚户身仜和䞎name node的连接关联起来从而减少改变现有客户端API的需求。经垞䌚有这种情况圓对䞀䞪文件的某䞀操䜜成功后之后同样的操䜜华䌚倱莥这是因䞺文件或路埄䞊的某些目圕已经䞍倍存圚了。比劂客户端銖先匀始读䞀䞪文件它向name node发出䞀䞪请求以获取文件第䞀䞪数据块的䜍眮。䜆接䞋去的获取其他数据块的第二䞪请求可胜䌚倱莥。及䞀方面删陀䞀䞪文件并䞍䌚撀销客户端已经获埗的对文件数据块的访问权限。而权限管理胜䜿埗客户端对䞀䞪文件的访问讞可圚䞀次请求之闎被收回。重倍䞀䞋权限的改变并䞍䌚撀销圓前客户端对文件数据块的访问讞可。
291</p>
292<p>
293map-reduce框架通过䌠递字笊䞲来指掟甚户身仜没有做其他特别的安党方面的考虑。文件或目圕的所有者和组属性是以字笊䞲的圢匏保存而䞍是像䌠统的Unix方匏蜬换䞺甚户和组的数字ID。
294</p>
295<p>
296这䞪发行版本的权限管理特性并䞍需芁改变data node的任䜕行䞺。Data node䞊的数据块䞊并没有任䜕<em>Hadoop</em>所有者或权限等关联属性。
297</p>
298</div>
299     
300
301<a name="N10096"></a><a name="%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9FAPI%E5%8F%98%E6%9B%B4"></a>
302<h2 class="h3">文件系统API变曎</h2>
303<div class="section">
304<p>
305        劂果权限检查倱莥所有䜿甚䞀䞪路埄参数的方法郜可胜抛出<span class="codefrag">AccessControlException</span>匂垞。
306</p>
307<p>新增方法</p>
308<ul>
309       
310<li>
311               
312<span class="codefrag">public FSDataOutputStream create(Path f, FsPermission permission, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress) throws IOException</span>
313       
314</li>
315       
316<li>
317               
318<span class="codefrag">public boolean mkdirs(Path f, FsPermission permission) throws IOException</span>
319       
320</li>
321       
322<li>
323               
324<span class="codefrag">public void setPermission(Path p, FsPermission permission) throws IOException</span>
325       
326</li>
327       
328<li>
329               
330<span class="codefrag">public void setOwner(Path p, String username, String groupname) throws IOException</span>
331       
332</li>
333       
334<li>
335               
336<span class="codefrag">public FileStatus getFileStatus(Path f) throws IOException</span> ä¹ŸäŒšè¿”回路埄关联的所有者、组和暡匏属性。
337        </li>
338
339
340</ul>
341<p>
342新建文件或目圕的暡匏受配眮参数<span class="codefrag">umask</span>的纊束。圓䜿甚之前的 <span class="codefrag">create(path, &hellip;)</span> æ–¹æ³•ïŒˆ<em>没有指定</em>权限参数时新文件的暡匏是<span class="codefrag">666&thinsp;&amp;&thinsp;^umask</span>。圓䜿甚新的 <span class="codefrag">create(path, </span><em>permission</em><span class="codefrag">, &hellip;)</span> æ–¹æ³•ïŒˆ<em>指定了</em>权限参数<em>P</em>时新文件的暡匏是<span class="codefrag">P&thinsp;&amp;&thinsp;^umask&thinsp;&amp;&thinsp;666</span>。圓䜿甚先前的 <span class="codefrag">mkdirs(path)</span> æ–¹æ³•ïŒˆ<em>没有指定</em> æƒé™å‚数新建䞀䞪目圕时新目圕的暡匏是<span class="codefrag">777&thinsp;&amp;&thinsp;^umask</span>。圓䜿甚新的 <span class="codefrag">mkdirs(path, </span><em>permission</em> <span class="codefrag">)</span> æ–¹æ³•ïŒˆ<em>指定了</em>权限参数<em>P</em>新建䞀䞪目圕时新目圕的暡匏是<span class="codefrag">P&thinsp;&amp;&thinsp;^umask&thinsp;&amp;&thinsp;777</span>。
343</p>
344</div>
345
346     
347
348<a name="N10100"></a><a name="Shell%E5%91%BD%E4%BB%A4%E5%8F%98%E6%9B%B4"></a>
349<h2 class="h3">Shell呜什变曎</h2>
350<div class="section">
351<p>新增操䜜</p>
352<dl>
353       
354<dt>
355<span class="codefrag">chmod [-R]</span> <em>mode file &hellip;</em>
356</dt>
357       
358<dd>
359                只有文件的所有者或者超级甚户才有权限改变文件暡匏。
360        </dd>
361       
362<dt>
363<span class="codefrag">chgrp [-R]</span> <em>group file &hellip;</em>
364</dt>
365       
366<dd>
367                䜿甚<span class="codefrag">chgrp</span>呜什的甚户必须属于特定的组䞔是文件的所有者或者甚户是超级甚户。
368        </dd>
369       
370<dt>
371<span class="codefrag">chown [-R]</span> <em>[owner][:[group]] file &hellip;</em>
372</dt>
373       
374<dd>
375                文件的所有者的只胜被超级甚户曎改。
376        </dd>
377       
378<dt>
379<span class="codefrag">ls </span> <em>file &hellip;</em>
380</dt>
381<dd></dd>
382       
383<dt>
384<span class="codefrag">lsr </span> <em>file &hellip;</em>
385</dt>
386       
387<dd>
388                蟓出栌匏做了调敎以星瀺所有者、组和暡匏。
389        </dd>
390
391</dl>
392</div>
393
394     
395
396<a name="N1013F"></a><a name="%E8%B6%85%E7%BA%A7%E7%94%A8%E6%88%B7"></a>
397<h2 class="h3">超级甚户</h2>
398<div class="section">
399<p>
400超级甚户即运行name node进皋的甚户。宜泛的讲劂果䜠启劚了name node䜠就是超级甚户。超级甚户干任䜕事情因䞺超级甚户胜借通过所有的权限检查。没有氞久记号保留谁<em>过去</em>是超级甚户圓name node匀始运行时进皋自劚刀断谁<em>现圚</em>是超级甚户。HDFS的超级甚户䞍䞀定非埗是name node䞻机䞊的超级甚户也䞍需芁所有的集矀的超级甚户郜是䞀䞪。同样的圚䞪人工䜜站䞊运行HDFS的实验者䞍需任䜕配眮就已方䟿的成䞺了他的郚眲实䟋的超级甚户。
401        </p>
402<p>
403        及倖管理员可以甚配眮参数指定䞀组特定的甚户劂果做了讟定这䞪组的成员也䌚是超级甚户。
404</p>
405</div>
406
407
408<a name="N10152"></a><a name="Web%E6%9C%8D%E5%8A%A1%E5%99%A8"></a>
409<h2 class="h3">Web服务噚</h2>
410<div class="section">
411<p>
412Web服务噚的身仜是䞀䞪可配眮参数。Name node并没有<em>真实</em>甚户的抂念䜆是Web服务噚衚现地就像它具有管理员选定的甚户的身仜甚户名和组䞀样。陀非这䞪选定的身仜是超级甚户吊则䌚有名字空闎䞭的䞀郚分对Web服务噚来诎䞍可见。
413</p>
414</div>
415
416
417<a name="N1015F"></a><a name="%E5%9C%A8%E7%BA%BF%E5%8D%87%E7%BA%A7"></a>
418<h2 class="h3">圚线升级</h2>
419<div class="section">
420<p>
421劂果集矀圚0.15版本的数据集<span class="codefrag">fsimage</span>䞊启劚所有的文件和目圕郜有所有者<em>O</em>组<em>G</em>和暡匏<em>M</em>这里 <em>O</em> å’Œ <em>G</em> åˆ†åˆ«æ˜¯è¶…级甚户的甚户标识和组名<em>M</em>是䞀䞪配眮参数。</p>
422</div>
423
424
425<a name="N1017E"></a><a name="%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0"></a>
426<h2 class="h3">配眮参数</h2>
427<div class="section">
428<dl>
429       
430<dt>
431<span class="codefrag">dfs.permissions = true </span>
432</dt>
433       
434<dd>
435                劂果是 <span class="codefrag">true</span>则打匀前文所述的权限系统。劂果是 <span class="codefrag">false</span>权限<em>检查</em> å°±æ˜¯å…³é—­çš„䜆是其他的行䞺没有改变。这䞪配眮参数的改变并䞍改变文件或目圕的暡匏、所有者和组等信息。
436                <p>
437               
438</p>
439                䞍管权限暡匏是匀还是关<span class="codefrag">chmod</span><span class="codefrag">chgrp</span> å’Œ <span class="codefrag">chown</span> <em>总是</em> äŒšæ£€æŸ¥æƒé™ã€‚这些呜什只有圚权限检查背景䞋才有甚所以䞍䌚有兌容性问题。这样这就胜让管理员圚打匀垞规的权限检查之前可以可靠地讟眮文件的所有者和权限。
440        </dd>
441       
442<dt>
443<span class="codefrag">dfs.web.ugi = webuser,webgroup</span>
444</dt>
445       
446<dd>
447        Web服务噚䜿甚的甚户名。劂果将这䞪参数讟眮䞺超级甚户的名称则所有Web客户就可以看到所有的信息。劂果将这䞪参数讟眮䞺䞀䞪䞍䜿甚的甚户则Web客户就只胜访问到&ldquo;other&rdquo;权限可访问的资源了。额倖的组可以加圚后面圢成䞀䞪甚逗号分隔的列衚。
448        </dd>
449       
450<dt>
451<span class="codefrag">dfs.permissions.supergroup = supergroup</span>
452</dt>
453       
454<dd>
455        超级甚户的组名。
456        </dd>
457       
458<dt>
459<span class="codefrag">dfs.upgrade.permission = 777</span>
460</dt>
461       
462<dd>
463        升级时的初始暡匏。文件<em>氞䞍䌚</em>被讟眮<em>x</em>权限。圚配眮文件䞭可以䜿甚十进制数<em>511<sub>10</sub></em>。
464        </dd>
465       
466<dt>
467<span class="codefrag">dfs.umask = 022</span>
468</dt>
469       
470<dd>
471               
472<span class="codefrag">umask</span>参数圚创建文件和目圕时䜿甚。圚配眮文件䞭可以䜿甚十进制数<em>18<sub>10</sub></em>。
473        </dd>
474
475</dl>
476</div>
477
478     
479 
480</div>
481<!--+
482    |end content
483    +-->
484<div class="clearboth">&nbsp;</div>
485</div>
486<div id="footer">
487<!--+
488    |start bottomstrip
489    +-->
490<div class="lastmodified">
491<script type="text/javascript"><!--
492document.write("Last Published: " + document.lastModified);
493//  --></script>
494</div>
495<div class="copyright">
496        Copyright &copy;
497         2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
498</div>
499<!--+
500    |end bottomstrip
501    +-->
502</div>
503</body>
504</html>
Note: See TracBrowser for help on using the repository browser.