idmapd.conf(5)
β¨ NAME β¨
okay bestie, this is idmapd.conf(5) β the config file for libnfsidmap. It's giving "NFSv4 name mapping but make it a vibe." No cap.
π SYNOPSIS π
Configuration file for libnfsidmap. Used by idmapd and svcgssd to map NFSv4 name to and from ids.
Configuration file for libnfsidmap. Used by idmapd and svcgssd to map
NFSv4 name to and from ids.
π«Ά DESCRIPTION π«Ά
The idmapd.conf configuration files consists of several sections, initiated by strings of the form [General] and [Mapping]. Each section may contain lines of the form
variable = value
The recognized sections and their recognized variables are as follows:
πΈ [General] section variables πΈ
Verbosityβ Verbosity level of debugging (Default:0)Domainβ The local NFSv4 domain name. An NFSv4 domain is a namespace with a uniqueusername<->UIDandgroupname<->GIDmapping. (Default: Host's fully-qualified DNS domain name)No-Stripβ In multi-domain environments, some NFS servers will append the identity management domain to theownerandowner_groupin lieu of a true NFSv4 domain. This option can facilitate lookups in such environments. If set to a value other than"none", thensswitchplugin will first pass the name to the password/group lookup function without stripping the domain off. If that mapping fails then the plugin will try again using the old method (comparing the domain in the string to theDomainvalue, stripping it if it matches, and passing the resulting short name to the lookup function). Valid values are"user","group","both", and"none". (Default:"none")Reformat-Groupβ Winbind has a quirk whereby doing a group lookup in UPN format (e.g.staff@americas.example.com) will cause the group to be displayed prefixed with the full domain in uppercase (e.g.AMERICAS.EXAMPLE.COM\staff) instead of in the familiar netbios name format (e.g.AMERICAS\staff). Setting this option totruecauses the name to be reformatted before passing it to the group lookup function in order to work around this. This setting is ignored unlessNo-Stripis set to either"both"or"group". (Default:"false")Local-Realmsβ A comma-separated list of Kerberos realm names that may be considered equivalent to the local realm name. For example, usersjuser@ORDER.EDUandjuser@MAIL.ORDER.EDUmay be considered to be the same user in the specifiedDomain. (Default: the host's default realm name)
Note: If a value is specified here, the default local realm must be included as well.
π [Mapping] section variables π
Nobody-Userβ Local user name to be used when a mapping cannot be completed.Nobody-Groupβ Local group name to be used when a mapping cannot be completed.
π [Translation] section variables π
Methodβ A comma-separated, ordered list of mapping methods (plug-ins) to use when mapping between NFSv4 names and local IDs. Each specified method is tried in order until a mapping is found, or there are no more methods to try. The methods included in the default distribution include"nsswitch","umich_ldap", and"static". (Default:nsswitch)GSS-Methodsβ An optional comma-separated, ordered list of mapping methods (plug-ins) to use when mapping between GSS Authenticated names and local IDs. (Default: the same list as specified forMethod)
π¦ [Static] section variables π¦
The "static" translation method uses a static list of GSS-Authenticated names to local user names. Entries in the list are of the form:
principal@REALM = localusername
π [REGEX] section variables π
If the "regex" translation method is specified, the following variables within the [REGEX] section are used to map between NFS4 names and local IDs.
User-Regexβ Case-insensitive regular expression that extracts the local user name from an NFSv4 name. Multiple expressions may be concatenated with'|'. The first match will be used. There is no default. A basic regular expression for domainDOMAIN.ORGand realmMY.DOMAIN.ORGwould be:
^DOMAIN\([^@]+)@MY.DOMAIN.ORG$
Group-Regexβ Case-insensitive regular expression that extracts the local group name from an NFSv4 name. Multiple expressions may be concatenated with'|'. The first match will be used. There is no default. A basic regular expression for domainDOMAIN.ORGand realmMY.DOMAIN.ORGwould be:
^([^@]+)@DOMAIN.ORG@MY.DOMAIN.ORG$|^DOMAIN\([^@]+)@MY.DOMAIN.ORG$
Prepend-Before-Userβ Constant string to put before a local user name when building an NFSv4 name. Usually this is the short domain name followed by'Β΄. (Default: none)Append-After-Userβ Constant string to put after a local user name when building an NFSv4 name. Usually this is'@'followed by the default realm. (Default: none)Prepend-Before-Groupβ Constant string to put before a local group name when building an NFSv4 name. Usually not used. (Default: none)Append-After-Groupβ Constant string to put before a local group name when building an NFSv4 name. Usually this is'@'followed by the domain name followed by another'@'and the default realm. (Default: none)Group-Name-Prefixβ Constant string that is prepended to a local group name when converting it to an NFSv4 name. If an NFSv4 group name has this prefix it is removed when converting it to a local group name. With this group names of a central directory can be shortened for an isolated organizational unit if all groups have a common prefix. (Default: none)Group-Name-No-Prefix-Regexβ Case-insensitive regular expression to exclude groups from adding and removing the prefix set byGroup-Name-Prefix. The regular expression must match both the remote and local group names. Multiple expressions may be concatenated with'|'. (Default: none)
π₯ [UMICH_SCHEMA] section variables π₯
If the "umich_ldap" translation method is specified, the following variables within the [UMICH_SCHEMA] section are used.
LDAP_serverβ LDAP server name or address (Required if usingUMICH_LDAP)LDAP_baseβ Absolute LDAP search base. (Required if usingUMICH_LDAP)LDAP_people_baseβ Absolute LDAP search base for people accounts. (Default: TheLDAP_basevalue)LDAP_group_baseβ Absolute LDAP search base for group accounts. (Default: TheLDAP_basevalue)LDAP_canonicalize_nameβ Whether or not to perform name canonicalization on the name given asLDAP_server(Default:"true")LDAP_follow_referralsβ Whether or not to follow ldap referrals. (Default:"true")LDAP_use_sslβ Set to"true"to enable SSL communication with the LDAP server. (Default:"false")LDAP_ca_certβ Location of a trusted CA certificate used when SSL is enabled (Required ifLDAP_use_sslis true andLDAP_tls_reqcertis not set tonever)LDAP_tls_reqcertβ Controls the LDAP server certificate validation behavior. It can take the same values asldap.conf(5)'sTLS_REQCERTtunable. (Default:"hard")LDAP_timeout_secondsβ Number of seconds before timing out an LDAP request (Default:4)LDAP_sasl_mechβ SASL mechanism to be used for sasl authentication. Required if SASL auth is to be used (Default:None)LDAP_realmβ SASL realm to be used for sasl authentication. (Default:None)LDAP_sasl_authcidβ Authentication identity to be used for sasl authentication. (Default:None)LDAP_sasl_authzidβ Authorization identity to be used for sasl authentication. (Default:None)LDAP_sasl_secpropsβ Cyrus SASL security properties. It can take the same values asldap.conf(5)'ssasl_secprops.LDAP_sasl_canonicalizeβ Specifies whether the LDAP server hostname should be canonicalised. If set to yes LDAP lib will do a reverse hostname lookup. If this is not set the LDAP library's default will be used. (Default:None)LDAP_sasl_krb5_ccnameβ Path to kerberos credential cache. If it is not set then the value of environment variableKRB5CCNAMEwill be used. If the environment variable is not set then the default mechanism of kerberos library will be used.NFSv4_person_objectclassβ The object class name for people accounts in your local LDAP schema (Default:NFSv4RemotePerson)NFSv4_name_attrβ Your local schema's attribute name to be used for NFSv4 user names (Default:NFSv4Name)NFSv4_uid_attrβ Your local schema's attribute name to be used foruidNumber(Default:uidNumber)GSS_principal_attrβ Your local schema's attribute name for GSSAPI Principal names (Default:GSSAuthName)NFSv4_acctname_attrβ Your local schema's attribute name to be used for account names (Default:uid)NFSv4_group_objectclassβ The object class name for group accounts in your local LDAP schema (Default:NFSv4RemoteGroup)NFSv4_gid_attrβ Your local schema's attribute name to be used forgidNumber(Default:gidNumber)NFSv4_group_attrβ Your local schema's attribute name to be used for NFSv4 group names (Default:NFSv4Name)LDAP_use_memberof_for_groupsβ Some LDAP servers do a better job with indexing where searching through all the groups searching for the user in thememberuidlist. Others like SunOne directory that search can takes minutes if there are thousands of groups. So settingLDAP_use_memberof_for_groupsto true in the configuration file will use thememberoflists of the account and search through only those groups to obtain gids. (Default:false)NFSv4_member_attrβ IfLDAP_use_memberof_for_groupsis true, this is the attribute to be searched for. (Default:memberUid)NFSv4_grouplist_filterβ An optional search filter for determining group membership. (No Default)
β¨ EXAMPLES β¨
okay bestie, here's a whole /etc/idmapd.conf that actually does stuff, so you can just vibe off it π
An example /etc/idmapd.conf file:
[General]
Verbosity = 0
Domain = domain.org
Local-Realms = DOMAIN.ORG,MY.DOMAIN.ORG,YOUR.DOMAIN.ORG
[Mapping]
Nobody-User = nfsnobody
Nobody-Group = nfsnobody
[Translation]
Method = umich_ldap,regex,nsswitch
GSS-Methods = umich_ldap,regex,static
[Static]
johndoe@OTHER.DOMAIN.ORG = johnny
[Regex]
User-Regex = ^DOMAIN\([^@]+)@DOMAIN.ORG$
Group-Regex = ^([^@]+)@DOMAIN.ORG@DOMAIN.ORG$|^DOMAIN\([^@]+)@DOMAIN.ORG$
Prepend-Before-User = DOMAIN
Append-After-User = @DOMAIN.ORG
Append-After-Group = @domain.org@domain.org
Group-Name-Prefix = sales-
Group-Name-No-Prefix-Regex = -personal-group$
[UMICH_SCHEMA]
LDAP_server = ldap.domain.org
LDAP_base = dc=org,dc=domain
π FILES π
these are the spots where the config actually lives, in the order they get read π
/usr/etc/idmapd.conf/usr/etc/idmapd.conf.d/*.conf/etc/idmapd.conf/etc/idmapd.conf.d/*.conf
Files are read in the order listed. Later settings override earlier settings.
so basically the last one to speak wins, no cap. whatever you drop in later in that list overrides what came before it π«Ά
π SEE ALSO π
go read those too, they're the main characters of this whole saga π
π BUGS π
found something cursed? Report bugs to <nfsv4@linux-nfs.org> β they wanna hear it fr fr π
and that's a wrap, bestie π this page is from the 19 Nov 2008 era, filed under idmapd.conf(5) β iconic, timeless, lowkey vintage, and now fully yours πβ¨
π¦ where this page comes from
- arch rolling: nfsidmap 3.1.1-1 Β· GPL-2.0-or-later
- centos-stream 10: nfs-utils 1:2.8.3-9.el10 Β· MIT and GPLv2 and GPLv2+ and BSD
- debian trixie: libnfsidmap1 1:2.8.3-1
- fedora 43: nfs-utils 1:2.8.4-0.fc43 Β· LicenseRef-Callaway-MIT AND GPL-2.0-only AND GPL-2.0-or-later AND LicenseRef-Callaway-BSD
- fedora 43: nfs-utils 1:2.8.7-6.fc43 Β· LicenseRef-Callaway-MIT AND GPL-2.0-only AND GPL-2.0-or-later AND LicenseRef-Callaway-BSD
- fedora 44: nfs-utils 1:2.8.7-0.fc44 Β· GPL-2.0-only AND GPL-2.0-or-later AND BSD-3-Clause AND BSD-2-Clause AND (HPND-export-US-modify AND HPND-sell-variant) AND (GPL-2.0-only WITH Linux-syscall-note OR BSD-3-Clause)
- fedora 44: nfs-utils 1:2.8.7-7.fc44 Β· GPL-2.0-only AND GPL-2.0-or-later AND BSD-3-Clause AND BSD-2-Clause AND (HPND-export-US-modify AND HPND-sell-variant) AND (GPL-2.0-only WITH Linux-syscall-note OR BSD-3-Clause)
- nixos 26.05: nfs-utils 2.9.1
- nixpkgs unstable: nfs-utils 3.1.1
- opensuse-leap 16.0: nfs-client 2.8.2-160000.4.1 Β· GPL-2.0-or-later
- opensuse-leap 16.0: nfs-client 2.8.2-160000.4.1 Β· GPL-2.0-or-later
- opensuse-leap 16.0: nfs-client 2.8.2-160000.4.1 Β· GPL-2.0-or-later
- opensuse-leap 16.0: nfs-client 2.8.2-160000.4.1 Β· GPL-2.0-or-later
- COPYRIGHT (c) 2008 The Regents of the University of Michigan
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms