<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">4.2</refmiscinfo>
+ <refmiscinfo class="version">4.7</refmiscinfo>
</refmeta>
<command>vfs_streams_xattr</command> which must be loaded
together with <command>vfs_fruit</command>.</para>
+ <para>vfs_fruit requires "ea support = yes".</para>
+
+ <para>Be careful when mixing shares with and without
+ vfs_fruit. OS X clients negotiate SMB2 AAPL protocol
+ extensions on the first tcon, so mixing shares with and
+ without fruit will globally disable AAPL if the first tcon is
+ without fruit.</para>
+
<para>Having shares with ADS support enabled for OS X client
is worthwhile because it resembles the behaviour of Apple's
own SMB server implementation and it avoids certain severe
<varlistentry>
<term>fruit:resource = [ file | xattr | stream ]</term>
<listitem>
- <para>Controls where the OS X resource fork is stored:</para>
+ <para>Controls where the OS X resource fork is stored.</para>
+
+ <para>Due to a spelling bug in all Samba versions older then
+ 4.6.0, this option can also be given as
+ <emphasis>fruit:ressource</emphasis>, ie with two s.</para>
+
+ <para>Settings:</para>
<itemizedlist>
<listitem><para><command>file (default)</command> - use a ._
down to Solaris and derived platforms and
ZFS</para></listitem>
- <listitem><para><command>stream</command> - pass the
- stream on to the next module in the VFS
- stack</para></listitem>
+ <listitem><para><command>stream (experimental)</command> - pass
+ the stream on to the next module in the VFS stack.
+ <emphasis>Warning: </emphasis> this option should not be used
+ with the <emphasis>streams_xattr</emphasis> module due to the
+ extended attributes size limitations of most
+ filesytems.</para></listitem>
</itemizedlist>
</listitem>
<listitem><para><command>native</command> - store
characters with their native ASCII
- value</para></listitem>
+ value. <emphasis>Important</emphasis>: this option
+ requires the use of <emphasis>vfs_catia</emphasis> in
+ the VFS module stack as shown in the examples
+ section.</para></listitem>
+
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:aapl = yes | no</term>
+ <listitem>
+ <para>A global option whether to enable Apple's SMB2+
+ extension codenamed AAPL. Default
+ <emphasis>yes</emphasis>. This extension enhances
+ several deficiencies when connecting from Macs:</para>
+
+ <itemizedlist>
+ <listitem><para>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't need
+ to fetch this metadata individuallly per directory
+ entry resulting in an often tremendous performance
+ increase.</para></listitem>
+
+ <listitem><para>The ability to query and modify the
+ UNIX mode of directory entries.</para></listitem>
+ </itemizedlist>
+
+ <para>There's 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:</para>
+ <itemizedlist>
+ <listitem><para>readdir_attr:aapl_rsize = true | false</para></listitem>
+ <listitem><para>readdir_attr:aapl_finder_info = true | false</para></listitem>
+ <listitem><para>readdir_attr:aapl_max_access = true | false</para></listitem>
</itemizedlist>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:nfs_aces = yes | no</term>
+ <listitem>
+ <para>Whether support for querying and modifying the
+ UNIX mode of directory entries via NFS ACEs is enabled,
+ default <emphasis>yes</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:veto_appledouble = yes | no</term>
+ <listitem>
+ <para>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.</para>
+ <para>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.</para>
+ <para>The default is <emphasis>yes</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:copyfile = yes | no</term>
+ <listitem>
+ <para>Whether to enable OS X specific copychunk ioctl
+ that requests a copy of a whole file along with all
+ attached metadata.</para>
+ <para>WARNING: the copyfile request is blocking the
+ client while the server does the copy.</para>.
+ <para>The default is <emphasis>no</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:posix_rename = yes | no</term>
+ <listitem>
+ <para>Whether to enable POSIX directory rename behaviour
+ for OS X clients. Without this, directories can't be
+ renamed if any client has any file inside it
+ (recursive!) open.</para>
+ <para>The default is <emphasis>yes</emphasis>.</para>
</listitem>
</varlistentry>
<programlisting>
<smbconfsection name="[share]"/>
+ <smbconfoption name="ea support">yes</smbconfoption>
<smbconfoption name="vfs objects">catia fruit streams_xattr</smbconfoption>
<smbconfoption name="fruit:resource">file</smbconfoption>
<smbconfoption name="fruit:metadata">netatalk</smbconfoption>