LinuxCommandLibrary

cifs.upcall

Authenticate CIFS/SMB requests using user-space helpers

SYNOPSIS

cifs.upcall [-v] [-t timeout]

PARAMETERS

-v, --verbose
    Enable verbose logging for debugging upcalls.

-t, --timeout=<NUM>
    Set operation timeout in seconds (default: 30).

--help
    Display help summary and exit.

--version
    Print version information and exit.

DESCRIPTION

cifs.upcall is a setuid-root userspace helper program for the Linux CIFS (SMB) filesystem. It processes kernel upcalls via the request-key mechanism for operations the kernel cannot handle directly, such as DNS resolution of mount hostnames and retrieval of Kerberos v5 tickets.

During CIFS mount or access, the kernel invokes cifs.upcall to:
• Resolve UNC hostnames (e.g., //server/share) to IP addresses using dns_resolve key type.
• Obtain Kerberos integrity tokens via krb5i key type from keytabs or keyring.

It requires privileges to read /etc/krb5.keytab and perform network lookups. Installed via cifs-utils package, it is configured in /etc/request-key.d/. Direct user invocation is rare; errors like "cifs.upcall: upcall failed" signal config issues. Supports IPv4/IPv6 and timeout handling for reliability in enterprise environments.

CAVEATS

Must be SUID root (/sbin/cifs.upcall); direct use uncommon, relies on request-key.conf. Fails without keyutils or DNS. Not for ID mapping (use cifs.idmapupcall).

SUPPORTED OPERATIONS

dns_resolve: Resolves hostname to IPs.
krb5i: Fetches Kerberos tokens from keyring/keytab.

CONFIGURATION

Enabled via /etc/request-key.d/cifs.utils.conf and /etc/request-key.conf entries like:
create dns_resolve * * /sbin/cifs.upcall %k

HISTORY

Introduced in cifs-utils 6.2 (2011) for Kerberos/DNS upcalls; enhanced in later versions for IPv6 and timeout support, tied to Linux kernel 3.0+ CIFS improvements.

SEE ALSO

request-key(8), mount.cifs(8), cifs(5), keyctl(1), cifscreds(1)

Copied to clipboard