# Temporary Administrator Access with SAP Privileges (macOS)

## Overview

[SAP Privileges](https://github.com/SAP/macOS-enterprise-privileges) lets a standard macOS user request administrator rights for a limited period. This article explains how to deploy Privileges 2.5.3, configure administrator rights to expire after five minutes, require users to authenticate and provide a reason, and optionally report the most recent change in privilege status through a FileWave Custom Field.

<p class="callout warning">**Administrator access cannot be made risk-free.** While elevated, a user or process can change security settings, install persistent software, unload management components, or interfere with later revocation. Privileges cannot undo those changes or guarantee that administrator rights will be removed on schedule. Keep a separate recovery or management account, test the workflow on representative devices, and treat the timer as a policy control rather than a security boundary.</p>

## Requirements and compatibility

- FileWave Central and enrolled macOS devices with FileWave Client installed.
- A user account that normally runs as a standard user.
- A protected administrator account or another recovery method that does not depend on Privileges.
- Privileges 2.5.3 supports macOS 11 through macOS 26. Tamper protection requires macOS 13 or later.

On affected macOS 13 devices, macOS may report a false launch constraint violation and terminate the standard build. SAP provides a `noLC` package for those devices but recommends the standard package whenever it works.

## Downloads

<table border="1" id="bkmrk-item-purpose-privile" style="border-collapse: collapse; width: 100%;"><thead><tr><th style="padding: 8px;">Item</th><th style="padding: 8px;">Purpose</th></tr></thead><tbody><tr><td style="padding: 8px;">[Privileges 2.5.3 installer package](https://github.com/SAP/macOS-enterprise-privileges/releases/download/2.5.3/Privileges_2.5.3.pkg)</td><td style="padding: 8px;">Official signed and notarized SAP installer. The SHA-256 digest is `5948b4b809d05796ff09d4f064a72f049a3f895af194c146d3937f005d34401d`.</td></tr><tr><td style="padding: 8px;">[Profile - Privileges Config.fileset.zip](https://kb.filewave.com/attachments/542)</td><td style="padding: 8px;">Example FileWave Profile Fileset with the five-minute policy, authentication, reason prompts, menu bar access, and notification approval.</td></tr><tr><td style="padding: 8px;">[Privileges - Last Change.customfields](https://kb.filewave.com/attachments/543)</td><td style="padding: 8px;">Optional client-script Custom Field named **Privileges - Last Change**.</td></tr><tr><td style="padding: 8px;">[SAP approval profile](https://github.com/SAP/macOS-enterprise-privileges/blob/2.5.3/application_management/example_profiles/Example_ApprovePrivileges.mobileconfig)</td><td style="padding: 8px;">Official reference profile for notifications, Service Management, the system extension, and the system extension's Full Disk Access grant.</td></tr></tbody></table>

## Deploy Privileges

### 1. Download and verify the installer

Download the official 2.5.3 package. Before importing it, confirm the digest and Apple signature:

```
shasum -a 256 Privileges_2.5.3.pkg
pkgutil --check-signature Privileges_2.5.3.pkg
```

The `shasum` output should match the digest listed above. `pkgutil` should report a Developer ID Installer signature from `SAP SE (7R5ZEU67FQ)` and a notarization status trusted by the Apple notary service.

### 2. Create the PKG Fileset

1. In FileWave Central, open **Filesets**.
2. Drag `Privileges_2.5.3.pkg` into the Filesets view, or choose **New Fileset** and select the PKG Fileset type.
3. Name the Fileset clearly, such as **PKG - Privileges**, and put **2.5.3** in the revision name.

See [Create and Update PKG and MSI Filesets](https://kb.filewave.com/books/filesets-payloads/page/create-and-update-pkg-and-msi-filesets) for the standard package workflow.

### 3. Import and review the Profile Fileset

1. Download and extract [Profile - Privileges Config.fileset.zip](https://kb.filewave.com/attachments/542).
2. Drag the extracted `Profile - Privileges Config.fileset` into FileWave Central.
3. Open the imported Profile Fileset and review every setting before assigning it.

<table border="1" id="bkmrk-setting-example-valu" style="border-collapse: collapse; width: 100%;"><thead><tr><th style="padding: 8px;">Setting</th><th style="padding: 8px;">Example value and effect</th></tr></thead><tbody><tr><td style="padding: 8px;">`ExpirationInterval`</td><td style="padding: 8px;">`5`. Administrator rights are scheduled to expire after five minutes. Do not also configure `ExpirationIntervalMax`; a fixed interval takes precedence.</td></tr><tr><td style="padding: 8px;">`RequireAuthentication`</td><td style="padding: 8px;">`true`. Requires the current user to authenticate with a password or Touch ID before requesting administrator rights. This verifies user presence; it is not manager approval and does not require separate administrator credentials.</td></tr><tr><td style="padding: 8px;">`ReasonRequired` and `ReasonPresetList`</td><td style="padding: 8px;">Requires a stated reason. The example includes **Installing an App** and **Deleting Files**; Privileges adds its own **Other…** entry for free text. A reason records intent but does not restrict what the user can do.</td></tr><tr><td style="padding: 8px;">`RevokePrivilegesAtLogin`</td><td style="padding: 8px;">`true`. Revokes administrator rights at login. Before deployment, add the short names of all permanent local administrator accounts to `RevokeAtLoginExcludedUsers`. If login-time revocation does not fit your account design, remove this setting.</td></tr><tr><td style="padding: 8px;">`LimitToUser` and `LimitToGroup`</td><td style="padding: 8px;">Not included in the example. Add one or both settings if only approved account short names or groups should be able to request administrator rights. Use arrays of strings rather than the legacy single-string format.</td></tr><tr><td style="padding: 8px;">Notification bundle identifier</td><td style="padding: 8px;">`corp.sap.privileges.agent`. The notification payload must target the agent, not the main application bundle.</td></tr><tr><td style="padding: 8px;">`EnableSystemExtension`</td><td style="padding: 8px;">Not included in the example. Configure the approval payloads described below before enabling tamper protection.</td></tr></tbody></table>

<p class="callout warning">**The downloadable Profile Fileset enables `RevokePrivilegesAtLogin` and does not contain excluded usernames.** Before deployment, add every protected or permanent local administrator account to `RevokeAtLoginExcludedUsers`, or remove `RevokePrivilegesAtLogin` from the policy. Otherwise, those accounts become standard users at their next login.</p>

The example intentionally omits the deprecated `DockToggleTimeout` key, broad Full Disk Access and Post Events grants for the main application, and a post-change executable. If you add `PostChangeExecutablePath`, deploy the executable at that exact path and use `PostChangeExecutableChecksum` to verify it.

### 4. Deploy the Filesets

1. Create a Deployment that includes both the PKG Fileset and Profile Fileset, and target a small test group. If your environment still uses legacy Fileset Associations, associate both Filesets with the same group.
2. Select **Update Model**.
3. Confirm that both Filesets install successfully on the test devices before widening the deployment.

## Optional tamper protection

Privileges 2.5 introduced an Endpoint Security system extension that helps prevent attempts to remove Privileges or unload its launch services. To use it, build a separate Profile Fileset from SAP's [2.5.3 approval profile](https://github.com/SAP/macOS-enterprise-privileges/blob/2.5.3/application_management/example_profiles/Example_ApprovePrivileges.mobileconfig). It contains:

- Service Management approval for Team Identifier `7R5ZEU67FQ`.
- Endpoint Security system extension approval for the same team.
- A removable system extension entry for `corp.sap.privileges.extension`, which allows managed removal later.
- Full Disk Access for `corp.sap.privileges.extension`.

Deploy and confirm those approvals before setting `EnableSystemExtension` to `true`. Do not substitute Full Disk Access for `corp.sap.privileges`; SAP's profile grants it to the extension bundle.

## Optional inventory reporting

The attached Custom Field reports the most recent change to administrator or standard-user status that remains in the local unified log.

1. Download [Privileges - Last Change.customfields](https://kb.filewave.com/attachments/543).
2. In FileWave Central, open **Assistants &gt; Custom Fields &gt; Edit Custom Fields**.
3. Click **Import**, select the downloaded file, and review the macOS script.
4. Associate **Privileges - Last Change** with the required macOS devices.
5. After the next FileWave Client verification and inventory update, add the field to the Clients view or an Inventory Query.

Example values:

```
jsmith: privilege=administrator reason="Installing an App"
jsmith: privilege=standard reason="privileges expired"
```

The script searches up to seven days of the local unified log using the dedicated Privileges 2.5.2 or later subsystem and category:

```
log show --predicate 'subsystem == "corp.sap.privileges.daemon" AND category == "privchange"' --last 7d
```

<p class="callout info">**This Custom Field is a reporting aid, not an audit log.** macOS decides when unified log entries are removed, so the field can be blank even when Privileges was used. For durable records, configure Privileges remote logging to a managed syslog or webhook destination.</p>

## Verify the deployment

1. Confirm the receipt and installed version: ```
    pkgutil --pkg-info corp.sap.privileges.pkg
    ```
2. Launch **Privileges** as a standard user, authenticate, and select or enter a reason.
3. Confirm the account enters the local `admin` group, then returns to standard-user status after the configured interval: ```
    CONSOLE_USER=$(stat -f '%Su' /dev/console)
    id -Gn "$CONSOLE_USER"
    ```
4. Confirm the local event is present: ```
    log show --predicate 'subsystem == "corp.sap.privileges.daemon" AND category == "privchange"' --last 30m
    ```
5. If tamper protection is enabled, confirm the system extension is active: ```
    systemextensionsctl list | grep -F 'corp.sap.privileges.extension'
    ```
6. If you assigned the optional Custom Field, run another FileWave Client verification and confirm **Privileges - Last Change** is populated.

## Troubleshooting

<table border="1" id="bkmrk-symptom-check-privil" style="border-collapse: collapse; width: 100%;"><thead><tr><th style="padding: 8px;">Symptom</th><th style="padding: 8px;">Check</th></tr></thead><tbody><tr><td style="padding: 8px;">Privileges immediately exits on macOS 13</td><td style="padding: 8px;">Test SAP's [`Privileges_2.5.3_noLC.pkg`](https://github.com/SAP/macOS-enterprise-privileges/releases/download/2.5.3/Privileges_2.5.3_noLC.pkg). Before importing it, verify that its SHA-256 digest is `f88fe902a5850704900cb0b6e365ff9b5979354c801ee8452a349459e7f823f9` and check its Apple signature as described above. Use the standard package on other systems unless you reproduce the launch constraint problem.</td></tr><tr><td style="padding: 8px;">Notifications do not appear</td><td style="padding: 8px;">Confirm the profile targets `corp.sap.privileges.agent` and that the profile installed successfully.</td></tr><tr><td style="padding: 8px;">A permanent administrator becomes a standard user at login</td><td style="padding: 8px;">Add the account's short name to `RevokeAtLoginExcludedUsers`, or remove `RevokePrivilegesAtLogin` from the policy.</td></tr><tr><td style="padding: 8px;">The Custom Field is blank</td><td style="padding: 8px;">Run the log command above locally. The device needs Privileges 2.5.2 or later for the dedicated subsystem, and macOS may already have removed the event.</td></tr><tr><td style="padding: 8px;">The system extension prompts for approval or remains inactive</td><td style="padding: 8px;">Deploy SAP's Service Management, system extension, removable extension, and Full Disk Access payloads before enabling `EnableSystemExtension`.</td></tr></tbody></table>

## Remove Privileges

Do not assume that removing the PKG Fileset from a Deployment, or breaking a legacy Fileset Association, removes every Privileges component. If tamper protection is enabled, first remove or disable the managed `EnableSystemExtension` setting, select **Update Model**, and confirm the extension is disabled before continuing. Then deploy SAP's current [Privileges 2 uninstall script](https://github.com/SAP/macOS-enterprise-privileges/blob/2.5.3/application_management/Privileges2_Uninstall.sh) as root.

## Related information

- [SAP Privileges 2.5.3 release](https://github.com/SAP/macOS-enterprise-privileges/releases/tag/2.5.3)
- [Managing Privileges](https://github.com/SAP/macOS-enterprise-privileges/wiki/Managing-Privileges)
- [SAP uninstallation guidance](https://github.com/SAP/macOS-enterprise-privileges/wiki/Uninstallation)
- [Importing and Exporting Custom Field Files](https://kb.filewave.com/books/custom-fields/page/import-and-export-custom-field-definitions)
- [Custom Fields](https://kb.filewave.com/books/custom-fields/page/custom-fields)