]> git.k1024.org Git - debian-pylibacl.git/blob - posix1e.html
Imported upstream version 0.3.0
[debian-pylibacl.git] / posix1e.html
1
2 <!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3 <html><head><title>Python: module posix1e</title>
4 </head><body bgcolor="#f0f0f8">
5
6 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
7 <tr bgcolor="#7799ee">
8 <td valign=bottom>&nbsp;<br>
9 <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>posix1e</strong></big></big></font></td
10 ><td align=right valign=bottom
11 ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/iusty/work/pylibacl/build/lib.linux-x86_64-2.4/posix1e.so">/home/iusty/work/pylibacl/build/lib.linux-x86_64-2.4/posix1e.so</a></font></td></tr></table>
12     <p><tt>POSIX.1e&nbsp;ACLs&nbsp;manipulation<br>
13 &nbsp;<br>
14 This&nbsp;module&nbsp;provides&nbsp;support&nbsp;for&nbsp;manipulating&nbsp;POSIX.1e&nbsp;ACLS<br>
15 &nbsp;<br>
16 Depending&nbsp;on&nbsp;the&nbsp;operating&nbsp;system&nbsp;support&nbsp;for&nbsp;POSIX.1e,&nbsp;<br>
17 the&nbsp;<a href="#ACL">ACL</a>&nbsp;type&nbsp;will&nbsp;have&nbsp;more&nbsp;or&nbsp;less&nbsp;capabilities:<br>
18 &nbsp;&nbsp;-&nbsp;level&nbsp;1,&nbsp;only&nbsp;basic&nbsp;support,&nbsp;you&nbsp;can&nbsp;create<br>
19 &nbsp;&nbsp;&nbsp;&nbsp;ACLs&nbsp;from&nbsp;files&nbsp;and&nbsp;text&nbsp;descriptions;<br>
20 &nbsp;&nbsp;&nbsp;&nbsp;once&nbsp;created,&nbsp;the&nbsp;type&nbsp;is&nbsp;immutable<br>
21 &nbsp;&nbsp;-&nbsp;level&nbsp;2,&nbsp;complete&nbsp;support,&nbsp;you&nbsp;can&nbsp;alter<br>
22 &nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;once&nbsp;it&nbsp;is&nbsp;created<br>
23 &nbsp;<br>
24 Also,&nbsp;in&nbsp;level&nbsp;2,&nbsp;more&nbsp;types&nbsp;are&nbsp;available,&nbsp;corresponding<br>
25 to&nbsp;acl_entry_t&nbsp;(<a href="#Entry">Entry</a>&nbsp;type),&nbsp;acl_permset_t&nbsp;(<a href="#Permset">Permset</a>&nbsp;type).<br>
26 &nbsp;<br>
27 Example:<br>
28 &gt;&gt;&gt;&nbsp;import&nbsp;posix1e<br>
29 &gt;&gt;&gt;&nbsp;acl1&nbsp;=&nbsp;posix1e.<a href="#ACL">ACL</a>(file="file.txt")&nbsp;<br>
30 &gt;&gt;&gt;&nbsp;print&nbsp;acl1<br>
31 user::rw-<br>
32 group::rw-<br>
33 other::r--<br>
34 &nbsp;<br>
35 &gt;&gt;&gt;&nbsp;b&nbsp;=&nbsp;posix1e.<a href="#ACL">ACL</a>(text="u::rx,g::-,o::-")<br>
36 &gt;&gt;&gt;&nbsp;print&nbsp;b<br>
37 user::r-x<br>
38 group::---<br>
39 other::---<br>
40 &nbsp;<br>
41 &gt;&gt;&gt;&nbsp;b.applyto("file.txt")<br>
42 &gt;&gt;&gt;&nbsp;print&nbsp;posix1e.<a href="#ACL">ACL</a>(file="file.txt")<br>
43 user::r-x<br>
44 group::---<br>
45 other::---<br>
46 &nbsp;<br>
47 &gt;&gt;&gt;</tt></p>
48 <p>
49 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
50 <tr bgcolor="#ee77aa">
51 <td colspan=3 valign=bottom>&nbsp;<br>
52 <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
53     
54 <tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
55 <td width="100%"><dl>
56 <dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
57 </font></dt><dd>
58 <dl>
59 <dt><font face="helvetica, arial"><a href="posix1e.html#ACL">ACL</a>
60 </font></dt><dt><font face="helvetica, arial"><a href="posix1e.html#Entry">Entry</a>
61 </font></dt><dt><font face="helvetica, arial"><a href="posix1e.html#Permset">Permset</a>
62 </font></dt></dl>
63 </dd>
64 </dl>
65  <p>
66 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
67 <tr bgcolor="#ffc8d8">
68 <td colspan=3 valign=bottom>&nbsp;<br>
69 <font color="#000000" face="helvetica, arial"><a name="ACL">class <strong>ACL</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
70     
71 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
72 <td colspan=2><tt>Type&nbsp;which&nbsp;represents&nbsp;a&nbsp;POSIX&nbsp;<a href="#ACL">ACL</a><br>
73 &nbsp;<br>
74 Parameters:<br>
75 &nbsp;&nbsp;Only&nbsp;one&nbsp;keword&nbsp;parameter&nbsp;should&nbsp;be&nbsp;provided:<br>
76 &nbsp;&nbsp;-&nbsp;file="...",&nbsp;meaning&nbsp;create&nbsp;<a href="#ACL">ACL</a>&nbsp;representing<br>
77 &nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;access&nbsp;<a href="#ACL">ACL</a>&nbsp;of&nbsp;that&nbsp;file<br>
78 &nbsp;&nbsp;-&nbsp;filedef="...",&nbsp;meaning&nbsp;create&nbsp;<a href="#ACL">ACL</a>&nbsp;representing<br>
79 &nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;default&nbsp;<a href="#ACL">ACL</a>&nbsp;of&nbsp;that&nbsp;directory<br>
80 &nbsp;&nbsp;-&nbsp;fd=&lt;int&gt;,&nbsp;meaning&nbsp;create&nbsp;<a href="#ACL">ACL</a>&nbsp;representing<br>
81 &nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;access&nbsp;<a href="#ACL">ACL</a>&nbsp;of&nbsp;that&nbsp;file&nbsp;descriptor<br>
82 &nbsp;&nbsp;-&nbsp;text="...",&nbsp;meaning&nbsp;create&nbsp;<a href="#ACL">ACL</a>&nbsp;from&nbsp;a&nbsp;<br>
83 &nbsp;&nbsp;&nbsp;&nbsp;textual&nbsp;description<br>
84 &nbsp;&nbsp;-&nbsp;acl=&lt;<a href="#ACL">ACL</a>&nbsp;instance&gt;,&nbsp;meaning&nbsp;create&nbsp;a&nbsp;copy<br>
85 &nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;an&nbsp;existing&nbsp;<a href="#ACL">ACL</a>&nbsp;instance<br>
86 &nbsp;&nbsp;-&nbsp;mode=&lt;int&gt;,&nbsp;meaning&nbsp;create&nbsp;an&nbsp;<a href="#ACL">ACL</a>&nbsp;from&nbsp;a&nbsp;numeric&nbsp;mode<br>
87 &nbsp;&nbsp;&nbsp;&nbsp;(e.g.&nbsp;mode=0644)&nbsp;(this&nbsp;is&nbsp;valid&nbsp;only&nbsp;when&nbsp;the&nbsp;C&nbsp;library<br>
88 &nbsp;&nbsp;&nbsp;&nbsp;provides&nbsp;the&nbsp;acl_from_mode&nbsp;call)<br>
89 If&nbsp;no&nbsp;parameters&nbsp;are&nbsp;passed,&nbsp;create&nbsp;an&nbsp;empty&nbsp;<a href="#ACL">ACL</a>;&nbsp;this<br>
90 makes&nbsp;sense&nbsp;only&nbsp;when&nbsp;your&nbsp;OS&nbsp;supports&nbsp;<a href="#ACL">ACL</a>&nbsp;modification<br>
91 &nbsp;(i.e.&nbsp;it&nbsp;implements&nbsp;full&nbsp;POSIX.1e&nbsp;support)<br>&nbsp;</tt></td></tr>
92 <tr><td>&nbsp;</td>
93 <td width="100%">Methods defined here:<br>
94 <dl><dt><a name="ACL-__cmp__"><strong>__cmp__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__cmp__">__cmp__</a>(y)&nbsp;&lt;==&gt;&nbsp;cmp(x,y)</tt></dd></dl>
95
96 <dl><dt><a name="ACL-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__eq__">__eq__</a>(y)&nbsp;&lt;==&gt;&nbsp;x==y</tt></dd></dl>
97
98 <dl><dt><a name="ACL-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__ge__">__ge__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;=y</tt></dd></dl>
99
100 <dl><dt><a name="ACL-__getstate__"><strong>__getstate__</strong></a>(...)</dt><dd><tt>Dumps&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;to&nbsp;an&nbsp;external&nbsp;format.</tt></dd></dl>
101
102 <dl><dt><a name="ACL-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__gt__">__gt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;y</tt></dd></dl>
103
104 <dl><dt><a name="ACL-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
105
106 <dl><dt><a name="ACL-__iter__"><strong>__iter__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__iter__">__iter__</a>()&nbsp;&lt;==&gt;&nbsp;iter(x)</tt></dd></dl>
107
108 <dl><dt><a name="ACL-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__le__">__le__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;=y</tt></dd></dl>
109
110 <dl><dt><a name="ACL-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__lt__">__lt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;y</tt></dd></dl>
111
112 <dl><dt><a name="ACL-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__ne__">__ne__</a>(y)&nbsp;&lt;==&gt;&nbsp;x!=y</tt></dd></dl>
113
114 <dl><dt><a name="ACL-__setstate__"><strong>__setstate__</strong></a>(...)</dt><dd><tt>Loads&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;from&nbsp;an&nbsp;external&nbsp;format.</tt></dd></dl>
115
116 <dl><dt><a name="ACL-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
117
118 <dl><dt><a name="ACL-append"><strong>append</strong></a>(...)</dt><dd><tt>Append&nbsp;a&nbsp;new&nbsp;<a href="#Entry">Entry</a>&nbsp;to&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;and&nbsp;return&nbsp;it.<br>
119 &nbsp;<br>
120 This&nbsp;is&nbsp;a&nbsp;convenience&nbsp;function&nbsp;to&nbsp;create&nbsp;a&nbsp;new&nbsp;<a href="#Entry">Entry</a>&nbsp;<br>
121 and&nbsp;append&nbsp;it&nbsp;to&nbsp;the&nbsp;<a href="#ACL">ACL</a>.<br>
122 If&nbsp;a&nbsp;parameter&nbsp;of&nbsp;type&nbsp;<a href="#Entry">Entry</a>&nbsp;instance&nbsp;is&nbsp;given,&nbsp;the&nbsp;<br>
123 entry&nbsp;will&nbsp;be&nbsp;a&nbsp;copy&nbsp;of&nbsp;that&nbsp;one&nbsp;(as&nbsp;if&nbsp;copied&nbsp;with&nbsp;<br>
124 <a href="#Entry">Entry</a>.copy()),&nbsp;otherwise,&nbsp;the&nbsp;new&nbsp;entry&nbsp;will&nbsp;be&nbsp;empty.</tt></dd></dl>
125
126 <dl><dt><a name="ACL-applyto"><strong>applyto</strong></a>(...)</dt><dd><tt>Apply&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;to&nbsp;a&nbsp;file&nbsp;or&nbsp;filehandle.<br>
127 &nbsp;<br>
128 Parameters:<br>
129 &nbsp;&nbsp;-&nbsp;either&nbsp;a&nbsp;filename&nbsp;or&nbsp;a&nbsp;file-like&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;or&nbsp;an&nbsp;integer;&nbsp;this<br>
130 &nbsp;&nbsp;&nbsp;&nbsp;represents&nbsp;the&nbsp;filesystem&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;on&nbsp;which&nbsp;to&nbsp;act<br>
131 &nbsp;&nbsp;-&nbsp;optional&nbsp;flag&nbsp;representing&nbsp;the&nbsp;type&nbsp;of&nbsp;<a href="#ACL">ACL</a>&nbsp;to&nbsp;set,&nbsp;either<br>
132 &nbsp;&nbsp;&nbsp;&nbsp;ACL_TYPE_ACCESS&nbsp;(default)&nbsp;or&nbsp;ACL_TYPE_DEFAULT</tt></dd></dl>
133
134 <dl><dt><a name="ACL-calc_mask"><strong>calc_mask</strong></a>(...)</dt><dd><tt>Compute&nbsp;the&nbsp;file&nbsp;group&nbsp;class&nbsp;mask.<br>
135 &nbsp;<br>
136 The&nbsp;<a href="#ACL-calc_mask">calc_mask</a>()&nbsp;method&nbsp;calculates&nbsp;and&nbsp;sets&nbsp;the&nbsp;permissions&nbsp;<br>
137 associated&nbsp;with&nbsp;the&nbsp;ACL_MASK&nbsp;<a href="#Entry">Entry</a>&nbsp;of&nbsp;the&nbsp;<a href="#ACL">ACL</a>.<br>
138 The&nbsp;value&nbsp;of&nbsp;the&nbsp;new&nbsp;permissions&nbsp;is&nbsp;the&nbsp;union&nbsp;of&nbsp;the&nbsp;permissions&nbsp;<br>
139 granted&nbsp;by&nbsp;all&nbsp;entries&nbsp;of&nbsp;tag&nbsp;type&nbsp;ACL_GROUP,&nbsp;ACL_GROUP_OBJ,&nbsp;or&nbsp;<br>
140 ACL_USER.&nbsp;&nbsp;If&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;already&nbsp;contains&nbsp;an&nbsp;ACL_MASK&nbsp;entry,&nbsp;its&nbsp;<br>
141 permissions&nbsp;are&nbsp;overwritten;&nbsp;if&nbsp;it&nbsp;does&nbsp;not&nbsp;contain&nbsp;an&nbsp;ACL_MASK&nbsp;<br>
142 <a href="#Entry">Entry</a>,&nbsp;one&nbsp;is&nbsp;added.<br>
143 &nbsp;<br>
144 The&nbsp;order&nbsp;of&nbsp;existing&nbsp;entries&nbsp;in&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;is&nbsp;undefined&nbsp;after&nbsp;this&nbsp;<br>
145 function.</tt></dd></dl>
146
147 <dl><dt><a name="ACL-check"><strong>check</strong></a>(...)</dt><dd><tt>Check&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;validity.<br>
148 &nbsp;<br>
149 This&nbsp;is&nbsp;a&nbsp;non-portable,&nbsp;Linux&nbsp;specific&nbsp;extension&nbsp;that&nbsp;allow&nbsp;more<br>
150 information&nbsp;to&nbsp;be&nbsp;retrieved&nbsp;in&nbsp;case&nbsp;an&nbsp;<a href="#ACL">ACL</a>&nbsp;is&nbsp;not&nbsp;valid&nbsp;than&nbsp;the<br>
151 validate()&nbsp;method.<br>
152 &nbsp;<br>
153 This&nbsp;method&nbsp;will&nbsp;return&nbsp;either&nbsp;False&nbsp;(the&nbsp;<a href="#ACL">ACL</a>&nbsp;is&nbsp;valid),&nbsp;or&nbsp;a&nbsp;tuple<br>
154 with&nbsp;two&nbsp;elements.&nbsp;The&nbsp;first&nbsp;element&nbsp;is&nbsp;one&nbsp;of&nbsp;the&nbsp;following<br>
155 constants:<br>
156 &nbsp;&nbsp;-&nbsp;ACL_MULTI_ERROR:&nbsp;The&nbsp;<a href="#ACL">ACL</a>&nbsp;contains&nbsp;multiple&nbsp;entries&nbsp;that&nbsp;have&nbsp;a<br>
157 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag&nbsp;type&nbsp;that&nbsp;may&nbsp;occur&nbsp;at&nbsp;most&nbsp;once<br>
158 &nbsp;&nbsp;-&nbsp;ACL_DUPLICATE_ERROR:&nbsp;The&nbsp;<a href="#ACL">ACL</a>&nbsp;contains&nbsp;multiple&nbsp;ACL_USER&nbsp;or&nbsp;<br>
159 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACL_GROUP&nbsp;entries&nbsp;&nbsp;with&nbsp;the&nbsp;same&nbsp;ID<br>
160 &nbsp;&nbsp;-&nbsp;ACL_MISS_ERROR:&nbsp;A&nbsp;required&nbsp;entry&nbsp;is&nbsp;missing<br>
161 &nbsp;&nbsp;-&nbsp;ACL_ENTRY_ERROR:&nbsp;The&nbsp;<a href="#ACL">ACL</a>&nbsp;contains&nbsp;an&nbsp;invalid&nbsp;entry&nbsp;tag&nbsp;type<br>
162 &nbsp;<br>
163 The&nbsp;second&nbsp;element&nbsp;of&nbsp;the&nbsp;tuple&nbsp;is&nbsp;the&nbsp;index&nbsp;of&nbsp;the&nbsp;entry&nbsp;that&nbsp;is<br>
164 invalid&nbsp;(in&nbsp;the&nbsp;same&nbsp;order&nbsp;as&nbsp;by&nbsp;iterating&nbsp;over&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;entry)</tt></dd></dl>
165
166 <dl><dt><a name="ACL-delete_entry"><strong>delete_entry</strong></a>(...)</dt><dd><tt>Deletes&nbsp;an&nbsp;entry&nbsp;from&nbsp;the&nbsp;<a href="#ACL">ACL</a>.<br>
167 &nbsp;<br>
168 Note:&nbsp;Only&nbsp;with&nbsp;level&nbsp;2<br>
169 Parameters:<br>
170 &nbsp;-&nbsp;the&nbsp;<a href="#Entry">Entry</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;which&nbsp;should&nbsp;be&nbsp;deleted;&nbsp;note&nbsp;that&nbsp;after<br>
171 &nbsp;&nbsp;&nbsp;this&nbsp;function&nbsp;is&nbsp;called,&nbsp;that&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;is&nbsp;unusable&nbsp;any&nbsp;longer<br>
172 &nbsp;&nbsp;&nbsp;and&nbsp;should&nbsp;be&nbsp;deleted</tt></dd></dl>
173
174 <dl><dt><a name="ACL-next"><strong>next</strong></a>(...)</dt><dd><tt>x.<a href="#ACL-next">next</a>()&nbsp;-&gt;&nbsp;the&nbsp;next&nbsp;value,&nbsp;or&nbsp;raise&nbsp;StopIteration</tt></dd></dl>
175
176 <dl><dt><a name="ACL-to_any_text"><strong>to_any_text</strong></a>(...)</dt><dd><tt>Convert&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;to&nbsp;a&nbsp;custom&nbsp;text&nbsp;format.<br>
177 &nbsp;<br>
178 This&nbsp;method&nbsp;encapsulates&nbsp;the&nbsp;acl_to_any_text&nbsp;function.&nbsp;It&nbsp;allows&nbsp;a&nbsp;<br>
179 customized&nbsp;text&nbsp;format&nbsp;to&nbsp;be&nbsp;generated&nbsp;for&nbsp;the&nbsp;<a href="#ACL">ACL</a>.&nbsp;See<br>
180 acl_to_any_text(3)&nbsp;for&nbsp;more&nbsp;details.<br>
181 &nbsp;<br>
182 Parameters:<br>
183 &nbsp;&nbsp;-&nbsp;prefix:&nbsp;if&nbsp;given,&nbsp;this&nbsp;string&nbsp;will&nbsp;be&nbsp;prepended&nbsp;to&nbsp;all&nbsp;lines<br>
184 &nbsp;&nbsp;-&nbsp;separator:&nbsp;a&nbsp;single&nbsp;character&nbsp;(defaults&nbsp;to&nbsp;'\n');&nbsp;this&nbsp;will&nbsp;be<br>
185 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user&nbsp;to&nbsp;separate&nbsp;the&nbsp;entries&nbsp;in&nbsp;the&nbsp;<a href="#ACL">ACL</a><br>
186 &nbsp;&nbsp;-&nbsp;options:&nbsp;a&nbsp;bitwise&nbsp;combination&nbsp;of:<br>
187 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEXT_ABBREVIATE:&nbsp;use&nbsp;'u'&nbsp;instead&nbsp;of&nbsp;'user',&nbsp;'g'&nbsp;instead&nbsp;of&nbsp;<br>
188 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'group',&nbsp;etc.<br>
189 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEXT_NUMERIC_IDS:&nbsp;User&nbsp;and&nbsp;group&nbsp;IDs&nbsp;are&nbsp;included&nbsp;as&nbsp;decimal<br>
190 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbers&nbsp;instead&nbsp;of&nbsp;names<br>
191 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEXT_SOME_EFFECTIVE:&nbsp;Include&nbsp;comments&nbsp;denoting&nbsp;the&nbsp;effective<br>
192 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;permissions&nbsp;when&nbsp;some&nbsp;are&nbsp;masked<br>
193 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEXT_ALL_EFFECTIVE:&nbsp;Include&nbsp;comments&nbsp;after&nbsp;all&nbsp;<a href="#ACL">ACL</a>&nbsp;entries<br>
194 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;affected&nbsp;by&nbsp;an&nbsp;ACL_MASK&nbsp;entry<br>
195 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEXT_SMART_INDENT:&nbsp;Used&nbsp;in&nbsp;combination&nbsp;with&nbsp;the&nbsp;_EFFECTIVE<br>
196 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options,&nbsp;this&nbsp;will&nbsp;ensure&nbsp;that&nbsp;comments&nbsp;<br>
197 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;alligned&nbsp;to&nbsp;the&nbsp;fourth&nbsp;tab&nbsp;position<br>
198 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(assuming&nbsp;one&nbsp;tab&nbsp;equal&nbsp;eight&nbsp;spaces</tt></dd></dl>
199
200 <dl><dt><a name="ACL-valid"><strong>valid</strong></a>(...)</dt><dd><tt>Test&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;for&nbsp;validity.<br>
201 &nbsp;<br>
202 This&nbsp;method&nbsp;tests&nbsp;the&nbsp;<a href="#ACL">ACL</a>&nbsp;to&nbsp;see&nbsp;if&nbsp;it&nbsp;is&nbsp;a&nbsp;valid&nbsp;<a href="#ACL">ACL</a><br>
203 in&nbsp;terms&nbsp;of&nbsp;the&nbsp;filesystem.&nbsp;More&nbsp;precisely,&nbsp;it&nbsp;checks&nbsp;that:<br>
204 &nbsp;<br>
205 The&nbsp;<a href="#ACL">ACL</a>&nbsp;contains&nbsp;exactly&nbsp;one&nbsp;entry&nbsp;with&nbsp;each&nbsp;of&nbsp;the<br>
206 ACL_USER_OBJ,&nbsp;ACL_GROUP_OBJ,&nbsp;and&nbsp;ACL_OTHER&nbsp;tag&nbsp;types.&nbsp;Entries<br>
207 with&nbsp;ACL_USER&nbsp;and&nbsp;ACL_GROUP&nbsp;tag&nbsp;types&nbsp;may&nbsp;appear&nbsp;zero&nbsp;or&nbsp;more<br>
208 times&nbsp;in&nbsp;an&nbsp;<a href="#ACL">ACL</a>.&nbsp;An&nbsp;<a href="#ACL">ACL</a>&nbsp;that&nbsp;contains&nbsp;entries&nbsp;of&nbsp;ACL_USER&nbsp;or<br>
209 ACL_GROUP&nbsp;tag&nbsp;types&nbsp;must&nbsp;contain&nbsp;exactly&nbsp;one&nbsp;entry&nbsp;of&nbsp;the&nbsp;<br>
210 ACL_MASK&nbsp;tag&nbsp;type.&nbsp;If&nbsp;an&nbsp;<a href="#ACL">ACL</a>&nbsp;contains&nbsp;no&nbsp;entries&nbsp;of<br>
211 ACL_USER&nbsp;or&nbsp;ACL_GROUP&nbsp;tag&nbsp;types,&nbsp;the&nbsp;ACL_MASK&nbsp;entry&nbsp;is&nbsp;optional.<br>
212 &nbsp;<br>
213 All&nbsp;user&nbsp;ID&nbsp;qualifiers&nbsp;must&nbsp;be&nbsp;unique&nbsp;among&nbsp;all&nbsp;entries&nbsp;of<br>
214 the&nbsp;ACL_USER&nbsp;tag&nbsp;type,&nbsp;and&nbsp;all&nbsp;group&nbsp;IDs&nbsp;must&nbsp;be&nbsp;unique&nbsp;among&nbsp;all<br>
215 entries&nbsp;of&nbsp;ACL_GROUP&nbsp;tag&nbsp;type.<br>
216 &nbsp;<br>
217 The&nbsp;method&nbsp;will&nbsp;return&nbsp;1&nbsp;for&nbsp;a&nbsp;valid&nbsp;<a href="#ACL">ACL</a>&nbsp;and&nbsp;0&nbsp;for&nbsp;an&nbsp;invalid&nbsp;one.<br>
218 This&nbsp;has&nbsp;been&nbsp;chosen&nbsp;because&nbsp;the&nbsp;specification&nbsp;for&nbsp;acl_valid&nbsp;in<br>
219 the&nbsp;POSIX.1e&nbsp;standard&nbsp;documents&nbsp;only&nbsp;one&nbsp;possible&nbsp;value&nbsp;for&nbsp;errno<br>
220 in&nbsp;case&nbsp;of&nbsp;an&nbsp;invalid&nbsp;<a href="#ACL">ACL</a>,&nbsp;so&nbsp;we&nbsp;can't&nbsp;differentiate&nbsp;between<br>
221 classes&nbsp;of&nbsp;errors.&nbsp;Other&nbsp;suggestions&nbsp;are&nbsp;welcome.</tt></dd></dl>
222
223 <hr>
224 Data and other attributes defined here:<br>
225 <dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#ACL-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
226
227 </td></tr></table> <p>
228 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
229 <tr bgcolor="#ffc8d8">
230 <td colspan=3 valign=bottom>&nbsp;<br>
231 <font color="#000000" face="helvetica, arial"><a name="Entry">class <strong>Entry</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
232     
233 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
234 <td colspan=2><tt>Type&nbsp;which&nbsp;represents&nbsp;an&nbsp;entry&nbsp;in&nbsp;an&nbsp;<a href="#ACL">ACL</a>.<br>
235 &nbsp;<br>
236 The&nbsp;type&nbsp;exists&nbsp;only&nbsp;if&nbsp;the&nbsp;OS&nbsp;has&nbsp;full&nbsp;support&nbsp;for&nbsp;POSIX.1e<br>
237 Can&nbsp;be&nbsp;created&nbsp;either&nbsp;by:<br>
238 &nbsp;&nbsp;e&nbsp;=&nbsp;posix1e.<a href="#Entry">Entry</a>(myACL)&nbsp;#&nbsp;this&nbsp;creates&nbsp;a&nbsp;new&nbsp;entry&nbsp;in&nbsp;the&nbsp;<a href="#ACL">ACL</a><br>
239 or&nbsp;by:<br>
240 &nbsp;&nbsp;for&nbsp;entry&nbsp;in&nbsp;myACL:<br>
241 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;entry<br>
242 &nbsp;<br>
243 Note&nbsp;that&nbsp;the&nbsp;<a href="#Entry">Entry</a>&nbsp;keeps&nbsp;a&nbsp;reference&nbsp;to&nbsp;its&nbsp;<a href="#ACL">ACL</a>,&nbsp;so&nbsp;even&nbsp;if&nbsp;<br>
244 you&nbsp;delete&nbsp;the&nbsp;<a href="#ACL">ACL</a>,&nbsp;it&nbsp;won't&nbsp;be&nbsp;cleaned&nbsp;up&nbsp;and&nbsp;will&nbsp;continue&nbsp;to&nbsp;<br>
245 exist&nbsp;until&nbsp;its&nbsp;<a href="#Entry">Entry</a>(ies)&nbsp;will&nbsp;be&nbsp;deleted.<br>&nbsp;</tt></td></tr>
246 <tr><td>&nbsp;</td>
247 <td width="100%">Methods defined here:<br>
248 <dl><dt><a name="Entry-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#Entry-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
249
250 <dl><dt><a name="Entry-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#Entry-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
251
252 <dl><dt><a name="Entry-copy"><strong>copy</strong></a>(...)</dt><dd><tt>Copy&nbsp;an&nbsp;<a href="#ACL">ACL</a>&nbsp;entry.<br>
253 &nbsp;<br>
254 This&nbsp;method&nbsp;sets&nbsp;all&nbsp;the&nbsp;parameters&nbsp;to&nbsp;those&nbsp;of&nbsp;another<br>
255 entry,&nbsp;even&nbsp;one&nbsp;of&nbsp;another's&nbsp;<a href="#ACL">ACL</a><br>
256 Parameters:<br>
257 &nbsp;-&nbsp;src,&nbsp;instance&nbsp;of&nbsp;type&nbsp;<a href="#Entry">Entry</a></tt></dd></dl>
258
259 <hr>
260 Data and other attributes defined here:<br>
261 <dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#Entry-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
262
263 <dl><dt><strong>parent</strong> = &lt;attribute 'parent' of 'posix1e.Entry' objects&gt;<dd><tt>The&nbsp;parent&nbsp;<a href="#ACL">ACL</a>&nbsp;of&nbsp;this&nbsp;entry</tt></dl>
264
265 <dl><dt><strong>permset</strong> = &lt;attribute 'permset' of 'posix1e.Entry' objects&gt;<dd><tt>The&nbsp;permission&nbsp;set&nbsp;of&nbsp;this&nbsp;<a href="#ACL">ACL</a>&nbsp;entry</tt></dl>
266
267 <dl><dt><strong>qualifier</strong> = &lt;attribute 'qualifier' of 'posix1e.Entry' objects&gt;<dd><tt>The&nbsp;qualifier&nbsp;of&nbsp;the&nbsp;current&nbsp;entry<br>
268 &nbsp;<br>
269 If&nbsp;the&nbsp;tag&nbsp;type&nbsp;is&nbsp;ACL_USER,&nbsp;this&nbsp;should&nbsp;be&nbsp;a&nbsp;user&nbsp;id.<br>
270 If&nbsp;the&nbsp;tag&nbsp;type&nbsp;if&nbsp;ACL_GROUP,&nbsp;this&nbsp;should&nbsp;be&nbsp;a&nbsp;group&nbsp;id.<br>
271 Else,&nbsp;it&nbsp;doesn't&nbsp;matter.</tt></dl>
272
273 <dl><dt><strong>tag_type</strong> = &lt;attribute 'tag_type' of 'posix1e.Entry' objects&gt;<dd><tt>The&nbsp;tag&nbsp;type&nbsp;of&nbsp;the&nbsp;current&nbsp;entry<br>
274 &nbsp;<br>
275 This&nbsp;is&nbsp;one&nbsp;of:<br>
276 &nbsp;-&nbsp;ACL_UNDEFINED_TAG<br>
277 &nbsp;-&nbsp;ACL_USER_OBJ<br>
278 &nbsp;-&nbsp;ACL_USER<br>
279 &nbsp;-&nbsp;ACL_GROUP_OBJ<br>
280 &nbsp;-&nbsp;ACL_GROUP<br>
281 &nbsp;-&nbsp;ACL_MASK<br>
282 &nbsp;-&nbsp;ACL_OTHER</tt></dl>
283
284 </td></tr></table> <p>
285 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
286 <tr bgcolor="#ffc8d8">
287 <td colspan=3 valign=bottom>&nbsp;<br>
288 <font color="#000000" face="helvetica, arial"><a name="Permset">class <strong>Permset</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
289     
290 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
291 <td colspan=2><tt>Type&nbsp;which&nbsp;represents&nbsp;the&nbsp;permission&nbsp;set&nbsp;in&nbsp;an&nbsp;<a href="#ACL">ACL</a>&nbsp;entry<br>
292 &nbsp;<br>
293 The&nbsp;type&nbsp;exists&nbsp;only&nbsp;if&nbsp;the&nbsp;OS&nbsp;has&nbsp;full&nbsp;support&nbsp;for&nbsp;POSIX.1e<br>
294 Can&nbsp;be&nbsp;created&nbsp;either&nbsp;by:<br>
295 &nbsp;&nbsp;perms&nbsp;=&nbsp;myEntry.permset<br>
296 or&nbsp;by:<br>
297 &nbsp;&nbsp;perms&nbsp;=&nbsp;posix1e.<a href="#Permset">Permset</a>(myEntry)<br>
298 &nbsp;<br>
299 Note&nbsp;that&nbsp;the&nbsp;<a href="#Permset">Permset</a>&nbsp;keeps&nbsp;a&nbsp;reference&nbsp;to&nbsp;its&nbsp;<a href="#Entry">Entry</a>,&nbsp;so&nbsp;even&nbsp;if&nbsp;<br>
300 you&nbsp;delete&nbsp;the&nbsp;entry,&nbsp;it&nbsp;won't&nbsp;be&nbsp;cleaned&nbsp;up&nbsp;and&nbsp;will&nbsp;continue&nbsp;to&nbsp;<br>
301 exist&nbsp;until&nbsp;its&nbsp;<a href="#Permset">Permset</a>&nbsp;will&nbsp;be&nbsp;deleted.<br>&nbsp;</tt></td></tr>
302 <tr><td>&nbsp;</td>
303 <td width="100%">Methods defined here:<br>
304 <dl><dt><a name="Permset-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#Permset-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
305
306 <dl><dt><a name="Permset-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#Permset-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
307
308 <dl><dt><a name="Permset-add"><strong>add</strong></a>(...)</dt><dd><tt>Add&nbsp;a&nbsp;permission&nbsp;to&nbsp;the&nbsp;permission&nbsp;set.<br>
309 &nbsp;<br>
310 The&nbsp;<a href="#Permset-add">add</a>()&nbsp;function&nbsp;adds&nbsp;the&nbsp;permission&nbsp;contained&nbsp;in&nbsp;<br>
311 the&nbsp;argument&nbsp;perm&nbsp;to&nbsp;the&nbsp;permission&nbsp;set.&nbsp;&nbsp;An&nbsp;attempt&nbsp;<br>
312 to&nbsp;add&nbsp;a&nbsp;permission&nbsp;that&nbsp;is&nbsp;already&nbsp;contained&nbsp;in&nbsp;the&nbsp;<br>
313 permission&nbsp;set&nbsp;is&nbsp;not&nbsp;considered&nbsp;an&nbsp;error.<br>
314 Parameters:<br>
315 &nbsp;&nbsp;-&nbsp;perm&nbsp;a&nbsp;permission&nbsp;(ACL_WRITE,&nbsp;ACL_READ,&nbsp;ACL_EXECUTE,&nbsp;...<br>
316 Return&nbsp;value:<br>
317 &nbsp;&nbsp;None<br>
318 Can&nbsp;raise:&nbsp;IOError</tt></dd></dl>
319
320 <dl><dt><a name="Permset-clear"><strong>clear</strong></a>(...)</dt><dd><tt>Clear&nbsp;all&nbsp;permissions&nbsp;from&nbsp;the&nbsp;permission&nbsp;set.</tt></dd></dl>
321
322 <dl><dt><a name="Permset-delete"><strong>delete</strong></a>(...)</dt><dd><tt>Delete&nbsp;a&nbsp;permission&nbsp;from&nbsp;the&nbsp;permission&nbsp;set.<br>
323 &nbsp;<br>
324 The&nbsp;<a href="#Permset-delete">delete</a>()&nbsp;function&nbsp;deletes&nbsp;the&nbsp;permission&nbsp;contained&nbsp;in&nbsp;<br>
325 the&nbsp;argument&nbsp;perm&nbsp;from&nbsp;the&nbsp;permission&nbsp;set.&nbsp;&nbsp;An&nbsp;attempt&nbsp;<br>
326 to&nbsp;delete&nbsp;a&nbsp;permission&nbsp;that&nbsp;is&nbsp;not&nbsp;contained&nbsp;in&nbsp;the&nbsp;<br>
327 permission&nbsp;set&nbsp;is&nbsp;not&nbsp;considered&nbsp;an&nbsp;error.<br>
328 Parameters:<br>
329 &nbsp;&nbsp;-&nbsp;perm&nbsp;a&nbsp;permission&nbsp;(ACL_WRITE,&nbsp;ACL_READ,&nbsp;ACL_EXECUTE,&nbsp;...<br>
330 Return&nbsp;value:<br>
331 &nbsp;&nbsp;None<br>
332 Can&nbsp;raise:&nbsp;IOError</tt></dd></dl>
333
334 <dl><dt><a name="Permset-test"><strong>test</strong></a>(...)</dt><dd><tt>Test&nbsp;if&nbsp;a&nbsp;permission&nbsp;exists&nbsp;in&nbsp;the&nbsp;permission&nbsp;set.<br>
335 &nbsp;<br>
336 The&nbsp;<a href="#Permset-test">test</a>()&nbsp;function&nbsp;tests&nbsp;if&nbsp;the&nbsp;permission&nbsp;contained&nbsp;in&nbsp;<br>
337 the&nbsp;argument&nbsp;perm&nbsp;exits&nbsp;the&nbsp;permission&nbsp;set.<br>
338 Parameters:<br>
339 &nbsp;&nbsp;-&nbsp;perm&nbsp;a&nbsp;permission&nbsp;(ACL_WRITE,&nbsp;ACL_READ,&nbsp;ACL_EXECUTE,&nbsp;...<br>
340 Return&nbsp;value:<br>
341 &nbsp;&nbsp;Bool<br>
342 Can&nbsp;raise:&nbsp;IOError</tt></dd></dl>
343
344 <hr>
345 Data and other attributes defined here:<br>
346 <dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#Permset-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
347
348 <dl><dt><strong>execute</strong> = &lt;attribute 'execute' of 'posix1e.Permset' objects&gt;<dd><tt>Execute&nbsp;permsission<br>
349 &nbsp;<br>
350 This&nbsp;is&nbsp;a&nbsp;convenience&nbsp;method&nbsp;of&nbsp;access;&nbsp;the&nbsp;<br>
351 same&nbsp;effect&nbsp;can&nbsp;be&nbsp;achieved&nbsp;using&nbsp;the&nbsp;functions<br>
352 <a href="#Permset-add">add</a>(),&nbsp;<a href="#Permset-test">test</a>(),&nbsp;<a href="#Permset-delete">delete</a>(),&nbsp;and&nbsp;those&nbsp;can&nbsp;take&nbsp;any&nbsp;<br>
353 permission&nbsp;defined&nbsp;by&nbsp;your&nbsp;platform.</tt></dl>
354
355 <dl><dt><strong>read</strong> = &lt;attribute 'read' of 'posix1e.Permset' objects&gt;<dd><tt>Read&nbsp;permsission<br>
356 &nbsp;<br>
357 This&nbsp;is&nbsp;a&nbsp;convenience&nbsp;method&nbsp;of&nbsp;access;&nbsp;the&nbsp;<br>
358 same&nbsp;effect&nbsp;can&nbsp;be&nbsp;achieved&nbsp;using&nbsp;the&nbsp;functions<br>
359 <a href="#Permset-add">add</a>(),&nbsp;<a href="#Permset-test">test</a>(),&nbsp;<a href="#Permset-delete">delete</a>(),&nbsp;and&nbsp;those&nbsp;can&nbsp;take&nbsp;any&nbsp;<br>
360 permission&nbsp;defined&nbsp;by&nbsp;your&nbsp;platform.</tt></dl>
361
362 <dl><dt><strong>write</strong> = &lt;attribute 'write' of 'posix1e.Permset' objects&gt;<dd><tt>Write&nbsp;permsission<br>
363 &nbsp;<br>
364 This&nbsp;is&nbsp;a&nbsp;convenience&nbsp;method&nbsp;of&nbsp;access;&nbsp;the&nbsp;<br>
365 same&nbsp;effect&nbsp;can&nbsp;be&nbsp;achieved&nbsp;using&nbsp;the&nbsp;functions<br>
366 <a href="#Permset-add">add</a>(),&nbsp;<a href="#Permset-test">test</a>(),&nbsp;<a href="#Permset-delete">delete</a>(),&nbsp;and&nbsp;those&nbsp;can&nbsp;take&nbsp;any&nbsp;<br>
367 permission&nbsp;defined&nbsp;by&nbsp;your&nbsp;platform.</tt></dl>
368
369 </td></tr></table></td></tr></table><p>
370 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
371 <tr bgcolor="#eeaa77">
372 <td colspan=3 valign=bottom>&nbsp;<br>
373 <font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
374     
375 <tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
376 <td width="100%"><dl><dt><a name="-delete_default"><strong>delete_default</strong></a>(...)</dt><dd><tt>Delete&nbsp;the&nbsp;default&nbsp;<a href="#ACL">ACL</a>&nbsp;from&nbsp;a&nbsp;directory.<br>
377 &nbsp;<br>
378 This&nbsp;function&nbsp;deletes&nbsp;the&nbsp;default&nbsp;<a href="#ACL">ACL</a>&nbsp;associated&nbsp;with&nbsp;<br>
379 a&nbsp;directory&nbsp;(the&nbsp;<a href="#ACL">ACL</a>&nbsp;which&nbsp;will&nbsp;be&nbsp;ANDed&nbsp;with&nbsp;the&nbsp;mode<br>
380 parameter&nbsp;to&nbsp;the&nbsp;open,&nbsp;creat&nbsp;functions).<br>
381 Parameters:<br>
382 &nbsp;&nbsp;-&nbsp;a&nbsp;string&nbsp;representing&nbsp;the&nbsp;directory&nbsp;whose&nbsp;default&nbsp;<a href="#ACL">ACL</a><br>
383 &nbsp;&nbsp;&nbsp;&nbsp;should&nbsp;be&nbsp;deleted</tt></dd></dl>
384 </td></tr></table><p>
385 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
386 <tr bgcolor="#55aa55">
387 <td colspan=3 valign=bottom>&nbsp;<br>
388 <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
389     
390 <tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
391 <td width="100%"><strong>ACL_DUPLICATE_ERROR</strong> = 8192<br>
392 <strong>ACL_ENTRY_ERROR</strong> = 16384<br>
393 <strong>ACL_EXECUTE</strong> = 1<br>
394 <strong>ACL_GROUP</strong> = 8<br>
395 <strong>ACL_GROUP_OBJ</strong> = 4<br>
396 <strong>ACL_MASK</strong> = 16<br>
397 <strong>ACL_MISS_ERROR</strong> = 12288<br>
398 <strong>ACL_MULTI_ERROR</strong> = 4096<br>
399 <strong>ACL_OTHER</strong> = 32<br>
400 <strong>ACL_READ</strong> = 4<br>
401 <strong>ACL_TYPE_ACCESS</strong> = 32768<br>
402 <strong>ACL_TYPE_DEFAULT</strong> = 16384<br>
403 <strong>ACL_UNDEFINED_TAG</strong> = 0<br>
404 <strong>ACL_USER</strong> = 2<br>
405 <strong>ACL_USER_OBJ</strong> = 1<br>
406 <strong>ACL_WRITE</strong> = 2<br>
407 <strong>TEXT_ABBREVIATE</strong> = 16<br>
408 <strong>TEXT_ALL_EFFECTIVE</strong> = 2<br>
409 <strong>TEXT_NUMERIC_IDS</strong> = 8<br>
410 <strong>TEXT_SMART_INDENT</strong> = 4<br>
411 <strong>TEXT_SOME_EFFECTIVE</strong> = 1</td></tr></table>
412 </body></html>