Commit 34c044fa authored by Steve French's avatar Steve French Committed by Steve French

[CIFS] Update readme and todo lists for cifs vfs

Signed-off-by: Steve French (sfrench@us.ibm.com)
parent d61981d1
...@@ -31,7 +31,7 @@ the cifs download to your kernel build directory e.g. ...@@ -31,7 +31,7 @@ the cifs download to your kernel build directory e.g.
5) make dep 5) make dep
6) make modules (or "make" if CIFS VFS not to be built as a module) 6) make modules (or "make" if CIFS VFS not to be built as a module)
For Linux 2.5: For Linux 2.6:
1) Download the kernel (e.g. from http://www.kernel.org or from bitkeeper 1) Download the kernel (e.g. from http://www.kernel.org or from bitkeeper
at bk://linux.bkbits.net/linux-2.5) and change directory into the top at bk://linux.bkbits.net/linux-2.5) and change directory into the top
of the kernel directory tree (e.g. /usr/src/linux-2.5.73) of the kernel directory tree (e.g. /usr/src/linux-2.5.73)
...@@ -56,7 +56,7 @@ the CIFS VFS web site) copy it to the same directory in which mount.smbfs and ...@@ -56,7 +56,7 @@ the CIFS VFS web site) copy it to the same directory in which mount.smbfs and
similar files reside (usually /sbin). Although the helper software is not similar files reside (usually /sbin). Although the helper software is not
required, mount.cifs is recommended. Eventually the Samba 3.0 utility program required, mount.cifs is recommended. Eventually the Samba 3.0 utility program
"net" may also be helpful since it may someday provide easier mount syntax for "net" may also be helpful since it may someday provide easier mount syntax for
users who are used to Windows e.g. net use <mount point> <UNC name or cifs URL> users who are used to Windows e.g. net use <mount point> <UNC name or cifs URL>
Note that running the Winbind pam/nss module (logon service) on all of your Note that running the Winbind pam/nss module (logon service) on all of your
Linux clients is useful in mapping Uids and Gids consistently across the Linux clients is useful in mapping Uids and Gids consistently across the
domain to the proper network user. The mount.cifs mount helper can be domain to the proper network user. The mount.cifs mount helper can be
...@@ -64,6 +64,17 @@ trivially built from Samba 3.0 or later source e.g. by executing: ...@@ -64,6 +64,17 @@ trivially built from Samba 3.0 or later source e.g. by executing:
gcc samba/source/client/mount.cifs.c -o mount.cifs gcc samba/source/client/mount.cifs.c -o mount.cifs
Allowing User Mounts
====================
To permit users to mount and unmount over directories they own is possible
with the cifs vfs. A way to enable such mounting is to mark the mount.cifs
utility as suid (e.g. "chmod +s /sbin/mount/cifs). To enable users to
umount shares they mount requires
1) mount.cifs version 1.4 or later
2) an entry for the share in /etc/fstab indicating that a user may
unmount it e.g.
//server/usersharename /mnt/username cifs user 0 0
Note that when the mount.cifs utility is run suid (allowing user mounts), Note that when the mount.cifs utility is run suid (allowing user mounts),
in order to reduce risks, the "nosuid" mount flag is passed in on mount to in order to reduce risks, the "nosuid" mount flag is passed in on mount to
disallow execution of an suid program mounted on the remote target. disallow execution of an suid program mounted on the remote target.
...@@ -99,21 +110,27 @@ Linux: ...@@ -99,21 +110,27 @@ Linux:
delete readonly = yes delete readonly = yes
ea support = yes ea support = yes
Note that ea support is required for supporting Linux xattrs. Note that server ea support is required for supporting xattrs from the Linux
Some administrators also change the "map archive" and the "create mask" cifs client, and that EA support is present in later versions of Samba (e.g.
parameters from their default values. Creating special devices (mknod) 3.0.6 and later (also EA support works in all versions of Windows, at least to
shares on NTFS filesystems). Extended Attribute (xattr) support is an optional
feature of most Linux filesystems which may require enabling via
make menuconfig
Some administrators may want to change Samba's smb.conf "map archive" and
"create mask" parameters from the default. Creating special devices (mknod)
remotely may require specifying a mkdev function to Samba if you are not using remotely may require specifying a mkdev function to Samba if you are not using
Samba 3.0.5 or later. For more information on these see the manual pages Samba 3.0.6 or later. For more information on these see the manual pages
("man smb.conf") on the Samba server system. Note that the cifs vfs, ("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 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). (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 open files (required for strict POSIX compliance). Windows Servers already
supported this feature. Samba server does not allow symlinks that refer to files 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 outside of the share, so in Samba versions prior to 3.0.6, most symlinks to
files with absolute paths (ie beginning with slash) such as: files with absolute paths (ie beginning with slash) such as:
ln -s /mnt/foo bar ln -s /mnt/foo bar
would be forbidden. Samba 3.0.5 server or later includes the ability to create would be forbidden. Samba 3.0.6 server or later includes the ability to create
such symlinks safely by converting unsafe symlinks (ie symlinks to server 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 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 that is ignored by local server applications and non-cifs clients and that will
...@@ -148,6 +165,12 @@ of the standard mount options "noexec" and "nosuid" to reduce the risk of ...@@ -148,6 +165,12 @@ of the standard mount options "noexec" and "nosuid" to reduce the risk of
running an altered binary on your local system (downloaded from a hostile server running an altered binary on your local system (downloaded from a hostile server
or altered by a hostile router). or altered by a hostile router).
Although mounting using format corresponding to the CIFS URL specification is
not possible in mount.cifs yet, it is possible to use an alternate format
for the server and sharename (which is somewhat similar to NFS style mount
syntax) instead of the more widely used UNC format (i.e. \\server\share):
mount -t cifs tcp_name_of_server:share_name /mnt -o user=myname,pass=mypasswd
When using the mount helper mount.cifs, passwords may be specified via alternate When using the mount helper mount.cifs, passwords may be specified via alternate
mechanisms, instead of specifying it after -o using the normal "pass=" syntax mechanisms, instead of specifying it after -o using the normal "pass=" syntax
on the command line: on the command line:
...@@ -351,13 +374,11 @@ and for more extensive tracing including the start of smb requests and responses ...@@ -351,13 +374,11 @@ and for more extensive tracing including the start of smb requests and responses
echo 1 > /proc/fs/cifs/traceSMB echo 1 > /proc/fs/cifs/traceSMB
Three other experimental features are under development and to test Two other experimental features are under development and to test
require enabling an ifdef (e.g. by adding "#define CIFS_FCNTL" in cifsglob.h) require enabling an ifdef (e.g. by adding "#define CIFS_FCNTL" in cifsglob.h)
CONFIG_CIFS_QUOTA CONFIG_CIFS_QUOTA
CONFIG_CIFS_XATTR
CONFIG_CIFS_FCNTL (fcntl needed for support of directory change CONFIG_CIFS_FCNTL (fcntl needed for support of directory change
notification and perhaps later for file leases) notification and perhaps later for file leases)
......
version 1.16 May 27, 2004 version 1.22 July 30, 2004
A Partial List of Missing Features A Partial List of Missing Features
================================== ==================================
...@@ -10,7 +10,8 @@ is a partial list of the known problems and missing features: ...@@ -10,7 +10,8 @@ is a partial list of the known problems and missing features:
a) Support for SecurityDescriptors for chmod/chgrp/chown so a) Support for SecurityDescriptors for chmod/chgrp/chown so
these can be supported for Windows servers these can be supported for Windows servers
b) Better pam/winbind integration b) Better pam/winbind integration (e.g. to handle uid mapping
better)
c) multi-user mounts - multiplexed sessionsetups over single vc c) multi-user mounts - multiplexed sessionsetups over single vc
(ie tcp session) - prettying up needed (ie tcp session) - prettying up needed
...@@ -32,42 +33,37 @@ style byte range lock differences ...@@ -32,42 +33,37 @@ style byte range lock differences
h) quota support h) quota support
i) support for the Linux 2.5 kernel new feature get_xattr and set_xattr j) finish writepages support (multi-page write behind for improved
which will allow us to expose dos attributes as well as real
ACLs. This support has been started in the current code, but is
ifdeffed out.
k) finish writepages support (multi-page write behind for improved
performance) and syncpage performance) and syncpage
l) hook lower into the sockets api (as NFS/SunRPC does) to avoid the k) hook lower into the sockets api (as NFS/SunRPC does) to avoid the
extra copy in/out of the socket buffers in some cases. extra copy in/out of the socket buffers in some cases.
m) finish support for IPv6. This is mostly complete but l) finish support for IPv6. This is mostly complete but
needs a simple inet_pton like function to convert ipv6 needs a simple inet_pton like function to convert ipv6
addresses in string representation. addresses in string representation.
o) Better optimize open (and pathbased setfilesize) to reduce the m) Better optimize open (and pathbased setfilesize) to reduce the
oplock breaks coming from windows srv. Piggyback identical file oplock breaks coming from windows srv. Piggyback identical file
opens on top of each other by incrementing reference count rather opens on top of each other by incrementing reference count rather
than resending (helps reduce server resource utilization and avoid than resending (helps reduce server resource utilization and avoid
spurious oplock breaks). spurious oplock breaks).
p) Improve performance of readpages by sending more than one read o) Improve performance of readpages by sending more than one read
at a time when 8 pages or more are requested. Evaluate whether at a time when 8 pages or more are requested. Evaluate whether
reads larger than 16K would be helpful. reads larger than 16K would be helpful.
q) For support of Windows9x/98 we need to retry failed mounts p) For support of Windows9x/98 we need to retry failed mounts
to *SMBSERVER (default server name) with the uppercase hostname to *SMBSERVER (default server name) with the uppercase hostname
in the RFC1001 session_init request. in the RFC1001 session_init request.
r) Add Extended Attributed support (for storing UID/GID info q) Add support for storing symlink and fifo info to Windows servers
to Windows servers) in the Extended Attribute format their SFU clients would recognize.
s) Finish fcntl D_NOTIFY support so kde and gnome file list windows r) Finish fcntl D_NOTIFY support so kde and gnome file list windows
will autorefresh will autorefresh
t) Add GUI tool to configure /proc/fs/cifs settings and for display of s) Add GUI tool to configure /proc/fs/cifs settings and for display of
the CIFS statistics the CIFS statistics
KNOWN BUGS (updated May 27, 2004) KNOWN BUGS (updated May 27, 2004)
...@@ -87,11 +83,14 @@ Samba (may be unmappable due to POSIX to Windows lock model ...@@ -87,11 +83,14 @@ Samba (may be unmappable due to POSIX to Windows lock model
differences but worth investigating). Also debug Samba to differences but worth investigating). Also debug Samba to
see why lock test case 7 takes longer to complete to Samba see why lock test case 7 takes longer to complete to Samba
than to Windows. than to Windows.
5) implement search rewind (seeking backward in a readdir), which is
necessary for one of the "special" subsection of posix file API
tests in the Connectathon nfs test suite.
Misc testing to do Misc testing to do
================== ==================
1) check out max path names and max path name components against various server 1) check out max path names and max path name components against various server
types. Try nested symlinks. Return max path name in stat -f information types. Try nested symlinks (8 deep). Return max path name in stat -f information
2) Modify file portion of ltp so it can run against a mounted network 2) Modify file portion of ltp so it can run against a mounted network
share and run it against cifs vfs. share and run it against cifs vfs.
...@@ -102,5 +101,6 @@ and when signing is disabled to request larger read sizes (larger than ...@@ -102,5 +101,6 @@ and when signing is disabled to request larger read sizes (larger than
negotiated size) and send larger write sizes to modern servers. negotiated size) and send larger write sizes to modern servers.
4) More exhaustively test the recently added NT4 support against various 4) More exhaustively test the recently added NT4 support against various
NT4 service pack levels. NT4 service pack levels, and fix cifs_setattr for setting file times and
size to fall back to level 1 when error invalid level returned.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment