Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 1 | This module supports the SMB3 family of advanced network protocols (as well |
| 2 | as older dialects, originally called "CIFS" or SMB1). |
| 3 | |
| 4 | The CIFS VFS module for Linux supports many advanced network filesystem |
| 5 | features such as hierarchical DFS like namespace, hardlinks, locking and more. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 | It was designed to comply with the SNIA CIFS Technical Reference (which |
| 7 | supersedes the 1992 X/Open SMB Standard) as well as to perform best practice |
| 8 | practical interoperability with Windows 2000, Windows XP, Samba and equivalent |
Steve French | 675c467 | 2008-04-17 23:41:01 +0000 | [diff] [blame] | 9 | servers. This code was developed in participation with the Protocol Freedom |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 10 | Information Foundation. CIFS and now SMB3 has now become a defacto |
| 11 | standard for interoperating between Macs and Windows and major NAS appliances. |
Steve French | 675c467 | 2008-04-17 23:41:01 +0000 | [diff] [blame] | 12 | |
| 13 | Please see |
Steve French | f30e414 | 2018-02-13 17:09:28 -0600 | [diff] [blame] | 14 | MS-SMB2 (for detailed SMB2/SMB3/SMB3.1.1 protocol specification) |
Steve French | 675c467 | 2008-04-17 23:41:01 +0000 | [diff] [blame] | 15 | http://protocolfreedom.org/ and |
| 16 | http://samba.org/samba/PFIF/ |
| 17 | for more details. |
| 18 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 19 | |
| 20 | For questions or bug reports please contact: |
Steve French | f30e414 | 2018-02-13 17:09:28 -0600 | [diff] [blame] | 21 | smfrench@gmail.com |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 22 | |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 23 | See the project page at: https://wiki.samba.org/index.php/LinuxCIFS_utils |
| 24 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 25 | Build instructions: |
| 26 | ================== |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 27 | For Linux: |
Adrian Bunk | dfc1e14 | 2005-05-05 16:15:51 -0700 | [diff] [blame] | 28 | 1) Download the kernel (e.g. from http://www.kernel.org) |
| 29 | and change directory into the top of the kernel directory tree |
| 30 | (e.g. /usr/src/linux-2.5.73) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 31 | 2) make menuconfig (or make xconfig) |
| 32 | 3) select cifs from within the network filesystem choices |
| 33 | 4) save and exit |
| 34 | 5) make |
| 35 | |
| 36 | |
| 37 | Installation instructions: |
| 38 | ========================= |
| 39 | If you have built the CIFS vfs as module (successfully) simply |
| 40 | type "make modules_install" (or if you prefer, manually copy the file to |
Steve French | f30e414 | 2018-02-13 17:09:28 -0600 | [diff] [blame] | 41 | the modules directory e.g. /lib/modules/2.4.10-4GB/kernel/fs/cifs/cifs.ko). |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 42 | |
| 43 | If you have built the CIFS vfs into the kernel itself, follow the instructions |
| 44 | for your distribution on how to install a new kernel (usually you |
| 45 | would simply type "make install"). |
| 46 | |
Steve French | f30e414 | 2018-02-13 17:09:28 -0600 | [diff] [blame] | 47 | If you do not have the utility mount.cifs (in the Samba 4.x source tree and on |
| 48 | the CIFS VFS web site) copy it to the same directory in which mount helpers |
| 49 | reside (usually /sbin). Although the helper software is not |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 50 | required, mount.cifs is recommended. Most distros include a "cifs-utils" |
| 51 | package that includes this utility so it is recommended to install this. |
| 52 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 53 | Note that running the Winbind pam/nss module (logon service) on all of your |
| 54 | Linux clients is useful in mapping Uids and Gids consistently across the |
| 55 | domain to the proper network user. The mount.cifs mount helper can be |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 56 | found at cifs-utils.git on git.samba.org |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 57 | |
| 58 | If cifs is built as a module, then the size and number of network buffers |
| 59 | and maximum number of simultaneous requests to one server can be configured. |
| 60 | Changing these from their defaults is not recommended. By executing modinfo |
| 61 | modinfo kernel/fs/cifs/cifs.ko |
| 62 | on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made |
| 63 | at module initialization time (by running insmod cifs.ko) can be seen. |
| 64 | |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 65 | Recommendations |
| 66 | =============== |
| 67 | To improve security the SMB2.1 dialect or later (usually will get SMB3) is now |
| 68 | the new default. To use old dialects (e.g. to mount Windows XP) use "vers=1.0" |
| 69 | on mount (or vers=2.0 for Windows Vista). Note that the CIFS (vers=1.0) is |
| 70 | much older and less secure than the default dialect SMB3 which includes |
| 71 | many advanced security features such as downgrade attack detection |
| 72 | and encrypted shares and stronger signing and authentication algorithms. |
| 73 | There are additional mount options that may be helpful for SMB3 to get |
| 74 | improved POSIX behavior (NB: can use vers=3.0 to force only SMB3, never 2.1): |
| 75 | "mfsymlinks" and "cifsacl" and "idsfromsid" |
| 76 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 77 | Allowing User Mounts |
| 78 | ==================== |
| 79 | To permit users to mount and unmount over directories they own is possible |
| 80 | with the cifs vfs. A way to enable such mounting is to mark the mount.cifs |
Steve French | 099a58f | 2005-04-28 22:41:07 -0700 | [diff] [blame] | 81 | utility as suid (e.g. "chmod +s /sbin/mount.cifs). To enable users to |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 82 | umount shares they mount requires |
| 83 | 1) mount.cifs version 1.4 or later |
| 84 | 2) an entry for the share in /etc/fstab indicating that a user may |
| 85 | unmount it e.g. |
| 86 | //server/usersharename /mnt/username cifs user 0 0 |
| 87 | |
| 88 | Note that when the mount.cifs utility is run suid (allowing user mounts), |
| 89 | in order to reduce risks, the "nosuid" mount flag is passed in on mount to |
| 90 | disallow execution of an suid program mounted on the remote target. |
| 91 | When mount is executed as root, nosuid is not passed in by default, |
| 92 | and execution of suid programs on the remote target would be enabled |
| 93 | by default. This can be changed, as with nfs and other filesystems, |
| 94 | by simply specifying "nosuid" among the mount options. For user mounts |
| 95 | though to be able to pass the suid flag to mount requires rebuilding |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 96 | mount.cifs with the following flag: CIFS_ALLOW_USR_SUID |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 97 | |
| 98 | There is a corresponding manual page for cifs mounting in the Samba 3.0 and |
| 99 | later source tree in docs/manpages/mount.cifs.8 |
| 100 | |
Steve French | 099a58f | 2005-04-28 22:41:07 -0700 | [diff] [blame] | 101 | Allowing User Unmounts |
| 102 | ====================== |
| 103 | To permit users to ummount directories that they have user mounted (see above), |
| 104 | the utility umount.cifs may be used. It may be invoked directly, or if |
Steve French | 0cb766a | 2005-04-28 22:41:11 -0700 | [diff] [blame] | 105 | umount.cifs is placed in /sbin, umount can invoke the cifs umount helper |
Steve French | 099a58f | 2005-04-28 22:41:07 -0700 | [diff] [blame] | 106 | (at least for most versions of the umount utility) for umount of cifs |
Steve French | 0cb766a | 2005-04-28 22:41:11 -0700 | [diff] [blame] | 107 | mounts, unless umount is invoked with -i (which will avoid invoking a umount |
| 108 | helper). As with mount.cifs, to enable user unmounts umount.cifs must be marked |
| 109 | as suid (e.g. "chmod +s /sbin/umount.cifs") or equivalent (some distributions |
| 110 | allow adding entries to a file to the /etc/permissions file to achieve the |
| 111 | equivalent suid effect). For this utility to succeed the target path |
| 112 | must be a cifs mount, and the uid of the current user must match the uid |
| 113 | of the user who mounted the resource. |
Steve French | 099a58f | 2005-04-28 22:41:07 -0700 | [diff] [blame] | 114 | |
| 115 | Also note that the customary way of allowing user mounts and unmounts is |
| 116 | (instead of using mount.cifs and unmount.cifs as suid) to add a line |
| 117 | to the file /etc/fstab for each //server/share you wish to mount, but |
| 118 | this can become unwieldy when potential mount targets include many |
| 119 | or unpredictable UNC names. |
| 120 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 121 | Samba Considerations |
Steve French | f30e414 | 2018-02-13 17:09:28 -0600 | [diff] [blame] | 122 | ==================== |
| 123 | Most current servers support SMB2.1 and SMB3 which are more secure, |
| 124 | but there are useful protocol extensions for the older less secure CIFS |
| 125 | dialect, so to get the maximum benefit if mounting using the older dialect |
| 126 | (CIFS/SMB1), we recommend using a server that supports the SNIA CIFS |
| 127 | Unix Extensions standard (e.g. almost any version of Samba ie version |
| 128 | 2.2.5 or later) but the CIFS vfs works fine with a wide variety of CIFS servers. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 129 | Note that uid, gid and file permissions will display default values if you do |
| 130 | not have a server that supports the Unix extensions for CIFS (such as Samba |
| 131 | 2.2.5 or later). To enable the Unix CIFS Extensions in the Samba server, add |
| 132 | the line: |
| 133 | |
| 134 | unix extensions = yes |
| 135 | |
| 136 | to your smb.conf file on the server. Note that the following smb.conf settings |
| 137 | are also useful (on the Samba server) when the majority of clients are Unix or |
| 138 | Linux: |
| 139 | |
| 140 | case sensitive = yes |
| 141 | delete readonly = yes |
| 142 | ea support = yes |
| 143 | |
| 144 | Note that server ea support is required for supporting xattrs from the Linux |
| 145 | cifs client, and that EA support is present in later versions of Samba (e.g. |
| 146 | 3.0.6 and later (also EA support works in all versions of Windows, at least to |
| 147 | shares on NTFS filesystems). Extended Attribute (xattr) support is an optional |
| 148 | feature of most Linux filesystems which may require enabling via |
| 149 | make menuconfig. Client support for extended attributes (user xattr) can be |
| 150 | disabled on a per-mount basis by specifying "nouser_xattr" on mount. |
| 151 | |
| 152 | The CIFS client can get and set POSIX ACLs (getfacl, setfacl) to Samba servers |
| 153 | version 3.10 and later. Setting POSIX ACLs requires enabling both XATTR and |
| 154 | then POSIX support in the CIFS configuration options when building the cifs |
| 155 | module. POSIX ACL support can be disabled on a per mount basic by specifying |
| 156 | "noacl" on mount. |
| 157 | |
| 158 | Some administrators may want to change Samba's smb.conf "map archive" and |
| 159 | "create mask" parameters from the default. Unless the create mask is changed |
| 160 | newly created files can end up with an unnecessarily restrictive default mode, |
| 161 | which may not be what you want, although if the CIFS Unix extensions are |
| 162 | enabled on the server and client, subsequent setattr calls (e.g. chmod) can |
| 163 | fix the mode. Note that creating special devices (mknod) remotely |
| 164 | may require specifying a mkdev function to Samba if you are not using |
| 165 | Samba 3.0.6 or later. For more information on these see the manual pages |
| 166 | ("man smb.conf") on the Samba server system. Note that the cifs vfs, |
| 167 | unlike the smbfs vfs, does not read the smb.conf on the client system |
| 168 | (the few optional settings are passed in on mount via -o parameters instead). |
| 169 | Note that Samba 2.2.7 or later includes a fix that allows the CIFS VFS to delete |
| 170 | open files (required for strict POSIX compliance). Windows Servers already |
| 171 | supported this feature. Samba server does not allow symlinks that refer to files |
| 172 | outside of the share, so in Samba versions prior to 3.0.6, most symlinks to |
| 173 | files with absolute paths (ie beginning with slash) such as: |
| 174 | ln -s /mnt/foo bar |
| 175 | would be forbidden. Samba 3.0.6 server or later includes the ability to create |
| 176 | such symlinks safely by converting unsafe symlinks (ie symlinks to server |
| 177 | files that are outside of the share) to a samba specific format on the server |
| 178 | that is ignored by local server applications and non-cifs clients and that will |
| 179 | not be traversed by the Samba server). This is opaque to the Linux client |
| 180 | application using the cifs vfs. Absolute symlinks will work to Samba 3.0.5 or |
| 181 | later, but only for remote clients using the CIFS Unix extensions, and will |
| 182 | be invisbile to Windows clients and typically will not affect local |
| 183 | applications running on the same server as Samba. |
| 184 | |
| 185 | Use instructions: |
| 186 | ================ |
| 187 | Once the CIFS VFS support is built into the kernel or installed as a module |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 188 | (cifs.ko), you can use mount syntax like the following to access Samba or |
| 189 | Mac or Windows servers: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 190 | |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 191 | mount -t cifs //9.53.216.11/e$ /mnt -o username=myname,password=mypassword |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 192 | |
| 193 | Before -o the option -v may be specified to make the mount.cifs |
| 194 | mount helper display the mount steps more verbosely. |
| 195 | After -o the following commonly used cifs vfs specific options |
| 196 | are supported: |
| 197 | |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 198 | username=<username> |
| 199 | password=<password> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 200 | domain=<domain name> |
| 201 | |
| 202 | Other cifs mount options are described below. Use of TCP names (in addition to |
| 203 | ip addresses) is available if the mount helper (mount.cifs) is installed. If |
| 204 | you do not trust the server to which are mounted, or if you do not have |
| 205 | cifs signing enabled (and the physical network is insecure), consider use |
| 206 | of the standard mount options "noexec" and "nosuid" to reduce the risk of |
| 207 | running an altered binary on your local system (downloaded from a hostile server |
| 208 | or altered by a hostile router). |
| 209 | |
| 210 | Although mounting using format corresponding to the CIFS URL specification is |
| 211 | not possible in mount.cifs yet, it is possible to use an alternate format |
| 212 | for the server and sharename (which is somewhat similar to NFS style mount |
| 213 | syntax) instead of the more widely used UNC format (i.e. \\server\share): |
| 214 | mount -t cifs tcp_name_of_server:share_name /mnt -o user=myname,pass=mypasswd |
| 215 | |
| 216 | When using the mount helper mount.cifs, passwords may be specified via alternate |
| 217 | mechanisms, instead of specifying it after -o using the normal "pass=" syntax |
| 218 | on the command line: |
| 219 | 1) By including it in a credential file. Specify credentials=filename as one |
| 220 | of the mount options. Credential files contain two lines |
| 221 | username=someuser |
| 222 | password=your_password |
| 223 | 2) By specifying the password in the PASSWD environment variable (similarly |
| 224 | the user name can be taken from the USER environment variable). |
| 225 | 3) By specifying the password in a file by name via PASSWD_FILE |
| 226 | 4) By specifying the password in a file by file descriptor via PASSWD_FD |
| 227 | |
| 228 | If no password is provided, mount.cifs will prompt for password entry |
| 229 | |
| 230 | Restrictions |
| 231 | ============ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 232 | Servers must support either "pure-TCP" (port 445 TCP/IP CIFS connections) or RFC |
Jeff Layton | cea2180 | 2007-11-20 23:19:03 +0000 | [diff] [blame] | 233 | 1001/1002 support for "Netbios-Over-TCP/IP." This is not likely to be a |
| 234 | problem as most servers support this. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 235 | |
| 236 | Valid filenames differ between Windows and Linux. Windows typically restricts |
| 237 | filenames which contain certain reserved characters (e.g.the character : |
| 238 | which is used to delimit the beginning of a stream name by Windows), while |
| 239 | Linux allows a slightly wider set of valid characters in filenames. Windows |
| 240 | servers can remap such characters when an explicit mapping is specified in |
| 241 | the Server's registry. Samba starting with version 3.10 will allow such |
| 242 | filenames (ie those which contain valid Linux characters, which normally |
| 243 | would be forbidden for Windows/CIFS semantics) as long as the server is |
| 244 | configured for Unix Extensions (and the client has not disabled |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 245 | /proc/fs/cifs/LinuxExtensionsEnabled). In addition the mount option |
| 246 | "mapposix" can be used on CIFS (vers=1.0) to force the mapping of |
| 247 | illegal Windows/NTFS/SMB characters to a remap range (this mount parm |
| 248 | is the default for SMB3). This remap ("mapposix") range is also |
| 249 | compatible with Mac (and "Services for Mac" on some older Windows). |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 250 | |
| 251 | CIFS VFS Mount Options |
| 252 | ====================== |
| 253 | A partial list of the supported mount options follows: |
Steve French | ec11653 | 2017-09-14 14:51:20 -0500 | [diff] [blame] | 254 | username The user name to use when trying to establish |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 255 | the CIFS session. |
| 256 | password The user password. If the mount helper is |
| 257 | installed, the user will be prompted for password |
Steve French | f6d0998 | 2008-01-08 23:18:22 +0000 | [diff] [blame] | 258 | if not supplied. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 259 | ip The ip address of the target server |
| 260 | unc The target server Universal Network Name (export) to |
| 261 | mount. |
| 262 | domain Set the SMB/CIFS workgroup name prepended to the |
| 263 | username during CIFS session establishment |
Steve French | d098564 | 2009-08-04 03:53:28 +0000 | [diff] [blame] | 264 | forceuid Set the default uid for inodes to the uid |
| 265 | passed in on mount. For mounts to servers |
Steve French | 4523cc3 | 2007-04-30 20:13:06 +0000 | [diff] [blame] | 266 | which do support the CIFS Unix extensions, such as a |
| 267 | properly configured Samba server, the server provides |
Steve French | d098564 | 2009-08-04 03:53:28 +0000 | [diff] [blame] | 268 | the uid, gid and mode so this parameter should not be |
Steve French | 4523cc3 | 2007-04-30 20:13:06 +0000 | [diff] [blame] | 269 | specified unless the server and clients uid and gid |
| 270 | numbering differ. If the server and client are in the |
| 271 | same domain (e.g. running winbind or nss_ldap) and |
| 272 | the server supports the Unix Extensions then the uid |
| 273 | and gid can be retrieved from the server (and uid |
Kees Cook | 0855965 | 2016-04-26 16:41:21 -0700 | [diff] [blame] | 274 | and gid would not have to be specified on the mount. |
Steve French | 4523cc3 | 2007-04-30 20:13:06 +0000 | [diff] [blame] | 275 | For servers which do not support the CIFS Unix |
| 276 | extensions, the default uid (and gid) returned on lookup |
| 277 | of existing files will be the uid (gid) of the person |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 278 | who executed the mount (root, except when mount.cifs |
| 279 | is configured setuid for user mounts) unless the "uid=" |
Steve French | d098564 | 2009-08-04 03:53:28 +0000 | [diff] [blame] | 280 | (gid) mount option is specified. Also note that permission |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 281 | checks (authorization checks) on accesses to a file occur |
| 282 | at the server, but there are cases in which an administrator |
| 283 | may want to restrict at the client as well. For those |
| 284 | servers which do not report a uid/gid owner |
| 285 | (such as Windows), permissions can also be checked at the |
| 286 | client, and a crude form of client side permission checking |
| 287 | can be enabled by specifying file_mode and dir_mode on |
Steve French | d098564 | 2009-08-04 03:53:28 +0000 | [diff] [blame] | 288 | the client. (default) |
| 289 | forcegid (similar to above but for the groupid instead of uid) (default) |
| 290 | noforceuid Fill in file owner information (uid) by requesting it from |
| 291 | the server if possible. With this option, the value given in |
| 292 | the uid= option (on mount) will only be used if the server |
| 293 | can not support returning uids on inodes. |
| 294 | noforcegid (similar to above but for the group owner, gid, instead of uid) |
Steve French | f0472d0 | 2009-06-06 21:09:39 +0000 | [diff] [blame] | 295 | uid Set the default uid for inodes, and indicate to the |
Steve French | d098564 | 2009-08-04 03:53:28 +0000 | [diff] [blame] | 296 | cifs kernel driver which local user mounted. If the server |
Steve French | f0472d0 | 2009-06-06 21:09:39 +0000 | [diff] [blame] | 297 | supports the unix extensions the default uid is |
| 298 | not used to fill in the owner fields of inodes (files) |
| 299 | unless the "forceuid" parameter is specified. |
Steve French | 4523cc3 | 2007-04-30 20:13:06 +0000 | [diff] [blame] | 300 | gid Set the default gid for inodes (similar to above). |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 301 | file_mode If CIFS Unix extensions are not supported by the server |
| 302 | this overrides the default mode for file inodes. |
Suresh Jayaraman | 3694b91 | 2010-08-05 18:52:21 +0530 | [diff] [blame] | 303 | fsc Enable local disk caching using FS-Cache (off by default). This |
| 304 | option could be useful to improve performance on a slow link, |
| 305 | heavily loaded server and/or network where reading from the |
| 306 | disk is faster than reading from the server (over the network). |
| 307 | This could also impact scalability positively as the |
| 308 | number of calls to the server are reduced. However, local |
| 309 | caching is not suitable for all workloads for e.g. read-once |
| 310 | type workloads. So, you need to consider carefully your |
| 311 | workload/scenario before using this option. Currently, local |
| 312 | disk caching is functional for CIFS files opened as read-only. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 313 | dir_mode If CIFS Unix extensions are not supported by the server |
| 314 | this overrides the default mode for directory inodes. |
| 315 | port attempt to contact the server on this tcp port, before |
| 316 | trying the usual ports (port 445, then 139). |
| 317 | iocharset Codepage used to convert local path names to and from |
| 318 | Unicode. Unicode is used by default for network path |
| 319 | names if the server supports it. If iocharset is |
| 320 | not specified then the nls_default specified |
| 321 | during the local client kernel build will be used. |
| 322 | If server does not support Unicode, this parameter is |
| 323 | unused. |
Steve French | 75865f8c | 2007-06-24 18:30:48 +0000 | [diff] [blame] | 324 | rsize default read size (usually 16K). The client currently |
| 325 | can not use rsize larger than CIFSMaxBufSize. CIFSMaxBufSize |
| 326 | defaults to 16K and may be changed (from 8K to the maximum |
| 327 | kmalloc size allowed by your kernel) at module install time |
| 328 | for cifs.ko. Setting CIFSMaxBufSize to a very large value |
| 329 | will cause cifs to use more memory and may reduce performance |
| 330 | in some cases. To use rsize greater than 127K (the original |
| 331 | cifs protocol maximum) also requires that the server support |
| 332 | a new Unix Capability flag (for very large read) which some |
| 333 | newer servers (e.g. Samba 3.0.26 or later) do. rsize can be |
| 334 | set from a minimum of 2048 to a maximum of 130048 (127K or |
| 335 | CIFSMaxBufSize, whichever is smaller) |
| 336 | wsize default write size (default 57344) |
| 337 | maximum wsize currently allowed by CIFS is 57344 (fourteen |
| 338 | 4096 byte pages) |
Suresh Jayaraman | 6d20e84 | 2010-12-01 14:42:28 +0530 | [diff] [blame] | 339 | actimeo=n attribute cache timeout in seconds (default 1 second). |
| 340 | After this timeout, the cifs client requests fresh attribute |
| 341 | information from the server. This option allows to tune the |
| 342 | attribute cache timeout to suit the workload needs. Shorter |
| 343 | timeouts mean better the cache coherency, but increased number |
| 344 | of calls to the server. Longer timeouts mean reduced number |
| 345 | of calls to the server at the expense of less stricter cache |
| 346 | coherency checks (i.e. incorrect attribute cache for a short |
| 347 | period of time). |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 348 | rw mount the network share read-write (note that the |
| 349 | server may still consider the share read-only) |
| 350 | ro mount network share read-only |
| 351 | version used to distinguish different versions of the |
| 352 | mount helper utility (not typically needed) |
| 353 | sep if first mount option (after the -o), overrides |
| 354 | the comma as the separator between the mount |
| 355 | parms. e.g. |
| 356 | -o user=myname,password=mypassword,domain=mydom |
| 357 | could be passed instead with period as the separator by |
| 358 | -o sep=.user=myname.password=mypassword.domain=mydom |
| 359 | this might be useful when comma is contained within username |
| 360 | or password or domain. This option is less important |
| 361 | when the cifs mount helper cifs.mount (version 1.1 or later) |
| 362 | is used. |
| 363 | nosuid Do not allow remote executables with the suid bit |
| 364 | program to be executed. This is only meaningful for mounts |
| 365 | to servers such as Samba which support the CIFS Unix Extensions. |
| 366 | If you do not trust the servers in your network (your mount |
| 367 | targets) it is recommended that you specify this option for |
| 368 | greater security. |
| 369 | exec Permit execution of binaries on the mount. |
| 370 | noexec Do not permit execution of binaries on the mount. |
| 371 | dev Recognize block devices on the remote mount. |
| 372 | nodev Do not recognize devices on the remote mount. |
| 373 | suid Allow remote files on this mountpoint with suid enabled to |
| 374 | be executed (default for mounts when executed as root, |
| 375 | nosuid is default for user mounts). |
| 376 | credentials Although ignored by the cifs kernel component, it is used by |
| 377 | the mount helper, mount.cifs. When mount.cifs is installed it |
| 378 | opens and reads the credential file specified in order |
| 379 | to obtain the userid and password arguments which are passed to |
| 380 | the cifs vfs. |
| 381 | guest Although ignored by the kernel component, the mount.cifs |
| 382 | mount helper will not prompt the user for a password |
| 383 | if guest is specified on the mount options. If no |
| 384 | password is specified a null password will be used. |
| 385 | perm Client does permission checks (vfs_permission check of uid |
| 386 | and gid of the file against the mode and desired operation), |
| 387 | Note that this is in addition to the normal ACL check on the |
| 388 | target machine done by the server software. |
| 389 | Client permission checking is enabled by default. |
| 390 | noperm Client does not do permission checks. This can expose |
| 391 | files on this mount to access by other users on the local |
| 392 | client system. It is typically only needed when the server |
| 393 | supports the CIFS Unix Extensions but the UIDs/GIDs on the |
| 394 | client and server system do not match closely enough to allow |
Steve French | 6473a55 | 2005-11-29 20:20:10 -0800 | [diff] [blame] | 395 | access by the user doing the mount, but it may be useful with |
| 396 | non CIFS Unix Extension mounts for cases in which the default |
| 397 | mode is specified on the mount but is not to be enforced on the |
| 398 | client (e.g. perhaps when MultiUserMount is enabled) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 399 | Note that this does not affect the normal ACL check on the |
| 400 | target machine done by the server software (of the server |
| 401 | ACL against the user name provided at mount time). |
Steve French | 7521a3c | 2007-07-11 18:30:34 +0000 | [diff] [blame] | 402 | serverino Use server's inode numbers instead of generating automatically |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 403 | incrementing inode numbers on the client. Although this will |
| 404 | make it easier to spot hardlinked files (as they will have |
| 405 | the same inode numbers) and inode numbers may be persistent, |
| 406 | note that the server does not guarantee that the inode numbers |
| 407 | are unique if multiple server side mounts are exported under a |
| 408 | single share (since inode numbers on the servers might not |
| 409 | be unique if multiple filesystems are mounted under the same |
Steve French | 7521a3c | 2007-07-11 18:30:34 +0000 | [diff] [blame] | 410 | shared higher level directory). Note that some older |
| 411 | (e.g. pre-Windows 2000) do not support returning UniqueIDs |
| 412 | or the CIFS Unix Extensions equivalent and for those |
| 413 | this mount option will have no effect. Exporting cifs mounts |
| 414 | under nfsd requires this mount option on the cifs mount. |
Steve French | c5077ec | 2009-05-28 15:09:04 +0000 | [diff] [blame] | 415 | This is now the default if server supports the |
| 416 | required network operation. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 417 | noserverino Client generates inode numbers (rather than using the actual one |
Steve French | c5077ec | 2009-05-28 15:09:04 +0000 | [diff] [blame] | 418 | from the server). These inode numbers will vary after |
| 419 | unmount or reboot which can confuse some applications, |
| 420 | but not all server filesystems support unique inode |
| 421 | numbers. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 422 | setuids If the CIFS Unix extensions are negotiated with the server |
| 423 | the client will attempt to set the effective uid and gid of |
| 424 | the local process on newly created files, directories, and |
Steve French | 6473a55 | 2005-11-29 20:20:10 -0800 | [diff] [blame] | 425 | devices (create, mkdir, mknod). If the CIFS Unix Extensions |
| 426 | are not negotiated, for newly created files and directories |
Matt LaPlante | cab0089 | 2006-10-03 22:36:44 +0200 | [diff] [blame] | 427 | instead of using the default uid and gid specified on |
Steve French | 6473a55 | 2005-11-29 20:20:10 -0800 | [diff] [blame] | 428 | the mount, cache the new file's uid and gid locally which means |
| 429 | that the uid for the file can change when the inode is |
| 430 | reloaded (or the user remounts the share). |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 431 | nosetuids The client will not attempt to set the uid and gid on |
| 432 | on newly created files, directories, and devices (create, |
| 433 | mkdir, mknod) which will result in the server setting the |
| 434 | uid and gid to the default (usually the server uid of the |
Steve French | 67594fe | 2005-05-17 13:04:49 -0500 | [diff] [blame] | 435 | user who mounted the share). Letting the server (rather than |
Steve French | 6473a55 | 2005-11-29 20:20:10 -0800 | [diff] [blame] | 436 | the client) set the uid and gid is the default. If the CIFS |
| 437 | Unix Extensions are not negotiated then the uid and gid for |
| 438 | new files will appear to be the uid (gid) of the mounter or the |
| 439 | uid (gid) parameter specified on the mount. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 440 | netbiosname When mounting to servers via port 139, specifies the RFC1001 |
| 441 | source name to use to represent the client netbios machine |
| 442 | name when doing the RFC1001 netbios session initialize. |
| 443 | direct Do not do inode data caching on files opened on this mount. |
André Goddard Rosa | af901ca | 2009-11-14 13:09:05 -0200 | [diff] [blame] | 444 | This precludes mmapping files on this mount. In some cases |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 445 | with fast networks and little or no caching benefits on the |
| 446 | client (e.g. when the application is doing large sequential |
| 447 | reads bigger than page size without rereading the same data) |
| 448 | this can provide better performance than the default |
Steve French | 67594fe | 2005-05-17 13:04:49 -0500 | [diff] [blame] | 449 | behavior which caches reads (readahead) and writes |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 450 | (writebehind) through the local Linux client pagecache |
| 451 | if oplock (caching token) is granted and held. Note that |
| 452 | direct allows write operations larger than page size |
| 453 | to be sent to the server. |
Pavel Shilovsky | d39454f | 2011-01-24 14:16:35 -0500 | [diff] [blame] | 454 | strictcache Use for switching on strict cache mode. In this mode the |
| 455 | client read from the cache all the time it has Oplock Level II, |
| 456 | otherwise - read from the server. All written data are stored |
| 457 | in the cache, but if the client doesn't have Exclusive Oplock, |
| 458 | it writes the data to the server. |
Pavel Shilovsky | d4ffff1 | 2011-05-26 06:02:00 +0000 | [diff] [blame] | 459 | rwpidforward Forward pid of a process who opened a file to any read or write |
| 460 | operation on that file. This prevent applications like WINE |
| 461 | from failing on read and write if we use mandatory brlock style. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 462 | acl Allow setfacl and getfacl to manage posix ACLs if server |
| 463 | supports them. (default) |
| 464 | noacl Do not allow setfacl and getfacl calls on this mount |
Steve French | f6d0998 | 2008-01-08 23:18:22 +0000 | [diff] [blame] | 465 | user_xattr Allow getting and setting user xattrs (those attributes whose |
| 466 | name begins with "user." or "os2.") as OS/2 EAs (extended |
| 467 | attributes) to the server. This allows support of the |
| 468 | setfattr and getfattr utilities. (default) |
Steve French | ea4c07d | 2006-08-16 19:44:25 +0000 | [diff] [blame] | 469 | nouser_xattr Do not allow getfattr/setfattr to get/set/list xattrs |
Steve French | 737b758 | 2005-04-28 22:41:06 -0700 | [diff] [blame] | 470 | mapchars Translate six of the seven reserved characters (not backslash) |
| 471 | *?<>|: |
Steve French | 6a0b482 | 2005-04-28 22:41:05 -0700 | [diff] [blame] | 472 | to the remap range (above 0xF000), which also |
| 473 | allows the CIFS client to recognize files created with |
| 474 | such characters by Windows's POSIX emulation. This can |
| 475 | also be useful when mounting to most versions of Samba |
| 476 | (which also forbids creating and opening files |
| 477 | whose names contain any of these seven characters). |
| 478 | This has no effect if the server does not support |
| 479 | Unicode on the wire. |
| 480 | nomapchars Do not translate any of these seven characters (default). |
Steve French | c46fa8a | 2005-08-18 20:49:57 -0700 | [diff] [blame] | 481 | nocase Request case insensitive path name matching (case |
Masanari Iida | 02582e9 | 2012-08-22 19:11:26 +0900 | [diff] [blame] | 482 | sensitive is the default if the server supports it). |
Steve French | f6d0998 | 2008-01-08 23:18:22 +0000 | [diff] [blame] | 483 | (mount option "ignorecase" is identical to "nocase") |
Steve French | 82940a4 | 2006-03-02 03:24:57 +0000 | [diff] [blame] | 484 | posixpaths If CIFS Unix extensions are supported, attempt to |
| 485 | negotiate posix path name support which allows certain |
| 486 | characters forbidden in typical CIFS filenames, without |
| 487 | requiring remapping. (default) |
| 488 | noposixpaths If CIFS Unix extensions are supported, do not request |
| 489 | posix path name support (this may cause servers to |
| 490 | reject creatingfile with certain reserved characters). |
Steve French | a403a0a | 2007-07-26 15:54:16 +0000 | [diff] [blame] | 491 | nounix Disable the CIFS Unix Extensions for this mount (tree |
| 492 | connection). This is rarely needed, but it may be useful |
| 493 | in order to turn off multiple settings all at once (ie |
| 494 | posix acls, posix locks, posix paths, symlink support |
| 495 | and retrieving uids/gids/mode from the server) or to |
| 496 | work around a bug in server which implement the Unix |
| 497 | Extensions. |
Steve French | c46fa8a | 2005-08-18 20:49:57 -0700 | [diff] [blame] | 498 | nobrl Do not send byte range lock requests to the server. |
| 499 | This is necessary for certain applications that break |
| 500 | with cifs style mandatory byte range locks (and most |
| 501 | cifs servers do not yet support requesting advisory |
| 502 | byte range locks). |
Steve French | 13a6e42 | 2008-12-02 17:24:33 +0000 | [diff] [blame] | 503 | forcemandatorylock Even if the server supports posix (advisory) byte range |
| 504 | locking, send only mandatory lock requests. For some |
| 505 | (presumably rare) applications, originally coded for |
| 506 | DOS/Windows, which require Windows style mandatory byte range |
| 507 | locking, they may be able to take advantage of this option, |
| 508 | forcing the cifs client to only send mandatory locks |
| 509 | even if the cifs server would support posix advisory locks. |
| 510 | "forcemand" is accepted as a shorter form of this mount |
| 511 | option. |
Steve French | be65244 | 2009-02-23 15:21:59 +0000 | [diff] [blame] | 512 | nostrictsync If this mount option is set, when an application does an |
| 513 | fsync call then the cifs client does not send an SMB Flush |
| 514 | to the server (to force the server to write all dirty data |
| 515 | for this file immediately to disk), although cifs still sends |
| 516 | all dirty (cached) file data to the server and waits for the |
| 517 | server to respond to the write. Since SMB Flush can be |
| 518 | very slow, and some servers may be reliable enough (to risk |
| 519 | delaying slightly flushing the data to disk on the server), |
| 520 | turning on this option may be useful to improve performance for |
| 521 | applications that fsync too much, at a small risk of server |
| 522 | crash. If this mount option is not set, by default cifs will |
| 523 | send an SMB flush request (and wait for a response) on every |
| 524 | fsync call. |
Steve French | 2c1b861 | 2008-10-16 18:35:21 +0000 | [diff] [blame] | 525 | nodfs Disable DFS (global name space support) even if the |
| 526 | server claims to support it. This can help work around |
Steve French | 13a6e42 | 2008-12-02 17:24:33 +0000 | [diff] [blame] | 527 | a problem with parsing of DFS paths with Samba server |
| 528 | versions 3.0.24 and 3.0.25. |
Steve French | 0cb766a | 2005-04-28 22:41:11 -0700 | [diff] [blame] | 529 | remount remount the share (often used to change from ro to rw mounts |
| 530 | or vice versa) |
Jeff Layton | cea2180 | 2007-11-20 23:19:03 +0000 | [diff] [blame] | 531 | cifsacl Report mode bits (e.g. on stat) based on the Windows ACL for |
| 532 | the file. (EXPERIMENTAL) |
Cyrill Gorcunov | 5e6e623 | 2007-08-18 00:15:20 +0000 | [diff] [blame] | 533 | servern Specify the server 's netbios name (RFC1001 name) to use |
Steve French | ad7a292 | 2008-02-07 23:25:02 +0000 | [diff] [blame] | 534 | when attempting to setup a session to the server. |
Cyrill Gorcunov | 5e6e623 | 2007-08-18 00:15:20 +0000 | [diff] [blame] | 535 | This is needed for mounting to some older servers (such |
| 536 | as OS/2 or Windows 98 and Windows ME) since they do not |
| 537 | support a default server name. A server name can be up |
| 538 | to 15 characters long and is usually uppercased. |
Steve French | 6473a55 | 2005-11-29 20:20:10 -0800 | [diff] [blame] | 539 | sfu When the CIFS Unix Extensions are not negotiated, attempt to |
| 540 | create device files and fifos in a format compatible with |
| 541 | Services for Unix (SFU). In addition retrieve bits 10-12 |
| 542 | of the mode via the SETFILEBITS extended attribute (as |
Matt LaPlante | cab0089 | 2006-10-03 22:36:44 +0200 | [diff] [blame] | 543 | SFU does). In the future the bottom 9 bits of the |
Steve French | 6473a55 | 2005-11-29 20:20:10 -0800 | [diff] [blame] | 544 | mode also will be emulated using queries of the security |
| 545 | descriptor (ACL). |
Stefan Metzmacher | 736a332 | 2010-07-30 14:56:00 +0200 | [diff] [blame] | 546 | mfsymlinks Enable support for Minshall+French symlinks |
| 547 | (see http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks) |
| 548 | This option is ignored when specified together with the |
| 549 | 'sfu' option. Minshall+French symlinks are used even if |
| 550 | the server supports the CIFS Unix Extensions. |
Steve French | 750d115 | 2006-06-27 06:28:30 +0000 | [diff] [blame] | 551 | sign Must use packet signing (helps avoid unwanted data modification |
| 552 | by intermediate systems in the route). Note that signing |
| 553 | does not work with lanman or plaintext authentication. |
Steve French | 95b1cb9 | 2008-05-15 16:44:38 +0000 | [diff] [blame] | 554 | seal Must seal (encrypt) all data on this mounted share before |
| 555 | sending on the network. Requires support for Unix Extensions. |
| 556 | Note that this differs from the sign mount option in that it |
| 557 | causes encryption of data sent over this mounted share but other |
| 558 | shares mounted to the same server are unaffected. |
Steve French | 84210e9 | 2008-10-23 04:42:37 +0000 | [diff] [blame] | 559 | locallease This option is rarely needed. Fcntl F_SETLEASE is |
| 560 | used by some applications such as Samba and NFSv4 server to |
| 561 | check to see whether a file is cacheable. CIFS has no way |
| 562 | to explicitly request a lease, but can check whether a file |
| 563 | is cacheable (oplocked). Unfortunately, even if a file |
| 564 | is not oplocked, it could still be cacheable (ie cifs client |
| 565 | could grant fcntl leases if no other local processes are using |
| 566 | the file) for cases for example such as when the server does not |
| 567 | support oplocks and the user is sure that the only updates to |
| 568 | the file will be from this client. Specifying this mount option |
| 569 | will allow the cifs client to check for leases (only) locally |
| 570 | for files which are not oplocked instead of denying leases |
| 571 | in that case. (EXPERIMENTAL) |
Steve French | 750d115 | 2006-06-27 06:28:30 +0000 | [diff] [blame] | 572 | sec Security mode. Allowed values are: |
Steve French | bf82067 | 2005-12-01 22:32:42 -0800 | [diff] [blame] | 573 | none attempt to connection as a null user (no name) |
| 574 | krb5 Use Kerberos version 5 authentication |
| 575 | krb5i Use Kerberos authentication and packet signing |
| 576 | ntlm Use NTLM password hashing (default) |
| 577 | ntlmi Use NTLM password hashing with signing (if |
| 578 | /proc/fs/cifs/PacketSigningEnabled on or if |
| 579 | server requires signing also can be the default) |
| 580 | ntlmv2 Use NTLMv2 password hashing |
| 581 | ntlmv2i Use NTLMv2 password hashing with packet signing |
Steve French | 189acaa | 2006-06-23 02:33:48 +0000 | [diff] [blame] | 582 | lanman (if configured in kernel config) use older |
| 583 | lanman hash |
Steve French | f6d0998 | 2008-01-08 23:18:22 +0000 | [diff] [blame] | 584 | hard Retry file operations if server is not responding |
| 585 | soft Limit retries to unresponsive servers (usually only |
| 586 | one retry) before returning an error. (default) |
Steve French | bf82067 | 2005-12-01 22:32:42 -0800 | [diff] [blame] | 587 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 588 | The mount.cifs mount helper also accepts a few mount options before -o |
| 589 | including: |
| 590 | |
| 591 | -S take password from stdin (equivalent to setting the environment |
| 592 | variable "PASSWD_FD=0" |
| 593 | -V print mount.cifs version |
| 594 | -? display simple usage information |
| 595 | |
Jeff Layton | 8426c39 | 2007-05-05 03:27:49 +0000 | [diff] [blame] | 596 | With most 2.6 kernel versions of modutils, the version of the cifs kernel |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 597 | module can be displayed via modinfo. |
| 598 | |
| 599 | Misc /proc/fs/cifs Flags and Debug Info |
| 600 | ======================================= |
| 601 | Informational pseudo-files: |
Suresh Jayaraman | 95c9990 | 2010-07-30 18:01:17 +0530 | [diff] [blame] | 602 | DebugData Displays information about active CIFS sessions and |
| 603 | shares, features enabled as well as the cifs.ko |
| 604 | version. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 605 | Stats Lists summary resource usage information as well as per |
Steve French | 3de5e97 | 2018-08-01 01:13:55 -0500 | [diff] [blame] | 606 | share statistics. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 607 | |
| 608 | Configuration pseudo-files: |
Steve French | 254e55e | 2006-06-04 05:53:15 +0000 | [diff] [blame] | 609 | SecurityFlags Flags which control security negotiation and |
| 610 | also packet signing. Authentication (may/must) |
| 611 | flags (e.g. for NTLM and/or NTLMv2) may be combined with |
| 612 | the signing flags. Specifying two different password |
| 613 | hashing mechanisms (as "must use") on the other hand |
| 614 | does not make much sense. Default flags are |
| 615 | 0x07007 |
Steve French | 2e65502 | 2008-08-28 15:30:06 +0000 | [diff] [blame] | 616 | (NTLM, NTLMv2 and packet signing allowed). The maximum |
Steve French | 254e55e | 2006-06-04 05:53:15 +0000 | [diff] [blame] | 617 | allowable flags if you want to allow mounts to servers |
| 618 | using weaker password hashes is 0x37037 (lanman, |
Steve French | 2e65502 | 2008-08-28 15:30:06 +0000 | [diff] [blame] | 619 | plaintext, ntlm, ntlmv2, signing allowed). Some |
| 620 | SecurityFlags require the corresponding menuconfig |
| 621 | options to be enabled (lanman and plaintext require |
| 622 | CONFIG_CIFS_WEAK_PW_HASH for example). Enabling |
| 623 | plaintext authentication currently requires also |
| 624 | enabling lanman authentication in the security flags |
| 625 | because the cifs module only supports sending |
| 626 | laintext passwords using the older lanman dialect |
| 627 | form of the session setup SMB. (e.g. for authentication |
| 628 | using plain text passwords, set the SecurityFlags |
| 629 | to 0x30030): |
Steve French | 254e55e | 2006-06-04 05:53:15 +0000 | [diff] [blame] | 630 | |
| 631 | may use packet signing 0x00001 |
| 632 | must use packet signing 0x01001 |
| 633 | may use NTLM (most common password hash) 0x00002 |
| 634 | must use NTLM 0x02002 |
| 635 | may use NTLMv2 0x00004 |
| 636 | must use NTLMv2 0x04004 |
Steve French | f6d0998 | 2008-01-08 23:18:22 +0000 | [diff] [blame] | 637 | may use Kerberos security 0x00008 |
| 638 | must use Kerberos 0x08008 |
Steve French | 254e55e | 2006-06-04 05:53:15 +0000 | [diff] [blame] | 639 | may use lanman (weak) password hash 0x00010 |
| 640 | must use lanman password hash 0x10010 |
| 641 | may use plaintext passwords 0x00020 |
| 642 | must use plaintext passwords 0x20020 |
| 643 | (reserved for future packet encryption) 0x00040 |
| 644 | |
Jeff Layton | 8426c39 | 2007-05-05 03:27:49 +0000 | [diff] [blame] | 645 | cifsFYI If set to non-zero value, additional debug information |
| 646 | will be logged to the system error log. This field |
| 647 | contains three flags controlling different classes of |
| 648 | debugging entries. The maximum value it can be set |
| 649 | to is 7 which enables all debugging points (default 0). |
| 650 | Some debugging statements are not compiled into the |
| 651 | cifs kernel unless CONFIG_CIFS_DEBUG2 is enabled in the |
| 652 | kernel configuration. cifsFYI may be set to one or |
| 653 | nore of the following flags (7 sets them all): |
| 654 | |
| 655 | log cifs informational messages 0x01 |
| 656 | log return codes from cifs entry points 0x02 |
Steve French | 0ec54aa | 2007-05-05 22:08:06 +0000 | [diff] [blame] | 657 | log slow responses (ie which take longer than 1 second) |
| 658 | CONFIG_CIFS_STATS2 must be enabled in .config 0x04 |
Jeff Layton | 8426c39 | 2007-05-05 03:27:49 +0000 | [diff] [blame] | 659 | |
| 660 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 661 | traceSMB If set to one, debug information is logged to the |
| 662 | system error log with the start of smb requests |
| 663 | and responses (default 0) |
| 664 | LookupCacheEnable If set to one, inode information is kept cached |
| 665 | for one second improving performance of lookups |
| 666 | (default 1) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 667 | LinuxExtensionsEnabled If set to one then the client will attempt to |
| 668 | use the CIFS "UNIX" extensions which are optional |
| 669 | protocol enhancements that allow CIFS servers |
| 670 | to return accurate UID/GID information as well |
| 671 | as support symbolic links. If you use servers |
| 672 | such as Samba that support the CIFS Unix |
| 673 | extensions but do not want to use symbolic link |
| 674 | support and want to map the uid and gid fields |
| 675 | to values supplied at mount (rather than the |
| 676 | actual values, then set this to zero. (default 1) |
| 677 | |
| 678 | These experimental features and tracing can be enabled by changing flags in |
| 679 | /proc/fs/cifs (after the cifs module has been installed or built into the |
| 680 | kernel, e.g. insmod cifs). To enable a feature set it to 1 e.g. to enable |
| 681 | tracing to the kernel message log type: |
| 682 | |
Steve French | 1047abc | 2005-10-11 19:58:06 -0700 | [diff] [blame] | 683 | echo 7 > /proc/fs/cifs/cifsFYI |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 684 | |
Steve French | 1047abc | 2005-10-11 19:58:06 -0700 | [diff] [blame] | 685 | cifsFYI functions as a bit mask. Setting it to 1 enables additional kernel |
| 686 | logging of various informational messages. 2 enables logging of non-zero |
| 687 | SMB return codes while 4 enables logging of requests that take longer |
| 688 | than one second to complete (except for byte range lock requests). |
Steve French | 3de5e97 | 2018-08-01 01:13:55 -0500 | [diff] [blame] | 689 | Setting it to 4 requires CONFIG_CIFS_STATS2 to be set in kernel configuration |
| 690 | (.config). Setting it to seven enables all three. Finally, tracing |
Steve French | 1047abc | 2005-10-11 19:58:06 -0700 | [diff] [blame] | 691 | the start of smb requests and responses can be enabled via: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 692 | |
| 693 | echo 1 > /proc/fs/cifs/traceSMB |
| 694 | |
Steve French | 3de5e97 | 2018-08-01 01:13:55 -0500 | [diff] [blame] | 695 | Per share (per client mount) statistics are available in /proc/fs/cifs/Stats. |
| 696 | Additional information is available if CONFIG_CIFS_STATS2 is enabled in the |
| 697 | kernel configuration (.config). The statistics returned include counters which |
| 698 | represent the number of attempted and failed (ie non-zero return code from the |
| 699 | server) SMB3 (or cifs) requests grouped by request type (read, write, close etc.). |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 700 | Also recorded is the total bytes read and bytes written to the server for |
| 701 | that share. Note that due to client caching effects this can be less than the |
| 702 | number of bytes read and written by the application running on the client. |
Steve French | 3de5e97 | 2018-08-01 01:13:55 -0500 | [diff] [blame] | 703 | Statistics can be reset to zero by "echo 0 > /proc/fs/cifs/Stats" which may be |
| 704 | useful if comparing performance of two different scenarios. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 705 | |
Steve French | 3d2af34 | 2008-08-19 20:51:09 +0000 | [diff] [blame] | 706 | Also note that "cat /proc/fs/cifs/DebugData" will display information about |
Jeff Layton | cea2180 | 2007-11-20 23:19:03 +0000 | [diff] [blame] | 707 | the active sessions and the shares that are mounted. |
Steve French | 3d2af34 | 2008-08-19 20:51:09 +0000 | [diff] [blame] | 708 | |
| 709 | Enabling Kerberos (extended security) works but requires version 1.2 or later |
| 710 | of the helper program cifs.upcall to be present and to be configured in the |
| 711 | /etc/request-key.conf file. The cifs.upcall helper program is from the Samba |
| 712 | project(http://www.samba.org). NTLM and NTLMv2 and LANMAN support do not |
| 713 | require this helper. Note that NTLMv2 security (which does not require the |
| 714 | cifs.upcall helper program), instead of using Kerberos, is sufficient for |
| 715 | some use cases. |
| 716 | |
Steve French | be65244 | 2009-02-23 15:21:59 +0000 | [diff] [blame] | 717 | DFS support allows transparent redirection to shares in an MS-DFS name space. |
| 718 | In addition, DFS support for target shares which are specified as UNC |
Steve French | 3d2af34 | 2008-08-19 20:51:09 +0000 | [diff] [blame] | 719 | names which begin with host names (rather than IP addresses) requires |
| 720 | a user space helper (such as cifs.upcall) to be present in order to |
| 721 | translate host names to ip address, and the user space helper must also |
Steve French | be65244 | 2009-02-23 15:21:59 +0000 | [diff] [blame] | 722 | be configured in the file /etc/request-key.conf. Samba, Windows servers and |
| 723 | many NAS appliances support DFS as a way of constructing a global name |
| 724 | space to ease network configuration and improve reliability. |
Steve French | 3d2af34 | 2008-08-19 20:51:09 +0000 | [diff] [blame] | 725 | |
| 726 | To use cifs Kerberos and DFS support, the Linux keyutils package should be |
| 727 | installed and something like the following lines should be added to the |
| 728 | /etc/request-key.conf file: |
| 729 | |
| 730 | create cifs.spnego * * /usr/local/sbin/cifs.upcall %k |
| 731 | create dns_resolver * * /usr/local/sbin/cifs.upcall %k |
| 732 | |
Suresh Jayaraman | c9c4708 | 2011-10-12 11:52:01 +0530 | [diff] [blame] | 733 | CIFS kernel module parameters |
| 734 | ============================= |
| 735 | These module parameters can be specified or modified either during the time of |
| 736 | module loading or during the runtime by using the interface |
| 737 | /proc/module/cifs/parameters/<param> |
| 738 | |
Steve French | 20c3a20 | 2011-10-12 20:17:55 -0500 | [diff] [blame] | 739 | i.e. echo "value" > /sys/module/cifs/parameters/<param> |
Suresh Jayaraman | c9c4708 | 2011-10-12 11:52:01 +0530 | [diff] [blame] | 740 | |
Pavel Shilovsky | 6dae51a | 2012-02-21 16:50:23 +0300 | [diff] [blame] | 741 | 1. enable_oplocks - Enable or disable oplocks. Oplocks are enabled by default. |
Suresh Jayaraman | c9c4708 | 2011-10-12 11:52:01 +0530 | [diff] [blame] | 742 | [Y/y/1]. To disable use any of [N/n/0]. |
Steve French | 3d2af34 | 2008-08-19 20:51:09 +0000 | [diff] [blame] | 743 | |