LCTL-NODEMAP_MODIFY(8)

NAME
lctl-nodemap_modify - modify a nodemap property

SYNOPSIS
lctl nodemap_modify or
lctl nodemap modify --name NODEMAP_NAME --property PROPERTY_NAME{=VALUE|--value VALUE}

DESCRIPTION
nodemap_modify modifies a property of the given nodemap.

OPTIONS

--name NODEMAP_NAME
    The name of the nodemap to modify

--property
    PROPERTY_NAME{=VALUE|--value VALUE}

One of the following properties:

    admin
        Defaults to 0. If set to 1, then root will NOT be squashed. By default, the root user is mapped to the value of squash_uid.

    trusted
        Defaults to 0. If set to 1, then user mapping will be disabled for all non-root users. This means that the identities provided by the client will be trusted to match the identities of the file system. By default, the client user identities are mapped to the file system identities based on the nodemap rules.

    squash_uid
        Defaults to NODEMAP_NOBODY_UID if not specified, which is 65534 to match the standard Linux nobody user ID. The user ID that unknown users (if not trusted ) and root (if not admin) should be mapped to. When offsets are defined on the nodemap, the squash value should be in the offset range [ 0, offset_limit-1 ], otherwise squashed UIDs would escape offsetting. Note squashing to UID 0 (root) is not permitted.

    squash_gid
        Defaults to NODEMAP_NOBODY_UID if not specified, which is 65534 to match the standard Linux nobody user ID. The group ID that unknown groups (if not trusted) and root (if not admin) should be mapped to. When offsets are defined on the nodemap, the squash value should be in the offset range [ 0, offset_limit-1 ], otherwise squashed GIDs would escape offsetting. Note squashing to GID 0 (root) is not permitted.

    squash_projid
        Defaults to NODEMAP_NOBODY_UID if not specified, which is 65534 to match the standard Linux nobody user ID. The project ID that unknown projects (if not trusted) should be mapped to. When offsets are defined on the nodemap, the squash value should be in the offset range [ 0, offset_limit-1 ], otherwise squashed PROJIDs would escape offsetting.

    deny_unknown
        Defaults to 0. If set to 1 then unknown (squashed) users will be denied access to the filesystem completely instead of just being squashed. Users are considered unknown by nodemap if the admin flag is off and the user is root, or trusted are set to off and the user is not mapped.

        Note: directory entries cached by a Lustre client may be visible to unknown users located on the same client, though the contents of the files will not be.

    audit_mode
        Defaults to 1, which lets clients record file system access events to the Changelogs, if Changelogs are otherwise activated. If set to 0, events from these clients are not logged into the Changelogs, no matter if Changelogs are activated or not. The reason not to record file system events from given clients is to prevent some nodes (e.g. backup, HSM agent nodes) from flooding the Changelogs.

    map_mode
        Defaults to all, which means the nodemap maps UIDs, GIDs, and PROJIDs. Other possible values (multiple can be specified, comma separated) are uid to map UIDs, gid to map GIDs, both to map UIDs and GIDs, and projid to map PROJIDs.

    forbid_encryption
        Defaults to 0, which means encryption is allowed. Set to 1 to prevent clients from using encryption.

    child_raise_privileges
        Defaults to none, allowing child nodemaps to only lower privileges established by parent nodemap. Other possible values (multiple can be specified, comma separated) are the nodemap properties names that support privilege raise:
        - admin
        - trusted
        - deny_unknown
        - readonly_mount
        - forbid_encryption
        - child_raise_privs
        - caps
        - deny_mount
        It is also possible to specify any roles accepted by the rbac property (see below).
        Any privilege not explicitly specified cannot be raised. To allow all privileges to be raised, use 'all' value.

    readonly_mount
        Defaults to 0, which lets clients mount in read-write mode. If set to 1, clients are forced to a read-only mount if not specified explicitly.

    deny_mount
        Defaults to 0, accepting client mounts from nodes assigned to the nodemap. If set to 1, nodes assigned to the nodemap can no longer mount new Lustre clients. Existing clients remain operational until a remount is attempted.

    rbac
        Defaults to all, which means all roles are allowed. Other possible values (multiple can be specified, comma separated) are:
            - byfid_ops, to allow operations by FID (e.g. 'lfs rmfid').
            - chlg_ops, to allow access to Lustre Changelogs.
            - dne_ops, to allow operations related to DNE (e.g. 'lfs mkdir').
            - file_perms, to allow modifications of file permissions and owners.
        - fscrypt_admin, to allow fscrypt related admin tasks (create or modify protectors/policies). Note that even without this role, it is still possible to lock or unlock encrypted directories, as these operations only need read access to fscrypt metadata.
        - hsm_ops, to control whether clients can carry out HSM actions.
        - ignore_root_prjquota, so that project quota is not enforced for the root user.
        - local_admin, to allow mapped root to perform admin operations on files, unless it is squashed.
        - quota_ops, to allow UID/GID/ProjID quota modifications.
        - pool_quota_ops, to allow pool quota modifications.
        - server_upcall, to define which identity upcall to use. If set, identity upcall is defined by server side tunable. If not set, identity upcall is forced to INTERNAL, so that servers trust supplementary groups as provided by clients.
        Apart from all, any role not explicitly specified is forbidden. And to forbid all roles, use 'none' value.

    gssonly_identification
        If set to 1, clients for this nodemap are no longer identified based on their NIDs, but instead by the GSS token they are using to authenticate. Consequently, a nodemap with this property set cannot have any NID ranges defined. Any client using the GSS token associated with this nodemap to authenticate is considered part of this nodemap.
        Defaults to 0.

--value VALUE
    The value to set for the property. Should be 0 or 1 for admin and trusted. The use of both --property PROPERTY_NAME=VALUE and --value VALUE is invalid.

EXAMPLES
Commands illustrating how to modify nodemap properties:
    # lctl nodemap_modify --name remotesite --property trusted --value 1
    # lctl nodemap_modify --name remotesite --property admin --value 1
    # lctl nodemap_modify --name remotesite --property map_mode --value uid
    # lctl nodemap_modify --name remotesite --property rbac=all
    # lctl nodemap_modify --name othersite --property squash_uid --value 101

AVAILABILITY
lctl nodemap_modify is part of the lustre(7) filesystem package since release 2.6.0

SEE ALSO
lustre(7), lctl-nodemap-activate(8), lctl-nodemap-add-idmap(8), lctl-nodemap-add-offset(8), lctl-nodemap-add-range(8), lctl-nodemap-del(8), lctl-nodemap-del-idmap(8), lctl-nodemap-del-offset(8), lctl-nodemap-del-range(8) lctl-nodemap-new(8),