diff options
author | Jeff Layton <jlayton@redhat.com> | 2007-05-04 23:27:49 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-05-04 23:27:49 -0400 |
commit | 8426c39c1289765a11fc9b9523212ed368ceebd8 (patch) | |
tree | fc7cab82fafe76d11c77549ff16759ab86c88682 | |
parent | 796e5661f6b6be1600b3ab47c61ce61cf3e7a353 (diff) |
[CIFS] Make sec=none force an anonymous mount
We had a customer report that attempting to make CIFS mount with a null
username (i.e. doing an anonymous mount) doesn't work. Looking through the
code, it looks like CIFS expects a NULL username from userspace in order
to trigger an anonymous mount. The mount.cifs code doesn't seem to ever
pass a null username to the kernel, however.
It looks also like the kernel can take a sec=none option, but it only seems
to look at it if the username is already NULL. This seems redundant and
effectively makes sec=none useless.
The following patch makes sec=none force an anonymous mount.
Signed-off-by: Steve French <sfrench@us.ibm.com>
-rw-r--r-- | fs/cifs/CHANGES | 4 | ||||
-rw-r--r-- | fs/cifs/README | 20 | ||||
-rw-r--r-- | fs/cifs/connect.c | 8 |
3 files changed, 24 insertions, 8 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES index 62dcf6325861..a9b6bc5157b8 100644 --- a/fs/cifs/CHANGES +++ b/fs/cifs/CHANGES | |||
@@ -6,7 +6,9 @@ handle DNS host to ipv6 name translation). Accept override of uid or gid | |||
6 | on mount even when Unix Extensions are negotiated (it used to be ignored | 6 | on mount even when Unix Extensions are negotiated (it used to be ignored |
7 | when Unix Extensions were ignored). This allows users to override the | 7 | when Unix Extensions were ignored). This allows users to override the |
8 | default uid and gid for files when they are certain that the uids or | 8 | default uid and gid for files when they are certain that the uids or |
9 | gids on the server do not match those of the client. | 9 | gids on the server do not match those of the client. Make "sec=none" |
10 | mount override username (so that null user connection is attempted) | ||
11 | to match what documentation said. | ||
10 | 12 | ||
11 | Version 1.48 | 13 | Version 1.48 |
12 | ------------ | 14 | ------------ |
diff --git a/fs/cifs/README b/fs/cifs/README index 93fe3594274f..80fcfb82eafd 100644 --- a/fs/cifs/README +++ b/fs/cifs/README | |||
@@ -472,7 +472,7 @@ including: | |||
472 | -V print mount.cifs version | 472 | -V print mount.cifs version |
473 | -? display simple usage information | 473 | -? display simple usage information |
474 | 474 | ||
475 | With recent 2.6 kernel versions of modutils, the version of the cifs kernel | 475 | With most 2.6 kernel versions of modutils, the version of the cifs kernel |
476 | module can be displayed via modinfo. | 476 | module can be displayed via modinfo. |
477 | 477 | ||
478 | Misc /proc/fs/cifs Flags and Debug Info | 478 | Misc /proc/fs/cifs Flags and Debug Info |
@@ -521,8 +521,22 @@ SecurityFlags Flags which control security negotiation and | |||
521 | must use plaintext passwords 0x20020 | 521 | must use plaintext passwords 0x20020 |
522 | (reserved for future packet encryption) 0x00040 | 522 | (reserved for future packet encryption) 0x00040 |
523 | 523 | ||
524 | cifsFYI If set to one, additional debug information is | 524 | cifsFYI If set to non-zero value, additional debug information |
525 | logged to the system error log. (default 0) | 525 | will be logged to the system error log. This field |
526 | contains three flags controlling different classes of | ||
527 | debugging entries. The maximum value it can be set | ||
528 | to is 7 which enables all debugging points (default 0). | ||
529 | Some debugging statements are not compiled into the | ||
530 | cifs kernel unless CONFIG_CIFS_DEBUG2 is enabled in the | ||
531 | kernel configuration. cifsFYI may be set to one or | ||
532 | nore of the following flags (7 sets them all): | ||
533 | |||
534 | log cifs informational messages 0x01 | ||
535 | log return codes from cifs entry points 0x02 | ||
536 | log slow responses (ie which take longer than one second) | ||
537 | CONFIG_CIFS_STATS2 must be enabled in .config 0x03 | ||
538 | |||
539 | |||
526 | traceSMB If set to one, debug information is logged to the | 540 | traceSMB If set to one, debug information is logged to the |
527 | system error log with the start of smb requests | 541 | system error log with the start of smb requests |
528 | and responses (default 0) | 542 | and responses (default 0) |
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index cf40e245fcf4..216fb625843f 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -1721,12 +1721,12 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | |||
1721 | return -EINVAL; | 1721 | return -EINVAL; |
1722 | } | 1722 | } |
1723 | 1723 | ||
1724 | if (volume_info.username) { | 1724 | if (volume_info.nullauth) { |
1725 | cFYI(1,("null user")); | ||
1726 | volume_info.username = NULL; | ||
1727 | } else if (volume_info.username) { | ||
1725 | /* BB fixme parse for domain name here */ | 1728 | /* BB fixme parse for domain name here */ |
1726 | cFYI(1, ("Username: %s ", volume_info.username)); | 1729 | cFYI(1, ("Username: %s ", volume_info.username)); |
1727 | |||
1728 | } else if (volume_info.nullauth) { | ||
1729 | cFYI(1,("null user")); | ||
1730 | } else { | 1730 | } else { |
1731 | cifserror("No username specified"); | 1731 | cifserror("No username specified"); |
1732 | /* In userspace mount helper we can get user name from alternate | 1732 | /* In userspace mount helper we can get user name from alternate |