Blame cifs.upcall.rst.in

Packit Service 09cdfc
===========
Packit Service 09cdfc
cifs.upcall
Packit Service 09cdfc
===========
Packit Service 09cdfc
Packit Service 09cdfc
--------------------------------------------------------------
Packit Service 09cdfc
Userspace upcall helper for Common Internet File System (CIFS)
Packit Service 09cdfc
--------------------------------------------------------------
Packit Service 09cdfc
:Manual section: 8
Packit Service 09cdfc
Packit Service 09cdfc
********
Packit Service 09cdfc
SYNOPSIS
Packit Service 09cdfc
********
Packit Service 09cdfc
Packit Service 664a73
  cifs.upcall [--trust-dns|-t] [--version|-v] [--legacy-uid|-l]
Packit Service 664a73
              [--krb5conf=/path/to/krb5.conf|-k /path/to/krb5.conf]
Packit Service 668d0d
              [--keytab=/path/to/keytab|-K /path/to/keytab] [--expire|-e nsecs] {keyid}
Packit Service 09cdfc
Packit Service 09cdfc
***********
Packit Service 09cdfc
DESCRIPTION
Packit Service 09cdfc
***********
Packit Service 09cdfc
Packit Service 09cdfc
This tool is part of the cifs-utils suite.
Packit Service 09cdfc
Packit Service 664a73
``cifs.upcall`` is a userspace helper program for the linux CIFS client
Packit Service 09cdfc
filesystem. There are a number of activities that the kernel cannot
Packit Service 09cdfc
easily do itself. This program is a callout program that does these
Packit Service 09cdfc
things for the kernel and then returns the result.
Packit Service 09cdfc
Packit Service 664a73
``cifs.upcall`` is generally intended to be run when the kernel calls
Packit Service 09cdfc
request-key(8) for a particular key type. While it can be run
Packit Service 09cdfc
directly from the command-line, it's not generally intended to be run
Packit Service 09cdfc
that way.
Packit Service 09cdfc
Packit Service 09cdfc
*******
Packit Service 09cdfc
OPTIONS
Packit Service 09cdfc
*******
Packit Service 09cdfc
Packit Service 664a73
-c
Packit Service 664a73
  This option is deprecated and is currently ignored.
Packit Service 664a73
Packit Service 664a73
--no-env-probe|-E
Packit Service 664a73
  Normally, ``cifs.upcall`` will probe the environment variable space of
Packit Service 664a73
  the process that initiated the upcall in order to fetch the value of
Packit Service 664a73
  ``$KRB5CCNAME``. This can assist the program with finding credential
Packit Service 664a73
  caches in non-default locations. If this option is set, then the
Packit Service 664a73
  program won't do this and will rely on finding credcaches in the
Packit Service 664a73
  default locations specified in *krb5.conf*. Note that this is never
Packit Service 664a73
  performed when the uid is 0. The default credcache location is always
Packit Service 664a73
  used when the uid is 0, regardless of the environment variable setting
Packit Service 664a73
  in the process.
Packit Service 664a73
Packit Service 664a73
--krb5conf|-k=/path/to/krb5.conf
Packit Service 664a73
  This option allows administrators to set an alternate location for the
Packit Service 664a73
  *krb5.conf* file that ``cifs.upcall`` will use.
Packit Service 664a73
Packit Service 664a73
--keytab=|-K=/path/to/keytab
Packit Service 664a73
  This option allows administrators to specify a keytab file to be
Packit Service 664a73
  used. When a user has no credential cache already established,
Packit Service 664a73
  ``cifs.upcall`` will attempt to use this keytab to acquire them. The
Packit Service 664a73
  default is the system-wide keytab */etc/krb5.keytab*.
Packit Service 664a73
Packit Service 664a73
--trust-dns|-t
Packit Service 664a73
  With krb5 upcalls, the name used as the host portion of the service
Packit Service 664a73
  principal defaults to the hostname portion of the UNC. This option
Packit Service 664a73
  allows the upcall program to reverse resolve the network address of
Packit Service 664a73
  the server in order to get the hostname.
Packit Service 664a73
Packit Service 664a73
  This is less secure than not trusting DNS. When using this option,
Packit Service 664a73
  it's possible that an attacker could get control of DNS and trick the
Packit Service 664a73
  client into mounting a different server altogether. It's preferable to
Packit Service 664a73
  instead add server principals to the KDC for every possible hostname,
Packit Service 664a73
  but this option exists for cases where that isn't possible. The
Packit Service 664a73
  default is to not trust reverse hostname lookups in this fashion.
Packit Service 664a73
Packit Service 664a73
--legacy-uid|-l
Packit Service 664a73
  Traditionally, the kernel has sent only a single uid= parameter to the
Packit Service 664a73
  upcall for the SPNEGO upcall that's used to determine what user's
Packit Service 664a73
  credential cache to use.  This parameter is affected by the uid=
Packit Service 664a73
  mount option, which also governs the ownership of files on the mount.
Packit Service 664a73
Packit Service 664a73
  Newer kernels send a creduid= option as well, which contains what uid
Packit Service 664a73
  it thinks actually owns the credentials that it's looking for. At
Packit Service 664a73
  mount time, this is generally set to the real uid of the user doing
Packit Service 664a73
  the mount. For multisession mounts, it's set to the fsuid of the mount
Packit Service 664a73
  user. Set this option if you want cifs.upcall to use the older uid=
Packit Service 664a73
  parameter instead of the creduid= parameter.
Packit Service 664a73
Packit Service 668d0d
--expire|-e
Packit Service 668d0d
  Override default timeout value (600 seconds) for ``dns_resolver`` key.
Packit Service 668d0d
Packit Service 664a73
--version|-v
Packit Service 664a73
  Print version number and exit.
Packit Service 09cdfc
Packit Service 09cdfc
************************
Packit Service 09cdfc
CONFIGURATION FOR KEYCTL
Packit Service 09cdfc
************************
Packit Service 09cdfc
Packit Service 664a73
``cifs.upcall`` is designed to be called from the kernel via the
Packit Service 09cdfc
request-key callout program. This requires that request-key be told
Packit Service 664a73
where and how to call this program.  The current ``cifs.upcall``
Packit Service 09cdfc
program handles two different key types:
Packit Service 09cdfc
Packit Service 664a73
cifs.spnego
Packit Service 664a73
  This keytype is for retrieving kerberos session keys
Packit Service 664a73
Packit Service 664a73
dns_resolver
Packit Service 664a73
  This key type is for resolving hostnames into IP addresses. Support
Packit Service 664a73
  for this key type may eventually be deprecated (see below).
Packit Service 664a73
Packit Service 664a73
  To make this program useful for CIFS, you'll need to set up entries
Packit Service 664a73
  for them in request-key.conf(5). Here's an example of an entry for
Packit Service 664a73
  each key type::
Packit Service 09cdfc
Packit Service 09cdfc
      #OPERATION  TYPE           D C PROGRAM ARG1 ARG2...
Packit Service 09cdfc
      #=========  =============  = = ================================
Packit Service 09cdfc
      create      cifs.spnego    * * @sbindir@/cifs.upcall %k
Packit Service 09cdfc
      create      dns_resolver   * * @sbindir@/cifs.upcall %k
Packit Service 09cdfc
Packit Service 664a73
  See request-key.conf(5) for more info on each field.
Packit Service 09cdfc
Packit Service 664a73
  The keyutils package has also started including a dns_resolver
Packit Service 664a73
  handling program as well that is preferred over the one in
Packit Service 664a73
  ``cifs.upcall``. If you are using a keyutils version equal to or
Packit Service 664a73
  greater than 1.5, you should use ``key.dns_resolver`` to handle the
Packit Service 664a73
  ``dns_resolver`` keytype instead of ``cifs.upcall``. See
Packit Service 664a73
  key.dns_resolver(8) for more info.
Packit Service 09cdfc
Packit Service 09cdfc
********
Packit Service 09cdfc
SEE ALSO
Packit Service 09cdfc
********
Packit Service 09cdfc
Packit Service 09cdfc
request-key.conf(5), mount.cifs(8), key.dns_resolver(8)
Packit Service 09cdfc
Packit Service 09cdfc
******
Packit Service 09cdfc
AUTHOR
Packit Service 09cdfc
******
Packit Service 09cdfc
Packit Service 09cdfc
Igor Mammedov wrote the cifs.upcall program.
Packit Service 09cdfc
Packit Service 09cdfc
Jeff Layton authored this manpage.
Packit Service 09cdfc
Packit Service 09cdfc
The maintainer of the Linux CIFS VFS is Steve French.
Packit Service 09cdfc
Packit Service 09cdfc
The Linux CIFS Mailing list is the preferred place to ask questions
Packit Service 09cdfc
regarding these programs.