1 | '\" t
|
---|
2 | .\" Title: vfs_fruit
|
---|
3 | .\" Author: [see the "AUTHOR" section]
|
---|
4 | .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
---|
5 | .\" Date: 10/25/2016
|
---|
6 | .\" Manual: System Administration tools
|
---|
7 | .\" Source: Samba 4.4
|
---|
8 | .\" Language: English
|
---|
9 | .\"
|
---|
10 | .TH "VFS_FRUIT" "8" "10/25/2016" "Samba 4\&.4" "System Administration tools"
|
---|
11 | .\" -----------------------------------------------------------------
|
---|
12 | .\" * Define some portability stuff
|
---|
13 | .\" -----------------------------------------------------------------
|
---|
14 | .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---|
15 | .\" http://bugs.debian.org/507673
|
---|
16 | .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
---|
17 | .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---|
18 | .ie \n(.g .ds Aq \(aq
|
---|
19 | .el .ds Aq '
|
---|
20 | .\" -----------------------------------------------------------------
|
---|
21 | .\" * set default formatting
|
---|
22 | .\" -----------------------------------------------------------------
|
---|
23 | .\" disable hyphenation
|
---|
24 | .nh
|
---|
25 | .\" disable justification (adjust text to left margin only)
|
---|
26 | .ad l
|
---|
27 | .\" -----------------------------------------------------------------
|
---|
28 | .\" * MAIN CONTENT STARTS HERE *
|
---|
29 | .\" -----------------------------------------------------------------
|
---|
30 | .SH "NAME"
|
---|
31 | vfs_fruit \- Enhanced OS X and Netatalk interoperability
|
---|
32 | .SH "SYNOPSIS"
|
---|
33 | .HP \w'\ 'u
|
---|
34 | vfs objects = fruit
|
---|
35 | .SH "DESCRIPTION"
|
---|
36 | .PP
|
---|
37 | This VFS module is part of the
|
---|
38 | \fBsamba\fR(7)
|
---|
39 | suite\&.
|
---|
40 | .PP
|
---|
41 | The
|
---|
42 | vfs_fruit
|
---|
43 | module provides enhanced compatibility with Apple SMB clients and interoperability with a Netatalk 3 AFP fileserver\&.
|
---|
44 | .PP
|
---|
45 | The module should be stacked with
|
---|
46 | vfs_catia
|
---|
47 | if enabling character conversion and must be stacked with
|
---|
48 | vfs_streams_xattr, see the example section for the correct config\&.
|
---|
49 | .PP
|
---|
50 | The module enables alternate data streams (ADS) support for a share, intercepts the OS X special streams "AFP_AfpInfo" and "AFP_Resource" and handles them in a special way\&. All other named streams are deferred to
|
---|
51 | vfs_streams_xattr
|
---|
52 | which must be loaded together with
|
---|
53 | vfs_fruit\&.
|
---|
54 | .PP
|
---|
55 | Having shares with ADS support enabled for OS X client is worthwhile because it resembles the behaviour of Apple\*(Aqs own SMB server implementation and it avoids certain severe performance degradations caused by Samba\*(Aqs case sensitivity semantics\&.
|
---|
56 | .PP
|
---|
57 | The OS X metadata and resource fork stream can be stored in a way compatible with Netatalk 3 by setting
|
---|
58 | fruit:resource = file
|
---|
59 | and
|
---|
60 | fruit:metadata = netatalk\&.
|
---|
61 | .PP
|
---|
62 | OS X maps NTFS illegal characters to the Unicode private range in SMB requests\&. By setting
|
---|
63 | fruit:encoding = native, all mapped characters are converted to native ASCII characters\&.
|
---|
64 | .PP
|
---|
65 | Finally, share access modes are optionally checked against Netatalk AFP sharing modes by setting
|
---|
66 | fruit:locking = netatalk\&.
|
---|
67 | .PP
|
---|
68 | This module is not stackable other then described in this manpage\&.
|
---|
69 | .SH "OPTIONS"
|
---|
70 | .PP
|
---|
71 | fruit:resource = [ file | xattr | stream ]
|
---|
72 | .RS 4
|
---|
73 | Controls where the OS X resource fork is stored:
|
---|
74 | .sp
|
---|
75 | .RS 4
|
---|
76 | .ie n \{\
|
---|
77 | \h'-04'\(bu\h'+03'\c
|
---|
78 | .\}
|
---|
79 | .el \{\
|
---|
80 | .sp -1
|
---|
81 | .IP \(bu 2.3
|
---|
82 | .\}
|
---|
83 | file (default)
|
---|
84 | \- use a \&._ AppleDouble file compatible with OS X and Netatalk
|
---|
85 | .RE
|
---|
86 | .sp
|
---|
87 | .RS 4
|
---|
88 | .ie n \{\
|
---|
89 | \h'-04'\(bu\h'+03'\c
|
---|
90 | .\}
|
---|
91 | .el \{\
|
---|
92 | .sp -1
|
---|
93 | .IP \(bu 2.3
|
---|
94 | .\}
|
---|
95 | xattr
|
---|
96 | \- use a xattr, requires a filesystem with large xattr support and a file IO API compatible with xattrs, this boils down to Solaris and derived platforms and ZFS
|
---|
97 | .RE
|
---|
98 | .sp
|
---|
99 | .RS 4
|
---|
100 | .ie n \{\
|
---|
101 | \h'-04'\(bu\h'+03'\c
|
---|
102 | .\}
|
---|
103 | .el \{\
|
---|
104 | .sp -1
|
---|
105 | .IP \(bu 2.3
|
---|
106 | .\}
|
---|
107 | stream
|
---|
108 | \- pass the stream on to the next module in the VFS stack
|
---|
109 | .RE
|
---|
110 | .sp
|
---|
111 | .RE
|
---|
112 | .RE
|
---|
113 | .PP
|
---|
114 | fruit:metadata = [ stream | netatalk ]
|
---|
115 | .RS 4
|
---|
116 | Controls where the OS X metadata stream is stored:
|
---|
117 | .sp
|
---|
118 | .RS 4
|
---|
119 | .ie n \{\
|
---|
120 | \h'-04'\(bu\h'+03'\c
|
---|
121 | .\}
|
---|
122 | .el \{\
|
---|
123 | .sp -1
|
---|
124 | .IP \(bu 2.3
|
---|
125 | .\}
|
---|
126 | netatalk (default)
|
---|
127 | \- use Netatalk compatible xattr
|
---|
128 | .RE
|
---|
129 | .sp
|
---|
130 | .RS 4
|
---|
131 | .ie n \{\
|
---|
132 | \h'-04'\(bu\h'+03'\c
|
---|
133 | .\}
|
---|
134 | .el \{\
|
---|
135 | .sp -1
|
---|
136 | .IP \(bu 2.3
|
---|
137 | .\}
|
---|
138 | stream
|
---|
139 | \- pass the stream on to the next module in the VFS stack
|
---|
140 | .RE
|
---|
141 | .sp
|
---|
142 | .RE
|
---|
143 | .RE
|
---|
144 | .PP
|
---|
145 | fruit:locking = [ netatalk | none ]
|
---|
146 | .RS 4
|
---|
147 |
|
---|
148 | .sp
|
---|
149 | .RS 4
|
---|
150 | .ie n \{\
|
---|
151 | \h'-04'\(bu\h'+03'\c
|
---|
152 | .\}
|
---|
153 | .el \{\
|
---|
154 | .sp -1
|
---|
155 | .IP \(bu 2.3
|
---|
156 | .\}
|
---|
157 | none (default)
|
---|
158 | \- no cross protocol locking
|
---|
159 | .RE
|
---|
160 | .sp
|
---|
161 | .RS 4
|
---|
162 | .ie n \{\
|
---|
163 | \h'-04'\(bu\h'+03'\c
|
---|
164 | .\}
|
---|
165 | .el \{\
|
---|
166 | .sp -1
|
---|
167 | .IP \(bu 2.3
|
---|
168 | .\}
|
---|
169 | netatalk
|
---|
170 | \- use cross protocol locking with Netatalk
|
---|
171 | .RE
|
---|
172 | .sp
|
---|
173 | .RE
|
---|
174 | .RE
|
---|
175 | .PP
|
---|
176 | fruit:encoding = [ native | private ]
|
---|
177 | .RS 4
|
---|
178 | Controls how the set of illegal NTFS ASCII character, commonly used by OS X clients, are stored in the filesystem:
|
---|
179 | .sp
|
---|
180 | .RS 4
|
---|
181 | .ie n \{\
|
---|
182 | \h'-04'\(bu\h'+03'\c
|
---|
183 | .\}
|
---|
184 | .el \{\
|
---|
185 | .sp -1
|
---|
186 | .IP \(bu 2.3
|
---|
187 | .\}
|
---|
188 | private (default)
|
---|
189 | \- store characters as encoded by the OS X client: mapped to the Unicode private range
|
---|
190 | .RE
|
---|
191 | .sp
|
---|
192 | .RS 4
|
---|
193 | .ie n \{\
|
---|
194 | \h'-04'\(bu\h'+03'\c
|
---|
195 | .\}
|
---|
196 | .el \{\
|
---|
197 | .sp -1
|
---|
198 | .IP \(bu 2.3
|
---|
199 | .\}
|
---|
200 | native
|
---|
201 | \- store characters with their native ASCII value
|
---|
202 | .RE
|
---|
203 | .sp
|
---|
204 | .RE
|
---|
205 | .RE
|
---|
206 | .PP
|
---|
207 | fruit:aapl = yes | no
|
---|
208 | .RS 4
|
---|
209 | A global option whether to enable Apple\*(Aqs SMB2+ extension codenamed AAPL\&. Default
|
---|
210 | \fIyes\fR\&. This extension enhances several deficiencies when connecting from Macs:
|
---|
211 | .sp
|
---|
212 | .RS 4
|
---|
213 | .ie n \{\
|
---|
214 | \h'-04'\(bu\h'+03'\c
|
---|
215 | .\}
|
---|
216 | .el \{\
|
---|
217 | .sp -1
|
---|
218 | .IP \(bu 2.3
|
---|
219 | .\}
|
---|
220 | directory enumeration is enriched with Mac relevant filesystem metadata (UNIX mode, FinderInfo, resource fork size and effective permission), as a result the Mac client doesn\*(Aqt need to fetch this metadata individuallly per directory entry resulting in an often tremendous performance increase\&.
|
---|
221 | .RE
|
---|
222 | .sp
|
---|
223 | .RS 4
|
---|
224 | .ie n \{\
|
---|
225 | \h'-04'\(bu\h'+03'\c
|
---|
226 | .\}
|
---|
227 | .el \{\
|
---|
228 | .sp -1
|
---|
229 | .IP \(bu 2.3
|
---|
230 | .\}
|
---|
231 | The ability to query and modify the UNIX mode of directory entries\&.
|
---|
232 | .RE
|
---|
233 | .sp
|
---|
234 | .RE
|
---|
235 | There\*(Aqs a set of per share options that can be used to disable the computation of specific Mac metadata in the directory enumeration context, all are enabled by default:
|
---|
236 | .sp
|
---|
237 | .RS 4
|
---|
238 | .ie n \{\
|
---|
239 | \h'-04'\(bu\h'+03'\c
|
---|
240 | .\}
|
---|
241 | .el \{\
|
---|
242 | .sp -1
|
---|
243 | .IP \(bu 2.3
|
---|
244 | .\}
|
---|
245 | readdir_attr:aapl_rsize = true | false
|
---|
246 | .RE
|
---|
247 | .sp
|
---|
248 | .RS 4
|
---|
249 | .ie n \{\
|
---|
250 | \h'-04'\(bu\h'+03'\c
|
---|
251 | .\}
|
---|
252 | .el \{\
|
---|
253 | .sp -1
|
---|
254 | .IP \(bu 2.3
|
---|
255 | .\}
|
---|
256 | readdir_attr:aapl_finder_info = true | false
|
---|
257 | .RE
|
---|
258 | .sp
|
---|
259 | .RS 4
|
---|
260 | .ie n \{\
|
---|
261 | \h'-04'\(bu\h'+03'\c
|
---|
262 | .\}
|
---|
263 | .el \{\
|
---|
264 | .sp -1
|
---|
265 | .IP \(bu 2.3
|
---|
266 | .\}
|
---|
267 | readdir_attr:aapl_max_access = true | false
|
---|
268 | .RE
|
---|
269 | .sp
|
---|
270 | .RE
|
---|
271 | .RE
|
---|
272 | .PP
|
---|
273 | fruit:nfs_aces = yes | no
|
---|
274 | .RS 4
|
---|
275 | Whether support for querying and modifying the UNIX mode of directory entries via NFS ACEs is enabled, default
|
---|
276 | \fIyes\fR\&.
|
---|
277 | .RE
|
---|
278 | .PP
|
---|
279 | fruit:veto_appledouble = yes | no
|
---|
280 | .RS 4
|
---|
281 | Whether \&._ AppleDouble files are vetoed which prevents the client from seing and accessing internal AppleDouble files created by vfs_fruit itself for the purpose of storing a Mac resource fork\&.
|
---|
282 | .sp
|
---|
283 | Vetoing \&._ files may break some applications, eg extracting Mac ZIP archives from Mac clients failes, because they contain \&._ files\&. Setting this option to false will fix this, but the abstraction leak of exposing the internally created \&._ files may have other unknown side effects\&.
|
---|
284 | .sp
|
---|
285 | The default is
|
---|
286 | \fIyes\fR\&.
|
---|
287 | .RE
|
---|
288 | .PP
|
---|
289 | fruit:copyfile = yes | no
|
---|
290 | .RS 4
|
---|
291 | Whether to enable OS X specific copychunk ioctl that requests a copy of a whole file along with all attached metadata\&.
|
---|
292 | .sp
|
---|
293 | WARNING: the copyfile request is blocking the client while the server does the copy\&.
|
---|
294 | .sp
|
---|
295 | \&.
|
---|
296 | The default is
|
---|
297 | \fIno\fR\&.
|
---|
298 | .RE
|
---|
299 | .PP
|
---|
300 | fruit:posix_rename = yes | no
|
---|
301 | .RS 4
|
---|
302 | Whether to enable POSIX directory rename behaviour for OS X clients\&. Without this, directories can\*(Aqt be renamed if any client has any file inside it (recursive!) open\&.
|
---|
303 | .sp
|
---|
304 | The default is
|
---|
305 | \fIyes\fR\&.
|
---|
306 | .RE
|
---|
307 | .SH "EXAMPLES"
|
---|
308 | .sp
|
---|
309 | .if n \{\
|
---|
310 | .RS 4
|
---|
311 | .\}
|
---|
312 | .nf
|
---|
313 | \fI[share]\fR
|
---|
314 | \m[blue]\fBvfs objects = catia fruit streams_xattr\fR\m[]
|
---|
315 | \m[blue]\fBfruit:resource = file\fR\m[]
|
---|
316 | \m[blue]\fBfruit:metadata = netatalk\fR\m[]
|
---|
317 | \m[blue]\fBfruit:locking = netatalk\fR\m[]
|
---|
318 | \m[blue]\fBfruit:encoding = native\fR\m[]
|
---|
319 | .fi
|
---|
320 | .if n \{\
|
---|
321 | .RE
|
---|
322 | .\}
|
---|
323 | .SH "AUTHOR"
|
---|
324 | .PP
|
---|
325 | The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
---|