# Schema Reference

The application schema is used to configure the objects returned from a connector.

> [!NOTE]
>
> - The **Account Schema** tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as **Entitlement** or **Multi-Valued**. Refer to [Managing Source Account Schemas](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.
> - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified.

The Linux connector uses the following default correlation and object configurations.

## Default Account Schema

Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location.

The set of account attributes each source stores and how they're organized is known as the account's *schema*. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to [Managing Source Account Schemas](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.

### Default Account ID

SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as *account IDs*.

> [!CAUTION]
>
> Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts.
>
> To resolve issues caused by changing account IDs, reconfigure them to their default values.

The following table lists the default account IDs for this connector:

| Account ID | Schema Object Type |
| --- | --- |
| username | Account |
| name | Group |

## Classification of Accounts

The Linux connector has been enhanced with a new capability to differentiate between system users and regular users. This feature allows for precise management and control over user accounts. To use this feature, follow these steps to configure your system.

1. **Modify the Account Schema:**

   - Add a new attribute named `isSystemuser` to your account schema.
   - Ensure that the attribute type is set to string. This will flag whether an account is a system user.
2. **Update Source XML Configuration:**

   - Add a new attribute called `systemUsersUidRange` within the source XML configuration.
   - This attribute should contain a list of User Identifiers (UIDs) that you want to categorize as system accounts. By specifying these UIDs, the system automatically recognizes and treats them as system users, applying any relevant policies or restrictions accordingly.

```text
[
  {
    "op": "add",
    "path": "/connectorAttributes/systemUsersUidRange",
    "value": ["0-999", "1001"]
  }
]
```

In this configuration snippet, `0` signifies the minimum UID, and `999` the maximum, with a `-` symbol as the separator. This range defines the spectrum of system users, from the lowest to the highest UID within the specified range. The second entry `1001` signifies a standalone UID.

## Default Entitlement Attributes

Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to [Managing Entitlements](<https://documentation.sailpoint.com/saas/help/access/entitlements.html>) for more information.

> [!CAUTION]
>
> Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations.

### Default Group Attributes

The Linux connector also supports groups. The following attributes must be configured on the managed system and in the SailPoint source schema to manage groups.

| Attribute Name | Description |
| --- | --- |
| groupid | GID. Each user must be assigned a group ID. You can see this number in your `/etc/group` file. |
| name | The name of group. If you run the `ls -l` command, you will see this name printed in the group field. |
