[PATCH v2 00/12] cifscreds: cleanup and overhaul of cifscreds utility

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patchset is a cleanup and overhaul of the cifscreds utility that
lives in the cifs-utils tree today. Igor Druzhinin did a wonderful job
on this when he did the original code a couple of years ago, but I did a
rather poor job at the time of communicating what we actually need for
this tool to do. Mea culpa...

This patch is a second pass at morphing it into a tool that's more like
what we need. I believe with this, I'll be able to roll some kernel
patches that can use the stashed key for establishing sessions.

I've made a few changes since the last set:

- combine some of the earlier patches so it's a smaller set

- I've dropped the patch to make key_search use keyctl_search. I'd still
  like to do this differently, but for now it's not possible to do so
  and protect the key payload

The idea here is that we want to be able to allow users to stash their
NTLM credentials in the kernel, so that it's possible to establish a
session on the fly when that user walks into a multiuser mount.

To that end, there are a number of changes that I'm proposing:

- a number of structural cleanups that may make this code more amenable
  to conversion to a library later and that make it easier to maintain

- hang these off of the session keyring instead of the uid keyring. I
  believe this will make this more friendly for use in containers and
  may make it harder to compromise the user's password.

- instead of having the domain as an optional parameter, allow the user
  to specify it in lieu of the hostname. During session setup, the kernel can
  first look for a host-specific key, and then fall back to looking for
  one that matches the domain if a host key isn't found.

There are still some things that need to be done to make this really
usable:

- a manpage

- kernel patches that can make these keys usable

Comments and suggestions welcome...

Jeff Layton (12):
  util: move getusername to util.c
  cifscreds: add unused attribute to argv parm in cifscreds_clearall
  cifscreds: eliminate domain parm from most functions
  cifscreds: remove user parameter from create_description
  cifscreds: make username part of value instead of description
  cifscreds: make usage use "return" and have callers return
  cifscreds: move option parsing into main()
  cifscreds: make username parameter optional
  cifscreds: add --domain flag
  cifscreds: loosen allowed characters in domain names
  cifscreds: use the session keyring
  cifscreds: further restrict permissions on keys

 cifscreds.c  |  257 +++++++++++++++++++++++++++++-----------------------------
 mount.cifs.c |   11 ---
 util.c       |   13 +++
 util.h       |    1 +
 4 files changed, 141 insertions(+), 141 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux