nfs idmap相关man手册

fedora40上nfs idmap相关的一些命令。

1 man nfsidmap

nfsidmap(8)       系统管理手册      nfsidmap(8)

名称
       nfsidmap - NFS idmapper 上调用程序

语法
       nfsidmap [-v] [-t timeout] key desc
       nfsidmap [-v] [-c]
       nfsidmap [-v] [-u|-g|-r user]
       nfsidmap -d
       nfsidmap -l
       nfsidmap -h

描述
       NFSv4 协议将本地系统的 UID 和 GID 值表示为 user@domain 形式的字符串。 从 UID 到字符串和从字符串到 UID 的转换过程称为“ID 映射”。

       系统通过执行密码或组查找来推导字符串的用户部分。 查找机制在 /etc/idmapd.conf 中配置。

       默认情况下,字符串的域部分是系统的 DNS 域名。 如果系统是多宿主机,或者系统的 DNS 域名与系统的 Kerberos 领域名称不匹配,也可以在 /etc/idmapd.conf 中指定。

       当在 /etc/idmapd.conf 中未指定域时,将查询本地 DNS 服务器以获取 _nfsv4idmapdomain 文本记录。 如果记录存在,则将其用作域。 当记录不存在时,将使用 DNS 域的域部分。

       /usr/sbin/nfsidmap 程序代表内核执行转换。 内核使用请求密钥机制执行上调用。 /usr/sbin/nfsidmap 由 /sbin/request-key 调用,执行转换并使用结果信息初始化一个密钥。 然后,内核将转换结果缓存到密钥中。

       nfsidmap 还可以清除内核中的缓存 ID 映射结果,或撤销某个特定密钥。 错误的缓存密钥可能导致 NFSv4 挂载点上的文件和目录所有权恢复为“nobody”。

       此外,-d 和 -l 选项可用于帮助诊断错误配置。 它们对包含 ID 映射结果的密钥环没有影响。

选项
       -c     清除所有密钥的密钥环。

       -d     在标准输出上显示系统的有效 NFSv4 域名。

       -g user
              撤销给定用户的 gid 密钥。

       -h     显示使用信息。

       -l     在标准输出上显示当前密钥环中用于缓存 ID 映射结果的所有密钥。 这些密钥仅对超级用户可见。

       -r user
              撤销给定用户的 uid 和 gid 密钥。

       -t timeout
              设置密钥的过期计时器,以秒为单位。 默认值为 600 秒(10 分钟)。

       -u user
              撤销给定用户的 uid 密钥。

       -v     增加输出到 syslog 的详细程度(可以多次指定)。

配置
       需要修改文件 /etc/request-key.conf,以便 /sbin/request-key 可以正确引导上调用。 应在调用 keyctl negate 之前添加以下行:

       create    id_resolver    *    *    /usr/sbin/nfsidmap -t 600 %k %d

       这将指向所有 id_resolver 请求到程序 /usr/sbin/nfsidmap。 -t 600 定义密钥将在未来多少秒过期。 这是 /usr/sbin/nfsidmap 的一个可选参数,未指定时默认为 600 秒。

       idmapper 系统使用四个密钥描述:

              uid: 查找给定用户的 UID
              gid: 查找给定组的 GID
             user: 查找给定 UID 的用户名
            group: 查找给定 GID 的组名

       您可以选择单独处理其中的任何一个,而不是使用通用上调用程序。 如果您希望使用自己的程序进行 uid 查找,则应编辑您的 request-key.conf,使其类似于:

       create    id_resolver    uid:*     *    /some/other/program %k %d
       create    id_resolver    *         *    /usr/sbin/nfsidmap %k %d

       请注意,新行添加在通用程序行之前。 request-key 将找到第一个匹配的行并运行相应的程序。 在这种情况下, /some/other/program 将处理所有 uid 查找,而 /usr/sbin/nfsidmap 将处理 gid、user 和 group 查找。

FILES
       /etc/idmapd.conf
              ID mapping configuration file

       /etc/request-key.conf
              Request key configuration file

SEE ALSO
       idmapd.conf(5), request-key(8)

AUTHOR
       Bryan Schumaker, <bjschuma@netapp.com>

1 October 2010                    nfsidmap(8)

2 man idmapd.conf

idmapd.conf(5)     文件格式手册        idmapd.conf(5)

名称
       idmapd.conf - libnfsidmap 的配置文件

概要
       libnfsidmap 的配置文件。 由 idmapd 和 svcgssd 使用,用于将 NFSv4 名称与 ID 相互映射。

描述
       idmapd.conf 配置文件由多个部分组成,以 [General] 和 [Mapping] 等字符串开头。每个部分可以包含形式为
         variable = value
       的行。以下是已识别的部分及其识别的变量:

   [General] 部分变量
       Verbosity
              调试的详细程度(默认:0)

       Domain 本地 NFSv4 域名。NFSv4 域是一个具有唯一用户名<->UID 和组名<->GID 映射的命名空间。(默认:主机的完全限定的 DNS 域名)

       No-Strip
              在多域环境中,某些 NFS 服务器将身份管理域附加到所有者和所有者组,而不是使用真正的 NFSv4 域。此选项可以帮助在这种环境中进行查找。如果设置为除 "none" 以外的值,nsswitch 插件将在不去掉域名的情况下首先将名称传递给密码/组查找函数。如果该映射失败,则插件将使用旧方法(将字符串中的域与 Domain 值进行比较,如果匹配则去掉域名,并将生成的短名称传递给查找函数)再次尝试。有效值为 "user"、"group"、"both" 和 "none"。(默认:"none")

       Reformat-Group
              Winbind 有一个特点,即使用 UPN 格式(例如 staff@americas.example.com)查找组时,组将以大写形式显示其完整域(例如 AMERICAS.EXAMPLE.COM\staff),而不是常见的 netbios 名称格式(例如 AMERICAS\staff)。设置此选项为 true 会在将名称传递给组查找函数之前重新格式化名称以解决此问题。除非 No-Strip 设置为 "both" 或 "group",否则此设置将被忽略。(默认:"false")

       Local-Realms
              可能与本地域名等同的 Kerberos 域名的逗号分隔列表。例如,用户 juser@ORDER.EDU 和 juser@MAIL.ORDER.EDU 在指定的 Domain 中可能被视为同一用户。(默认:主机的默认域名)
              注意:如果在此指定了一个值,则必须包括默认的本地域。

   [Mapping] 部分变量
       Nobody-User
              当映射无法完成时使用的本地用户名。

       Nobody-Group
              当映射无法完成时使用的本地组名。

   [Translation] 部分变量
       Method 一组逗号分隔的、有序的映射方法(插件)列表,用于在 NFSv4 名称和本地 ID 之间进行映射。按顺序尝试每个指定的方法,直到找到映射,或没有更多方法可尝试。默认分发版中包含的映射方法包括 "nsswitch"、"umich_ldap" 和 "static"。(默认:nsswitch)

       GSS-Methods
              一个可选的逗号分隔、有序的映射方法(插件)列表,用于在 GSS 认证名称和本地 ID 之间进行映射。(默认:与为 Method 指定的列表相同)

   [Static] 部分变量
       "static" 翻译方法使用 GSS 认证名称到本地用户名的静态列表。列表中的条目形式为:
        principal@REALM = localusername

   [REGEX] 部分变量
       如果指定了 "regex" 翻译方法,则 [REGEX] 部分中的以下变量用于在 NFS4 名称和本地 ID 之间进行映射。

       User-Regex
              不区分大小写的正则表达式,用于从 NFSv4 名称中提取本地用户名。多个表达式可以用 '|' 连接。将使用第一个匹配项。没有默认值。一个用于域 DOMAIN.ORG 和域 MY.DOMAIN.ORG 的基本正则表达式为:
              ^DOMAIN\([^@]+)@MY.DOMAIN.ORG$

       Group-Regex
              不区分大小写的正则表达式,用于从 NFSv4 名称中提取本地组名。多个表达式可以用 '|' 连接。将使用第一个匹配项。没有默认值。一个用于域 DOMAIN.ORG 和域 MY.DOMAIN.ORG 的基本正则表达式为:
              ^([^@]+)@DOMAIN.ORG@MY.DOMAIN.ORG$|^DOMAIN\([^@]+)@MY.DOMAIN.ORG$

       Prepend-Before-User
              在构建 NFSv4 名称时放在本地用户名之前的常量字符串。通常这是简短的域名,后跟 '´。(默认:无)

       Append-After-User
              在构建 NFSv4 名称时放在本地用户名之后的常量字符串。通常这是 '@' 后跟默认域。(默认:无)

       Prepend-Before-Group
              在构建 NFSv4 名称时放在本地组名之前的常量字符串。通常不使用。(默认:无)

       Append-After-Group
              在构建 NFSv4 名称时放在本地组名之前的常量字符串。通常这是 '@' 后跟域名,再后跟 '@' 和默认域。(默认:无)

       Group-Name-Prefix
              转换为 NFSv4 名称时,在本地组名前添加的常量字符串。如果 NFSv4 组名具有此前缀,则在转换为本地组名时会去除它。使用此功能,中央目录的组名可以为某个独立的组织单位缩短,如果所有组都有一个共同的前缀。(默认:无)

       Group-Name-No-Prefix-Regex
              用于从添加和删除由 Group-Name-Prefix 设置的前缀中排除组的、不区分大小写的正则表达式。正则表达式必须同时匹配远程和本地组名。多个表达式可以用 '|' 连接。(默认:无)

   [UMICH_SCHEMA] 部分变量
       如果指定了 "umich_ldap" 翻译方法,则使用 [UMICH_SCHEMA] 部分中的以下变量。

       LDAP_server
              LDAP 服务器名称或地址(使用 UMICH_LDAP 时必须)

       LDAP_base
              绝对 LDAP 搜索基准。(使用 UMICH_LDAP 时必须)

       LDAP_people_base
              用于人员帐户的绝对 LDAP 搜索基准。(默认:LDAP_base 值)

       LDAP_group_base
              用于组帐户的绝对 LDAP 搜索基准。(默认:LDAP_base 值)

       LDAP_canonicalize_name
              是否对给定的 LDAP_server 名称进行名称规范化(默认:"true")

       LDAP_follow_referrals
              是否跟随 ldap 引用。(默认:"true")

       LDAP_use_ssl
              设置为 "true" 以启用与 LDAP 服务器的 SSL 通信。(默认:"false")

       LDAP_ca_cert
              在启用 SSL 时使用的受信任 CA 证书的位置(如果 LDAP_use_ssl 为 true 且 LDAP_tls_reqcert 未设置为 never,则必须)

       LDAP_tls_reqcert
              控制 LDAP 服务器证书验证行为。它可以采用与 ldap.conf(5) 中的 TLS_REQCERT 可调参数相同的值。(默认:"hard")

       LDAP_timeout_seconds
              LDAP 请求超时的秒数(默认:4)

       LDAP_sasl_mech
              用于 sasl 认证的 SASL 机制。如果要使用 SASL 认证,则必须。(默认:无)

       LDAP_realm
              用于 sasl 认证的 SASL 域。(默认:无)

       LDAP_sasl_authcid
              用于 sasl 认证的认证身份。(默认:无)

       LDAP_sasl_authzid
              用于 sasl 认证的授权身份。(默认:无)

       LDAP_sasl_secprops
              Cyrus SASL 安全属性。它可以与 ldap.conf(5) 中的 sasl_secprops 采用相同的值。

       LDAP_sasl_canonicalize
              指定是否应对 LDAP 服务器主机名进行规范化。如果设置为 yes,LDAP 库将进行反向主机名查找。如果未设置,将使用 LDAP 库的默认值。(默认:无)

       LDAP_sasl_krb5_ccname
              Kerberos 凭证缓存的路径。如果未设置,将使用环境变量 KRB5CCNAME 的值。如果环境变量未设置,将使用 Kerberos 库的默认机制。

       NFSv4_person_objectclass
              您本地 LDAP 模式中人员帐户的对象类名称(默认:NFSv4RemotePerson)

       NFSv4_name_attr
              您本地模式中用于 NFSv4 用户名的属性名称(默认:NFSv4Name)

       NFSv4_uid_attr
              您本地模式中用于 uidNumber 的属性名称(默认:uidNumber)

       GSS_principal_attr
              您本地模式中 GSSAPI 主体名称的属性名称(默认:GSSAuthName)

       NFSv4_acctname_attr
              您本地模式中用于帐户名称的属性名称(默认:uid)

       NFSv4_group_objectclass
              您本地 LDAP 模式中组帐户的对象类名称(默认:NFSv4RemoteGroup)

       NFSv4_gid_attr
              您本地模式中用于 gidNumber 的属性名称(默认:gidNumber)

       NFSv4_group_attr
              您本地模式中用于 NFSv4 组名的属性名称(默认:NFSv4Name)

       LDAP_use_memberof_for_groups
              某些 LDAP 服务器在通过 memberuid 列表搜索用户时的索引效率更高。其他服务器(如 SunOne 目录)在有成千上万的组时,搜索可能需要几分钟。因此,在配置文件中将 LDAP_use_memberof_for_groups 设置为 true 将使用帐户的 memberof 列表,仅在这些组中搜索以获得 gids。(默认:false)

       NFSv4_member_attr
              如果 LDAP_use_memberof_for_groups 为 true,这是要搜索的属性。(默认:memberUid)

       NFSv4_grouplist_filter
              用于确定组成员资格的可选搜索过滤器。(无默认)

示例
       示例 /etc/idmapd.conf 文件:

       [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

文件
       /usr/etc/idmapd.conf
       /usr/etc/idmapd.conf.d/*.conf
       /etc/idmapd.conf
       /etc/idmapd.conf.d/*.conf

              文件按列出的顺序读取。后面的设置覆盖前面的设置。

SEE ALSO
       idmapd(8) svcgssd(8)

BUGS
       Report bugs to <nfsv4@linux-nfs.org>

19 Nov 2008         idmapd.conf(5)

3 man request-key

REQUEST-KEY(8)                Linux 密钥管理工具               REQUEST-KEY(8)

名称
       request-key - 处理来自内核的密钥实例化回调请求

语法
       /sbin/request-key <op> <key> <uid> <gid> <threadring> <processring>      <sessionring> [<info>]

描述
       当内核请求一个它没有立即可用的密钥时,会调用此程序。 内核创建一个部分设置的密钥,然后调用该程序进行实例化。 它并不打算直接调用。

       但是,出于调试目的,可以在命令行上提供一些选项:

       -d     开启调试模式。在此模式下,不会尝试访问任何密钥,如果选择了处理程序程序,则不会执行;而是该程序将打印一条消息并退出 0。

       -D     在调试模式下,使用指定的建议密钥描述,而不是程序内置的示例(“user;0;0;1f0000;debug:1234”)。

       -l     使用当前目录的配置。该程序将使用当前目录中的 request-key.d/* 和 request-key.conf,而不是 /etc 中的。

       -n     不记录到系统日志。通常,错误消息和调试消息将复制到系统日志中 - 这将防止这种情况。

       -v     开启调试输出。可以多次指定此选项,以产生增加的详细程度。

       --version
              打印程序版本并退出。

错误
       所有错误将记录到 syslog。

文件
       /etc/request-key.d/*.conf  单独的配置文件。

       /etc/request-key.conf  备用配置文件。

SEE ALSO
       keyctl(1), request-key.conf(5), keyrings(7)

Linux                15 Nov 2011             REQUEST-KEY(8)