patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / fs / cifs / README
index 926cd00..09b49c8 100644 (file)
@@ -97,16 +97,30 @@ Linux:
 
        case sensitive = yes
        delete readonly = yes 
+       ea support = yes
+
+Note that ea support is required for supporting Linux xattrs. 
 Some administrators also change the "map archive" and the "create mask" 
 parameters from their default values.  Creating special devices (mknod) remotely 
 may require specifying a mkdev function to Samba.  For more information on these 
 see the manual pages ("man smb.conf") on the Samba server system.  Note that the 
 cifs vfs, unlike the smbfs vfs, does not read the smb.conf on the client system 
 (the few optional settings are passed in on mount via -o parameters instead).  
-Note that Samba 2.2.7 or later includes a fix that allows the CIFS VFS to delete 
+Note that Samba 2.2.7 or later includes a fix that allows the CIFS VFS to delete
 open files (required for strict POSIX compliance).  Windows Servers already 
-supported this feature.  
+supported this feature. Samba server does not allow symlinks that refer to files
+outside of the share, so in Samba versions prior to 3.0.5, most symlinks to
+files with absolute paths (ie beginning with slash) such as:
+        ln -s /mnt/foo bar
+would be forbidden. Samba 3.0.5 server or later includes the ability to create 
+such symlinks safely by converting unsafe symlinks (ie symlinks to server 
+files that are outside of the share) to a samba specific format on the server
+that is ignored by local server applications and non-cifs clients and that will
+not be traversed by the Samba server).  This is opaque to the Linux client
+application using the cifs vfs. Absolute symlinks will work to Samba 3.0.5 or
+later, but only for remote clients using the CIFS Unix extensions, and will
+be invisbile to Windows clients and typically will not affect local
+applications running on the same server as Samba.  
 
 Use instructions:
 ================
@@ -142,6 +156,8 @@ of the mount options. Credential files contain two lines
         password=your_password
 2) By specifying the password in the PASSWD environment variable (similarly
 the user name can be taken from the USER environment variable).
+3) By specifying the password in a file by name via PASSWD_FILE
+4) By specifying the password in a file by file descriptor via PASSWD_FD
 
 If no password is provided, mount.cifs will prompt for password entry
 
@@ -166,8 +182,28 @@ A partial list of the supported mount options follows:
                mount.  
   domain       Set the SMB/CIFS workgroup name prepended to the
                username during CIFS session establishment
-  uid           If CIFS Unix extensions are not supported by the server
-                this overrides the default uid for inodes.
+  uid          If CIFS Unix extensions are not supported by the server
+               this overrides the default uid for inodes. For mounts to
+               servers which do support the CIFS Unix extensions, such
+               as a properly configured Samba server, the server provides
+               the uid, gid and mode.  For servers which do not support
+               the Unix extensions, the default uid (and gid) returned on
+               lookup of existing files is the uid (gid) of the person
+               who executed the mount (root, except when mount.cifs
+               is configured setuid for user mounts) unless the "uid=" 
+               (gid) mount option is specified.  For the uid (gid) of newly
+               created files and directories, ie files created since 
+               the last mount of the server share, the expected uid 
+               (gid) is cached as as long as the inode remains in 
+               memory on the client.   Also note that permission
+               checks (authorization checks) on accesses to a file occur
+               at the server, but there are cases in which an administrator
+               may want to restrict at the client as well.  For those
+               servers which do not report a uid/gid owner
+               (such as Windows), permissions can also be checked at the
+               client, and a crude form of client side permission checking 
+               can be enabled by specifying file_mode and dir_mode on 
+               the client
   gid          If CIFS Unix extensions are not supported by the server
                this overrides the default gid for inodes.
   file_mode     If CIFS Unix extensions are not supported by the server
@@ -219,13 +255,27 @@ A partial list of the supported mount options follows:
                if guest is specified on the mount options.  If no
                password is specified a null password will be used.
 
+The mount.cifs mount helper also accepts a few mount options before -o
+including:
+
+       -S      take password from stdin (equivalent to setting the environment
+               variable "PASSWD_FD=0"
+       -V      print mount.cifs version
+       -?      display simple usage information
+
+With recent 2.6 kernel versions of modutils, the version of the cifs kernel
+module can be displayed via modinfo.
+
 Misc /proc/fs/cifs Flags and Debug Info
 =======================================
 Informational pseudo-files:
 DebugData              Displays information about active CIFS sessions
+                       and shares.
 SimultaneousOps                Counter which holds maximum number of
                        simultaneous outstanding SMB/CIFS requests.
-Stats                  Lists summary resource usage information
+Stats                  Lists summary resource usage information as well as per
+                       share statistics, if CONFIG_CIFS_STATS in enabled
+                       in the kernel configuration.
 
 Configuration pseudo-files:
 MultiuserMount         If set to one, more than one CIFS session to 
@@ -279,13 +329,25 @@ and for more extensive tracing including the start of smb requests and responses
 Three other experimental features are under development and to test 
 require enabling an ifdef (e.g. by  adding "#define CIFS_FCNTL" in cifsglob.h)
 
-       CIFS_QUOTA
+       CONFIG_CIFS_QUOTA
+
+       CONFIG_CIFS_XATTR
 
-       CIFS_XATTR
+       CONFIG_CIFS_FCNTL  (fcntl needed for support of directory change 
+                           notification and perhaps later for file leases)
 
-       CIFS_FCNTL  (fcntl needed for support of directory change notification)
+Per share (per client mount) statistics are available in /proc/fs/cifs/DebugData
+if the kernel was configured with cifs statistics enabled.  The statistics
+represent the number of successful (ie non-zero return code from the server) 
+SMB responses to some of the more common commands (open, delete, mkdir etc.).
+Also recorded is the total bytes read and bytes written to the server for
+that share.  Note that due to client caching effects this can be less than the
+number of bytes read and written by the application running on the client.
+The statistics for the number of total SMBs and oplock breaks are different in
+that they represent all for that share, not just those for which the server
+returned success.
        
-Also note that "cat /proc/fs/cifs/DebugData" will display some information about 
+Also note that "cat /proc/fs/cifs/DebugData" will display information about 
 the active sessions and the shares that are mounted.  Note: NTLMv2 enablement 
 will not work since they its implementation is not quite complete yet.
 Do not alter these configuration values unless you are doing specific testing.