summaryrefslogtreecommitdiff
path: root/mount.cifs.pod
diff options
context:
space:
mode:
Diffstat (limited to 'mount.cifs.pod')
-rw-r--r--mount.cifs.pod933
1 files changed, 0 insertions, 933 deletions
diff --git a/mount.cifs.pod b/mount.cifs.pod
deleted file mode 100644
index 3a08dae..0000000
--- a/mount.cifs.pod
+++ /dev/null
@@ -1,933 +0,0 @@
-# turn into a manpage with the following command:
-#
-# pod2man -s 8 -c '' -r '' --stderr mount.cifs.pod mount.cifs.8
-#
-
-=head1 NAME
-
-mount.cifs - mount using the Common Internet File System (CIFS)
-
-=head1 SYNOPSIS
-
-mount.cifs {service} {mount-point} [-o options]
-
-This tool is part of the cifs-utils suite.
-
-B<mount.cifs> mounts a Linux CIFS filesystem. It is usually invoked
-indirectly by the L<mount(8)> command when using the "-t cifs"
-option. This command only works in Linux, and the kernel must support
-the cifs filesystem. The CIFS protocol is the successor to the SMB
-protocol and is supported by most Windows servers and many other
-commercial servers and Network Attached Storage appliances as well as
-by the popular Open Source server Samba.
-
-The mount.cifs utility attaches the UNC name (exported network
-resource) specified as service (using C<//server/share> syntax, where
-"server" is the server name or IP address and "share" is the name of
-the share) to the local directory mount-point.
-
-Options to mount.cifs are specified as a comma-separated list of
-key=value pairs. It is possible to send options other than those
-listed here, assuming that the cifs filesystem kernel module (cifs.ko)
-supports them. Unrecognized cifs mount options passed to the cifs vfs
-kernel code will be logged to the kernel log.
-
-mount.cifs causes the cifs vfs to launch a thread named cifsd. After
-mounting it keeps running until the mounted resource is unmounted
-(usually via the B<umount> utility).
-
-C<mount.cifs -V> command displays the version of cifs mount helper.
-
-C<modinfo cifs> command displays the version of cifs module.
-
-=head1 OPTIONS
-
-=over
-
-=item B<username=arg>
-
-specifies the username to connect as. If this is not given, then the
-environment variable USER is used.
-
-Earlier versions of mount.cifs also allowed one to specify the
-username in a C<user%password> or C<workgroup/user> or
-C<workgroup/user%password> to allow the password and workgroup to be
-specified as part of the username. Support for those alternate
-username formats is now deprecated and should no longer be used. Users
-should use the discrete B<password=> and B<domain=> to specify those
-values. While some versions of the cifs kernel module accept B<user=>
-as an abbreviation for this option, its use can confuse the standard
-mount program into thinking that this is a non-superuser mount. It is
-therefore recommended to use the full B<username=> option name.
-
-=item B<password=arg>
-
-specifies the CIFS password. If this option is not given then the
-environment variable PASSWD is used. If the password is not specified
-directly or indirectly via an argument to mount, mount.cifs will
-prompt for a password, unless the guest option is specified.
-
-Note that a password which contains the delimiter character (i.e. a
-comma ',') will fail to be parsed correctly on the command
-line. However, the same password defined in the PASSWD environment
-variable or via a credentials file (see below) or entered at the
-password prompt will be read correctly.
-
-=item B<credentials=filename>
-
-specifies a file that contains a username and/or password and
-optionally the name of the workgroup. The format of the file is:
-
- username=value
- password=value
- domain=value
-
-This is preferred over having passwords in plaintext in a shared file,
-such as F</etc/fstab>. Be sure to protect any credentials file
-properly.
-
-=item B<uid=arg>
-
-sets the uid that will own all files or directories on the mounted
-filesystem when the server does not provide ownership information. It
-may be specified as either a username or a numeric uid. When not
-specified, the default is uid 0. The mount.cifs helper must be at
-version 1.10 or higher to support specifying the uid in non-numeric
-form. See the section on L</"FILE AND DIRECTORY OWNERSHIP AND
-PERMISSIONS"> below for more information.
-
-=item B<forceuid>
-
-instructs the client to ignore any uid provided by the server for
-files and directories and to always assign the owner to be the value
-of the uid= option. See the section on L</"FILE AND DIRECTORY
-OWNERSHIP AND PERMISSIONS"> below for more information.
-
-=item B<cruid=arg>
-
-sets the uid of the owner of the credentials cache. This is primarily
-useful with sec=krb5. The default is the real uid of the process
-performing the mount. Setting this parameter directs the upcall to
-look for a credentials cache owned by that user.
-
-=item B<gid=arg>
-
-sets the gid that will own all files or directories on the mounted
-filesystem when the server does not provide ownership information. It
-may be specified as either a groupname or a numeric gid. When not
-specified, the default is gid 0. The mount.cifs helper must be at
-version 1.10 or higher to support specifying the gid in non-numeric
-form. See the section on FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS
-below for more information.
-
-=item B<forcegid>
-
-instructs the client to ignore any gid provided by the server for
-files and directories and to always assign the owner to be the value
-of the gid= option. See the section on FILE AND DIRECTORY OWNERSHIP
-AND PERMISSIONS below for more information.
-
-=item B<port=arg>
-
-sets the port number on which the client will attempt to contact the
-CIFS server. If this value is specified, look for an existing
-connection with this port, and use that if one exists. If one doesn't
-exist, try to create a new connection on that port. If that connection
-fails, return an error. If this value isn't specified, look for an
-existing connection on port 445 or 139. If no such connection exists,
-try to connect on port 445 first and then port 139 if that
-fails. Return an error if both fail.
-
-=item B<servernetbiosname=arg>
-
-Specify the server netbios name (RFC1001 name) to use when attempting
-to setup a session to the server. Although rarely needed for mounting
-to newer servers, this option is needed for mounting to some older
-servers (such as OS/2 or Windows 98 and Windows ME) since when
-connecting over port 139 they, unlike most newer servers, do not
-support a default server name. A server name can be up to 15
-characters long and is usually uppercased.
-
-=item B<servern=arg>
-
-Synonym for B<servernetbiosname>.
-
-=item B<netbiosname=arg>
-
-When mounting to servers via port 139, specifies the RFC1001 source
-name to use to represent the client netbios machine name when doing
-the RFC1001 netbios session initialize.
-
-=item B<file_mode=arg>
-
-If the server does not support the CIFS Unix extensions this overrides
-the default file mode.
-
-=item B<dir_mode=arg>
-
-If the server does not support the CIFS Unix extensions this overrides
-the default mode for directories.
-
-=item B<ip=arg>
-
-sets the destination IP address. This option is set automatically if
-the server name portion of the requested UNC name can be resolved so
-rarely needs to be specified by the user.
-
-=item B<domain=arg>
-
-sets the domain (workgroup) of the user.
-
-=item B<guest>
-
-don't prompt for a password.
-
-=item B<iocharset>
-
-Charset used to convert local path names to and from Unicode. Unicode
-is used by default for network path names if the server supports
-it. If B<iocharset> is not specified then the B<nls_default> specified
-during the local client kernel build will be used. If server does not
-support Unicode, this parameter is unused.
-
-=item B<ro>
-
-mount read-only.
-
-=item B<rw>
-
-mount read-write.
-
-=item B<setuids>
-
-If the CIFS Unix extensions are negotiated with the server the client
-will attempt to set the effective uid and gid of the local process on
-newly created files, directories, and devices (create, mkdir,
-mknod). If the CIFS Unix Extensions are not negotiated, for newly
-created files and directories instead of using the default uid and gid
-specified on the the mount, cache the new file's uid and gid locally
-which means that the uid for the file can change when the inode is
-reloaded (or the user remounts the share).
-
-=item B<nosetuids>
-
-The client will not attempt to set the uid and gid on on newly created
-files, directories, and devices (create, mkdir, mknod) which will
-result in the server setting the uid and gid to the default (usually
-the server uid of the user who mounted the share). Letting the server
-(rather than the client) set the uid and gid is the default. If the
-CIFS Unix Extensions are not negotiated then the uid and gid for new
-files will appear to be the uid (gid) of the mounter or the uid (gid)
-parameter specified on the mount.
-
-=item B<perm>
-
-Client does permission checks (vfs_permission check of uid and gid of
-the file against the mode and desired operation), Note that this is in
-addition to the normal ACL check on the target machine done by the
-server software. Client permission checking is enabled by default.
-
-=item B<noperm>
-
-Client does not do permission checks. This can expose files on this
-mount to access by other users on the local client system. It is
-typically only needed when the server supports the CIFS Unix
-Extensions but the UIDs/GIDs on the client and server system do not
-match closely enough to allow access by the user doing the mount. Note
-that this does not affect the normal ACL check on the target machine
-done by the server software (of the server ACL against the user name
-provided at mount time).
-
-=item B<dynperm>
-
-Instructs the server to maintain ownership and permissions in memory
-that can't be stored on the server. This information can disappear at
-any time (whenever the inode is flushed from the cache), so while this
-may help make some applications work, it's behavior is somewhat
-unreliable. See the section below on FILE AND DIRECTORY OWNERSHIP AND
-PERMISSIONS for more information.
-
-=item B<cache=arg>
-
-Cache mode. See the section below on L</"CACHE COHERENCY"> for
-details. Allowed values are:
-
-=over
-
-=item * B<none> - do not cache file data at all
-
-=item * B<strict> - follow the CIFS/SMB2 protocol strictly
-
-=item * B<loose> - allow loose caching semantics
-
-=back
-
-The default in kernels prior to 3.7 was B<loose>. As of kernel 3.7 the
-default is B<strict>.
-
-=item B<directio>
-
-Do not do inode data caching on files opened on this mount. This
-precludes mmaping files on this mount. In some cases with fast
-networks and little or no caching benefits on the client (e.g. when
-the application is doing large sequential reads bigger than page size
-without rereading the same data) this can provide better performance
-than the default behavior which caches reads (readahead) and writes
-(writebehind) through the local Linux client pagecache if oplock
-(caching token) is granted and held. Note that direct allows write
-operations larger than page size to be sent to the server. On some
-kernels this requires the cifs.ko module to be built with the
-CIFS_EXPERIMENTAL configure option.
-
-This option is will be deprecated in 3.7. Users should use
-B<cache=none> instead on more recent kernels.
-
-=item B<strictcache>
-
-Use for switching on strict cache mode. In this mode the client reads
-from the cache all the time it has I<Oplock Level II>, otherwise -
-read from the server. As for write - the client stores a data in the
-cache in I<Exclusive Oplock> case, otherwise - write directly to the
-server.
-
-This option is will be deprecated in 3.7. Users should use
-B<cache=strict> instead on more recent kernels.
-
-=item B<rwpidforward>
-
-Forward pid of a process who opened a file to any read or write
-operation on that file. This prevent applications like L<wine(1)> from
-failing on read and write if we use mandatory brlock style.
-
-=item B<mapchars>
-
-Translate six of the seven reserved characters (not backslash, but
-including the colon, question mark, pipe, asterik, greater than and
-less than characters) to the remap range (above 0xF000), which also
-allows the CIFS client to recognize files created with such characters
-by Windows's POSIX emulation. This can also be useful when mounting to
-most versions of Samba (which also forbids creating and opening files
-whose names contain any of these seven characters). This has no effect
-if the server does not support Unicode on the wire. Please note that
-the files created with B<mapchars> mount option may not be accessible
-if the share is mounted without that option.
-
-=item B<nomapchars>
-
-Do not translate any of these seven characters (default).
-
-=item B<intr>
-
-currently unimplemented.
-
-=item B<nointr>
-
-(default) currently unimplemented.
-
-=item B<hard>
-
-The program accessing a file on the cifs mounted file system will hang
-when the server crashes.
-
-=item B<soft>
-
-(default) The program accessing a file on the cifs mounted file system
-will not hang when the server crashes and will return errors to the
-user application.
-
-=item B<noacl>
-
-Do not allow POSIX ACL operations even if server would support them.
-
-The CIFS client can get and set POSIX ACLs (getfacl, setfacl) to Samba
-servers version 3.0.10 and later. Setting POSIX ACLs requires enabling
-both C<CIFS_XATTR> and then C<CIFS_POSIX> support in the CIFS
-configuration options when building the cifs module. POSIX ACL support
-can be disabled on a per mount basis by specifying B<noacl> on mount.
-
-=item B<cifsacl>
-
-This option is used to map CIFS/NTFS ACLs to/from Linux permission
-bits, map SIDs to/from UIDs and GIDs, and get and set Security
-Descriptors.
-
-See sections on L</"CIFS/NTFS ACL, SID/UID/GID MAPPING, SECURITY
-DESCRIPTORS"> for more information.
-
-=item B<backupuid=arg>
-
-File access by this user shall be done with the backup intent flag
-set. Either a name or an id must be provided as an argument, there are
-no default values.
-
-See section L</"ACCESSING FILES WITH BACKUP INTENT"> for more details.
-
-=item B<backupgid=arg>
-
-File access by users who are members of this group shall be done with
-the backup intent flag set. Either a name or an id must be provided as
-an argument, there are no default values.
-
-See section L</"ACCESSING FILES WITH BACKUP INTENT"> for more details.
-
-=item B<nocase>
-
-Request case insensitive path name matching (case sensitive is the default if the
-server supports it).
-
-=item B<ignorecase>
-
-Synonym for B<nocase>.
-
-=item B<sec=arg>
-
-Security mode. Allowed values are:
-
-=over
-
-=item * B<none> - attempt to connection as a null user (no name)
-
-=item * B<krb5> - Use Kerberos version 5 authentication
-
-=item * B<krb5i> - Use Kerberos authentication and forcibly enable
-packet signing
-
-=item * B<ntlm> - Use NTLM password hashing
-
-=item * B<ntlmi> - Use NTLM password hashing and force packet signing
-
-=item * B<ntlmv2> - Use NTLMv2 password hashing
-
-=item * B<ntlmv2i> - Use NTLMv2 password hashing and force packet
-signing
-
-=item * B<ntlmssp> - Use NTLMv2 password hashing encapsulated in Raw
-NTLMSSP message
-
-=item * B<ntlmsspi> - Use NTLMv2 password hashing encapsulated in Raw
-NTLMSSP message, and force packet signing
-
-=back
-
-The default in mainline kernel versions prior to v3.8 was
-B<sec=ntlm>. In v3.8, the default was changed to B<sec=ntlmssp>.
-
-If the server requires signing during protocol negotiation, then it
-may be enabled automatically. Packet signing may also be enabled
-automatically if it's enabled in F</proc/fs/cifs/SecurityFlags>.
-
-=item B<seal>
-
-Request encryption at the SMB layer. Encryption is only supported in
-SMBv3 and above. The encryption algorithm used is AES-128-CCM.
-
-=item B<nobrl>
-
-Do not send byte range lock requests to the server. This is necessary
-for certain applications that break with cifs style mandatory byte
-range locks (and most cifs servers do not yet support requesting
-advisory byte range locks).
-
-=item B<sfu>
-
-When the CIFS Unix Extensions are not negotiated, attempt to create
-device files and fifos in a format compatible with Services for Unix
-(SFU). In addition retrieve bits 10-12 of the mode via the
-C<SETFILEBITS> extended attribute (as SFU does). In the future the
-bottom 9 bits of the mode mode also will be emulated using queries of
-the security descriptor (ACL). [NB: requires version 1.39 or later of
-the CIFS VFS. To recognize symlinks and be able to create symlinks in
-an SFU interoperable form requires version 1.40 or later of the CIFS
-VFS kernel module.
-
-=item B<mfsymlinks>
-
-Enable support for Minshall+French symlinks (see
-L<http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks>). This
-option is ignored when specified together with the B<sfu>
-option. Minshall+French symlinks are used even if the server supports
-the CIFS Unix Extensions.
-
-=item B<serverino>
-
-Use inode numbers (unique persistent file identifiers) returned by the
-server instead of automatically generating temporary inode numbers on
-the client. Although server inode numbers make it easier to spot
-hardlinked files (as they will have the same inode numbers) and inode
-numbers may be persistent (which is useful for some software), the
-server does not guarantee that the inode numbers are unique if
-multiple server side mounts are exported under a single share (since
-inode numbers on the servers might not be unique if multiple
-filesystems are mounted under the same shared higher level
-directory). Note that not all servers support returning server inode
-numbers, although those that support the CIFS Unix Extensions, and
-Windows 2000 and later servers typically do support this (although not
-necessarily on every local server filesystem). Parameter has no effect
-if the server lacks support for returning inode numbers or
-equivalent. This behavior is enabled by default.
-
-=item B<noserverino>
-
-Client generates inode numbers itself rather than using the actual
-ones from the server.
-
-See section L</"INODE NUMBERS"> for more information.
-
-=item B<nounix>
-
-Disable the CIFS Unix Extensions for this mount. This can be useful in
-order to turn off multiple settings at once. This includes POSIX acls,
-POSIX locks, POSIX paths, symlink support and retrieving
-uids/gids/mode from the server. This can also be useful to work around
-a bug in a server that supports Unix Extensions.
-
-See section L</"INODE NUMBERS"> for more information.
-
-=item B<nouser_xattr>
-
-Do not allow getfattr/setfattr to get/set xattrs, even if server would
-support it otherwise. The default is for xattr support to be enabled.
-
-=item B<rsize=bytes>
-
-Maximum amount of data that the kernel will request in a read request
-in bytes. Prior to kernel 3.2.0, the default was 16k, and the maximum
-size was limited by the C<CIFSMaxBufSize> module parameter. As of
-kernel 3.2.0, the behavior varies according to whether POSIX
-extensions are enabled on the mount and the server supports large
-POSIX reads. If they are, then the default is 1M, and the maximum is
-16M. If they are not supported by the server, then the default is 60k
-and the maximum is around 127k. The reason for the 60k is because it's
-the maximum size read that windows servers can fill. Note that this
-value is a maximum, and the client may settle on a smaller size to
-accommodate what the server supports. In kernels prior to 3.2.0, no
-negotiation is performed.
-
-=item B<wsize=bytes>
-
-Maximum amount of data that the kernel will send in a write request in
-bytes. Prior to kernel 3.0.0, the default and maximum was 57344 (14 *
-4096 pages). As of 3.0.0, the default depends on whether the client
-and server negotiate large writes via POSIX extensions. If they do,
-then the default is 1M, and the maximum allowed is 16M. If they do
-not, then the default is 65536 and the maximum allowed is 131007. Note
-that this value is just a starting point for negotiation in 3.0.0 and
-up. The client and server may negotiate this size downward according
-to the server's capabilities. In kernels prior to 3.0.0, no
-negotiation is performed. It can end up with an existing superblock if
-this value isn't specified or it's greater or equal than the existing
-one.
-
-=item B<fsc>
-
-Enable local disk caching using FS-Cache for CIFS. This option could
-be useful to improve performance on a slow link, heavily loaded server
-and/or network where reading from the disk is faster than reading from
-the server (over the network). This could also impact the scalability
-positively as the number of calls to the server are reduced. But, be
-warned that local caching is not suitable for all workloads, for e.g.,
-read-once type workloads. So, you need to consider carefully the
-situation/workload before using this option. Currently, local disk
-caching is enabled for CIFS files opened as read-only.
-
-B<NOTE>: This feature is available only in the recent kernels that
-have been built with the kernel config option
-C<CONFIG_CIFS_FSCACHE>. You also need to have B<cachefilesd> daemon
-installed and running to make the cache operational.
-
-=item B<multiuser>
-
-Map user accesses to individual credentials when accessing the
-server. By default, CIFS mounts only use a single set of user
-credentials (the mount credentials) when accessing a share. With this
-option, the client instead creates a new session with the server using
-the user's credentials whenever a new user accesses the mount.
-Further accesses by that user will also use those credentials. Because
-the kernel cannot prompt for passwords, multiuser mounts are limited
-to mounts using B<sec=> options that don't require passwords.
-
-With this change, it's feasible for the server to handle permissions
-enforcement, so this option also implies B<noperm>. Furthermore, when
-unix extensions aren't in use and the administrator has not overridden
-ownership using the B<uid=> or B<gid=> options, ownership of files is
-presented as the current user accessing the share.
-
-=item B<actimeo=arg>
-
-The time (in seconds) that the CIFS client caches attributes of a file or
-directory before it requests attribute information from a server. During this
-period the changes that occur on the server remain undetected until the client
-checks the server again.
-
-By default, the attribute cache timeout is set to 1 second. This means
-more frequent on-the-wire calls to the server to check whether
-attributes have changed which could impact performance. With this
-option users can make a tradeoff between performance and cache
-metadata correctness, depending on workload needs. Shorter timeouts
-mean better cache coherency, but frequent increased number of calls to
-the server. Longer timeouts mean a reduced number of calls to the
-server but looser cache coherency. The B<actimeo> value is a positive
-integer that can hold values between 0 and a maximum value of 2^30 *
-HZ (frequency of timer interrupt) setting.
-
-=item B<noposixpaths>
-
-If unix extensions are enabled on a share, then the client will
-typically allow filenames to include any character besides '/' in a
-pathname component, and will use forward slashes as a pathname
-delimiter. This option prevents the client from attempting to
-negotiate the use of posix-style pathnames to the server.
-
-=item B<posixpaths>
-
-Inverse of B<noposixpaths>.
-
-=item B<prefixpath=arg>
-
-It's possible to mount a subdirectory of a share. The preferred way to
-do this is to append the path to the UNC when mounting. However, it's
-also possible to do the same by setting this option and providing the
-path there.
-
-=item B<vers=arg>
-
-SMB protocol version. Allowed values are:
-
-=over
-
-=item * 1.0 - The classic CIFS/SMBv1 protocol. This is the default.
-
-=item * 2.0 - The SMBv2.002 protocol. This was initially introduced in
-Windows Vista Service Pack 1, and Windows Server 2008. Note that the
-initial release version of Windows Vista spoke a slightly different
-dialect (2.000) that is not supported.
-
-=item * 2.1 - The SMBv2.1 protocol that was introduced in Microsoft
-Windows 7 and Windows Server 2008R2.
-
-=item * 3.0 - The SMBv3.0 protocol that was introduced in Microsoft
-Windows 8 and Windows Server 2012.
-
-=item * 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in
-Microsoft Windows Server 2016.
-
-Note too that while this option governs the protocol version used, not
-all features of each version are available.
-
-=back
-
-=item B<--verbose>
-
-Print additional debugging information for the mount. Note that this
-parameter must be specified before the B<-o>. For example:
-
- mount -t cifs //server/share /mnt --verbose -o user=username
-
-=back
-
-=head1 SERVICE FORMATTING AND DELIMITERS
-
-It's generally preferred to use forward slashes (/) as a delimiter in
-service names. They are considered to be the "universal delimiter"
-since they are generally not allowed to be embedded within path
-components on Windows machines and the client can convert them to
-backslashes (\) unconditionally. Conversely, backslash characters are
-allowed by POSIX to be part of a path component, and can't be
-automatically converted in the same way.
-
-B<mount.cifs> will attempt to convert backslashes to forward slashes
-where it's able to do so, but it cannot do so in any path component
-following the sharename.
-
-=head1 INODE NUMBERS
-
-When Unix Extensions are enabled, we use the actual inode number
-provided by the server in response to the POSIX calls as an inode
-number.
-
-When Unix Extensions are disabled and B<serverino> mount option is
-enabled there is no way to get the server inode number. The client
-typically maps the server-assigned C<UniqueID> onto an inode number.
-
-Note that the C<UniqueID> is a different value from the server inode
-number. The C<UniqueID> value is unique over the scope of the entire
-server and is often greater than 2 power 32. This value often makes
-programs that are not compiled with LFS (Large File Support), to
-trigger a glibc C<EOVERFLOW> error as this won't fit in the target
-structure field. It is strongly recommended to compile your programs
-with LFS support (i.e. with C<-D_FILE_OFFSET_BITS=64>) to prevent this
-problem. You can also use B<noserverino> mount option to generate
-inode numbers smaller than 2 power 32 on the client. But you may not
-be able to detect hardlinks properly.
-
-=head1 CACHE COHERENCY
-
-With a network filesystem such as CIFS or NFS, the client must contend
-with the fact that activity on other clients or the server could
-change the contents or attributes of a file without the client being
-aware of it. One way to deal with such a problem is to mandate that
-all file accesses go to the server directly. This is performance
-prohibitive however, so most protocols have some mechanism to allow
-the client to cache data locally.
-
-The CIFS protocol mandates (in effect) that the client should not
-cache file data unless it holds an opportunistic lock (aka oplock) or
-a lease. Both of these entities allow the client to guarantee certain
-types of exclusive access to a file so that it can access its contents
-without needing to continually interact with the server. The server
-will call back the client when it needs to revoke either of them and
-allow the client a certain amount of time to flush any cached data.
-
-The cifs client uses the kernel's pagecache to cache file data. Any
-I/O that's done through the pagecache is generally page-aligned. This
-can be problematic when combined with byte-range locks as Windows'
-locking is mandatory and can block reads and writes from occurring.
-
-B<cache=none> means that the client never utilizes the cache for
-normal reads and writes. It always accesses the server directly to
-satisfy a read or write request.
-
-B<cache=strict> means that the client will attempt to follow the
-CIFS/SMB2 protocol strictly. That is, the cache is only trusted when
-the client holds an oplock. When the client does not hold an oplock,
-then the client bypasses the cache and accesses the server directly to
-satisfy a read or write request. By doing this, the client avoids
-problems with byte range locks. Additionally, byte range locks are
-cached on the client when it holds an oplock and are "pushed" to the
-server when that oplock is recalled.
-
-B<cache=loose> allows the client to use looser protocol semantics
-which can sometimes provide better performance at the expense of cache
-coherency. File access always involves the pagecache. When an oplock
-or lease is not held, then the client will attempt to flush the cache
-soon after a write to a file. Note that that flush does not
-necessarily occur before a write system call returns.
-
-In the case of a read without holding an oplock, the client will
-attempt to periodically check the attributes of the file in order to
-ascertain whether it has changed and the cache might no longer be
-valid. This mechanism is much like the one that NFSv2/3 use for cache
-coherency, but it particularly problematic with CIFS. Windows is
-quite "lazy" with respect to updating the C<LastWriteTime> field that
-the client uses to verify this. The effect is that B<cache=loose> can
-cause data corruption when multiple readers and writers are working on
-the same files.
-
-Because of this, when multiple clients are accessing the same set of
-files, then B<cache=strict> is recommended. That helps eliminate
-problems with cache coherency by following the CIFS/SMB2 protocols
-more strictly.
-
-Note too that no matter what caching model is used, the client will
-always use the pagecache to handle mmap'ed files. Writes to mmap'ed
-files are only guaranteed to be flushed to the server when msync() is
-called, or on close().
-
-The default in kernels prior to 3.7 was B<loose>. As of 3.7, the
-default is B<strict>.
-
-=head1 CIFS/NTFS ACL, SID/UID/GID MAPPING, SECURITY DESCRIPTORS
-
-This option is used to work with file objects which posses Security
-Descriptors and CIFS/NTFS ACL instead of UID, GID, file permission
-bits, and POSIX ACL as user authentication model. This is the most
-common authentication model for CIFS servers and is the one used by
-Windows.
-
-Support for this requires both CIFS_XATTR and CIFS_ACL support in the
-CIFS configuration options when building the cifs module.
-
-A CIFS/NTFS ACL is mapped to file permission bits using an algorithm
-specified in the following Microsoft TechNet document:
-
-L<http://technet.microsoft.com/en-us/library/bb463216.aspx>
-
-In order to map SIDs to/from UIDs and GIDs, the following is required:
-
-=over
-
-=item * a kernel upcall to the B<cifs.idmap> utility set up via
-L<request-key.conf(5)>
-
-=item * winbind support configured via L<nsswitch.conf(5)> and
-L<smb.conf(5)>
-
-=back
-
-Please refer to the respective manpages of L<cifs.idmap(8)> and
-L<winbindd(8)> for more information.
-
-Security descriptors for a file object can be retrieved and set
-directly using extended attribute named C<system.cifs_acl>. The
-security descriptors presented via this interface are "raw" blobs of
-data and need a userspace utility to either parse and format or to
-assemble it such as L<getcifsacl(1)> and L<setcifsacl(1)>
-respectively.
-
-Some of the things to consider while using this mount option:
-
-=over
-
-=item * There may be an increased latency when handling metadata due
-to additional requests to get and set security descriptors.
-
-=item * The mapping between a CIFS/NTFS ACL and POSIX file permission
-bits is imperfect and some ACL information may be lost in the
-translation.
-
-=item * If either upcall to cifs.idmap is not setup correctly or
-winbind is not configured and running, ID mapping will fail. In that
-case uid and gid will default to either to those values of the share
-or to the values of uid and/or gid mount options if specified.
-
-=back
-
-=head1 ACCESSING FILES WITH BACKUP INTENT
-
-For an user on the server, desired access to a file is determined by
-the permissions and rights associated with that file. This is
-typically accomplished using ownership and ACL. For a user who does
-not have access rights to a file, it is still possible to access that
-file for a specific or a targeted purpose by granting special rights.
-One of the specific purposes is to access a file with the intent to
-either backup or restore i.e. backup intent. The right to access a
-file with the backup intent can typically be granted by making that
-user a part of the built-in group I<Backup Operators>. Thus, when
-this user attempts to open a file with the backup intent, open request
-is sent by setting the bit C<FILE_OPEN_FOR_BACKUP_INTENT> as one of
-the C<CreateOptions>.
-
-As an example, on a Windows server, a user named testuser, cannot open
-this file with such a security descriptor.
-
- REVISION:0x1
- CONTROL:0x9404
- OWNER:Administrator
- GROUP:Domain Users
- ACL:Administrator:ALLOWED/0x0/FULL
-
-But the user testuser, if it becomes part of the group Backup
-Operators, can open the file with the backup intent.
-
-Any user on the client side who can authenticate as such a user on the
-server, can access the files with the backup intent. But it is
-desirable and preferable for security reasons amongst many, to
-restrict this special right.
-
-The mount option B<backupuid> is used to restrict this special right
-to a user which is specified by either a name or an id. The mount
-option B<backupgid> is used to restrict this special right to the
-users in a group which is specified by either a name or an id. Only
-users matching either backupuid or backupgid shall attempt to access
-files with backup intent. These two mount options can be used
-together.
-
-=head1 FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS
-
-The core CIFS protocol does not provide unix ownership information or
-mode for files and directories. Because of this, files and directories
-will generally appear to be owned by whatever values the B<uid=> or
-B<gid=> options are set, and will have permissions set to the default
-B<file_mode> and B<dir_mode> for the mount. Attempting to change these
-values via chmod/chown will return success but have no effect.
-
-When the client and server negotiate unix extensions, files and
-directories will be assigned the uid, gid, and mode provided by the
-server. Because CIFS mounts are generally single-user, and the same
-credentials are used no matter what user accesses the mount, newly
-created files and directories will generally be given ownership
-corresponding to whatever credentials were used to mount the share.
-
-If the uid's and gid's being used do not match on the client and
-server, the B<forceuid> and B<forcegid> options may be helpful. Note
-however, that there is no corresponding option to override the
-mode. Permissions assigned to a file when B<forceuid> or B<forcegid>
-are in effect may not reflect the the real permissions.
-
-When unix extensions are not negotiated, it's also possible to emulate
-them locally on the server using the B<dynperm> mount option. When
-this mount option is in effect, newly created files and directories
-will receive what appear to be proper permissions. These permissions
-are not stored on the server however and can disappear at any time in
-the future (subject to the whims of the kernel flushing out the inode
-cache). In general, this mount option is discouraged.
-
-It's also possible to override permission checking on the client
-altogether via the B<noperm> option. Server-side permission checks
-cannot be overridden. The permission checks done by the server will
-always correspond to the credentials used to mount the share, and not
-necessarily to the user who is accessing the share.
-
-=head1 ENVIRONMENT VARIABLES
-
-The variable B<USER> may contain the username of the person to be used
-to authenticate to the server. The variable can be used to set both
-username and password by using the format C<username%password>.
-
-The variable B<PASSWD> may contain the password of the person using
-the client.
-
-The variable B<PASSWD_FILE> may contain the pathname of a file to read
-the password from. A single line of input is read and used as the
-password.
-
-=head1 NOTES
-
-This command may be used only by root, unless installed setuid, in
-which case the noexec and nosuid mount flags are enabled. When
-installed as a setuid program, the program follows the conventions set
-forth by the mount program for user mounts, with the added restriction
-that users must be able to chdir() into the mountpoint prior to the
-mount in order to be able to mount onto it.
-
-Some samba client tools like L<smbclient(8)> honour client-side
-configuration parameters present in F<smb.conf>. Unlike those client
-tools, B<mount.cifs> ignores F<smb.conf> completely.
-
-=head1 CONFIGURATION
-
-The primary mechanism for making configuration changes and for reading
-debug information for the cifs vfs is via the Linux /proc
-filesystem. In the directory F</proc/fs/cifs> are various
-configuration files and pseudo files which can display debug
-information. There are additional startup options such as maximum
-buffer size and number of buffers which only may be set when the
-kernel cifs vfs (cifs.ko module) is loaded. These can be seen by
-running the B<modinfo> utility against the file cifs.ko which will
-list the options that may be passed to cifs during module installation
-(device driver load). For more information see the kernel file
-F<fs/cifs/README>.
-
-=head1 BUGS
-
-Mounting using the CIFS URL specification is currently not supported.
-
-The credentials file does not handle usernames or passwords with
-leading space.
-
-Note that the typical response to a bug report is a suggestion to try
-the latest version first. So please try doing that first, and always
-include which versions you use of relevant software when reporting
-bugs (minimum: mount.cifs (try C<mount.cifs -V>), kernel (see
-F</proc/version>) and server type you are trying to contact.
-
-=head1 VERSION
-
-This man page is correct for version 1.74 of the cifs vfs filesystem
-(roughly Linux kernel 3.0).
-
-=head1 SEE ALSO
-
-L<cifs.upcall(8)>, L<getcifsacl(1)>, L<setcifsacl(1)>
-
-F<Documentation/filesystems/cifs.txt> and F<fs/cifs/README> in the
-linux kernel source tree may contain additional options and
-information.
-
-=head1 AUTHOR
-
-Steve French
-
-The maintainer of the Linux cifs vfs and the userspace tool mount.cifs
-is Steve French. The Linux CIFS Mailing list is the preferred place to
-ask questions regarding these programs.