diff mbox series

[v3] cifs: dump Security Type info in DebugData

Message ID 20200605151746.18743-1-kdsouza@redhat.com (mailing list archive)
State New, archived
Headers show
Series [v3] cifs: dump Security Type info in DebugData | expand

Commit Message

Kenneth Dsouza June 5, 2020, 3:17 p.m. UTC
Currently the end user is unaware with what sec type the
cifs share is mounted if no sec=<type> option is parsed.
With this patch one can easily check from DebugData.

Example:
1) Name: x.x.x.x Uses: 1 Capability: 0x8001f3fc Session Status: 1 Security type: RawNTLMSSP

Signed-off-by: Kenneth D'souza <kdsouza@redhat.com>
Signed-off-by: Roberto Bergantinos Corpas <rbergant@redhat.com>
---
 fs/cifs/cifs_debug.c |  4 ++++
 fs/cifs/cifsglob.h   | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+)

Comments

Steve French June 9, 2020, 5:01 a.m. UTC | #1
the updated version of this one has been merged into cifs-2.6.git for-next

On Fri, Jun 5, 2020 at 10:17 AM Kenneth D'souza <kdsouza@redhat.com> wrote:
>
> Currently the end user is unaware with what sec type the
> cifs share is mounted if no sec=<type> option is parsed.
> With this patch one can easily check from DebugData.
>
> Example:
> 1) Name: x.x.x.x Uses: 1 Capability: 0x8001f3fc Session Status: 1 Security type: RawNTLMSSP
>
> Signed-off-by: Kenneth D'souza <kdsouza@redhat.com>
> Signed-off-by: Roberto Bergantinos Corpas <rbergant@redhat.com>
> ---
>  fs/cifs/cifs_debug.c |  4 ++++
>  fs/cifs/cifsglob.h   | 18 ++++++++++++++++++
>  2 files changed, 22 insertions(+)
>
> diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
> index 916567d770f5..9caca784376b 100644
> --- a/fs/cifs/cifs_debug.c
> +++ b/fs/cifs/cifs_debug.c
> @@ -375,6 +375,10 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
>                                 ses->ses_count, ses->serverOS, ses->serverNOS,
>                                 ses->capabilities, ses->status);
>                         }
> +
> +                       seq_printf(m,"Security type: %s\n",
> +                                       get_security_type_str(server->ops->select_sectype(server, ses->sectype)));
> +
>                         if (server->rdma)
>                                 seq_printf(m, "RDMA\n\t");
>                         seq_printf(m, "TCP status: %d Instance: %d\n\tLocal Users To "
> diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
> index 39b708d9d86d..d8ef01039e71 100644
> --- a/fs/cifs/cifsglob.h
> +++ b/fs/cifs/cifsglob.h
> @@ -1994,6 +1994,24 @@ extern struct smb_version_values smb302_values;
>  extern struct smb_version_operations smb311_operations;
>  extern struct smb_version_values smb311_values;
>
> +static inline char *get_security_type_str(enum securityEnum sectype)
> +{
> +       switch (sectype) {
> +       case RawNTLMSSP:
> +               return "RawNTLMSSP";
> +       case Kerberos:
> +               return "Kerberos";
> +       case NTLMv2:
> +               return "NTLMv2";
> +       case NTLM:
> +               return "NTLM";
> +       case LANMAN:
> +               return "LANMAN";
> +       default:
> +               return "Unknown";
> +       }
> +}
> +
>  static inline bool is_smb1_server(struct TCP_Server_Info *server)
>  {
>         return strcmp(server->vals->version_string, SMB1_VERSION_STRING) == 0;
> --
> 2.21.1
>
Kenneth Dsouza June 9, 2020, 5:02 a.m. UTC | #2
Thanks Steve :)

On Tue, Jun 9, 2020 at 10:31 AM Steve French <smfrench@gmail.com> wrote:
>
> the updated version of this one has been merged into cifs-2.6.git for-next
>
> On Fri, Jun 5, 2020 at 10:17 AM Kenneth D'souza <kdsouza@redhat.com> wrote:
> >
> > Currently the end user is unaware with what sec type the
> > cifs share is mounted if no sec=<type> option is parsed.
> > With this patch one can easily check from DebugData.
> >
> > Example:
> > 1) Name: x.x.x.x Uses: 1 Capability: 0x8001f3fc Session Status: 1 Security type: RawNTLMSSP
> >
> > Signed-off-by: Kenneth D'souza <kdsouza@redhat.com>
> > Signed-off-by: Roberto Bergantinos Corpas <rbergant@redhat.com>
> > ---
> >  fs/cifs/cifs_debug.c |  4 ++++
> >  fs/cifs/cifsglob.h   | 18 ++++++++++++++++++
> >  2 files changed, 22 insertions(+)
> >
> > diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
> > index 916567d770f5..9caca784376b 100644
> > --- a/fs/cifs/cifs_debug.c
> > +++ b/fs/cifs/cifs_debug.c
> > @@ -375,6 +375,10 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
> >                                 ses->ses_count, ses->serverOS, ses->serverNOS,
> >                                 ses->capabilities, ses->status);
> >                         }
> > +
> > +                       seq_printf(m,"Security type: %s\n",
> > +                                       get_security_type_str(server->ops->select_sectype(server, ses->sectype)));
> > +
> >                         if (server->rdma)
> >                                 seq_printf(m, "RDMA\n\t");
> >                         seq_printf(m, "TCP status: %d Instance: %d\n\tLocal Users To "
> > diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
> > index 39b708d9d86d..d8ef01039e71 100644
> > --- a/fs/cifs/cifsglob.h
> > +++ b/fs/cifs/cifsglob.h
> > @@ -1994,6 +1994,24 @@ extern struct smb_version_values smb302_values;
> >  extern struct smb_version_operations smb311_operations;
> >  extern struct smb_version_values smb311_values;
> >
> > +static inline char *get_security_type_str(enum securityEnum sectype)
> > +{
> > +       switch (sectype) {
> > +       case RawNTLMSSP:
> > +               return "RawNTLMSSP";
> > +       case Kerberos:
> > +               return "Kerberos";
> > +       case NTLMv2:
> > +               return "NTLMv2";
> > +       case NTLM:
> > +               return "NTLM";
> > +       case LANMAN:
> > +               return "LANMAN";
> > +       default:
> > +               return "Unknown";
> > +       }
> > +}
> > +
> >  static inline bool is_smb1_server(struct TCP_Server_Info *server)
> >  {
> >         return strcmp(server->vals->version_string, SMB1_VERSION_STRING) == 0;
> > --
> > 2.21.1
> >
>
>
> --
> Thanks,
>
> Steve
>
diff mbox series

Patch

diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
index 916567d770f5..9caca784376b 100644
--- a/fs/cifs/cifs_debug.c
+++ b/fs/cifs/cifs_debug.c
@@ -375,6 +375,10 @@  static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
 				ses->ses_count, ses->serverOS, ses->serverNOS,
 				ses->capabilities, ses->status);
 			}
+
+			seq_printf(m,"Security type: %s\n",
+					get_security_type_str(server->ops->select_sectype(server, ses->sectype)));
+
 			if (server->rdma)
 				seq_printf(m, "RDMA\n\t");
 			seq_printf(m, "TCP status: %d Instance: %d\n\tLocal Users To "
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 39b708d9d86d..d8ef01039e71 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -1994,6 +1994,24 @@  extern struct smb_version_values smb302_values;
 extern struct smb_version_operations smb311_operations;
 extern struct smb_version_values smb311_values;
 
+static inline char *get_security_type_str(enum securityEnum sectype)
+{
+       switch (sectype) {
+       case RawNTLMSSP:
+               return "RawNTLMSSP";
+       case Kerberos:
+               return "Kerberos";
+       case NTLMv2:
+               return "NTLMv2";
+       case NTLM:
+               return "NTLM";
+       case LANMAN:
+               return "LANMAN";
+       default:
+               return "Unknown";
+       }
+}
+
 static inline bool is_smb1_server(struct TCP_Server_Info *server)
 {
 	return strcmp(server->vals->version_string, SMB1_VERSION_STRING) == 0;