Blame cifs.upcall.rst.in

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