Temporary admin on Macs: five approaches compared
How Jamf, Iru (formerly Kandji), PrivilegesDemoter, Admin By Request and SAP Privileges with Altiward give people admin rights for a while and take them back, based on each vendor's own documentation.
We make Altiward, so read this with that in mind. Every statement about another product links to that vendor's own documentation, release notes or source code in the sources at the end. Where a vendor's documentation doesn't cover something, the table says "not documented" rather than guessing. Products change quickly, so check the sources before you decide.
If we've got something wrong, email hello@altiward.com or suggest a change on GitHub.
The short version
- Admin By Request documents the widest set of controls of the five: elevation of a single app or installer, timed admin sessions, optional approval, app pre-approval, malware checks and a vendor-hosted portal.
- Jamf builds timed elevation into Self Service+, configured through a Jamf Connect profile, with reasons, authentication, monthly limits and per-role durations. Jamf's Jamf Connect 3.0 announcement says a Jamf Connect licence is still required.
- Iru, the new name for Kandji, doesn't document an elevation feature of its own. Its documentation deploys SAP Privileges 2 as an Auto App instead.
- PrivilegesDemoter is a free community script that reminds the logged-in admin to step down and removes their rights if they don't answer. It has had no release since May 2023.
- SAP Privileges with Altiward is free and open source. Privileges grants admin; Altiward checks each Mac's admin group against the grants, alerts on or removes rights past expiry, and sends records to your SIEM. It has no approval step and no per-app elevation, and you run its server yourself.
Getting and ending admin
| Tool | How someone gets admin | Approval | How admin ends |
|---|---|---|---|
| Jamf: Self Service+ with Jamf Connect | The person elevates in Self Service+ or with jamfconnect acc-promo --elevate and becomes a local administrator for the minutes you set. Options include a reason from a list you define, authentication first, a monthly limit and per-role durations from your identity provider | Not documented | Standard user again when the timer ends, or with --demote. Changing the system clock sets a time-tampering flag that blocks further elevation |
| Iru (formerly Kandji) | No elevation feature of its own is documented. Iru documents deploying SAP Privileges 2 as an Auto App and keeping it up to date | As SAP Privileges: no approval setting in SAP's settings reference | Privileges' own timer. Iru's separate Demote user accounts to Standard parameter makes every non-excluded local account standard, but Iru says not to use it with SAP Privileges 2 |
| PrivilegesDemoter | Doesn't grant admin itself when used with SAP Privileges. In standalone mode, a self-service policy in your MDM runs its --elevate command as root | Not documented | Every 5 minutes it checks whether the logged-in user is an admin. Past a threshold, 15 minutes by default, it asks if they still need it; No, or no answer, removes the rights |
| Admin By Request | Run As Admin elevates one app or installer package. Admin Session makes the person a local administrator for a set time, 15 minutes by default. Pre-approved apps can skip the request | Optional for each type, off by default. Approve from the portal, mobile app or API. Reasons and multi-factor authentication through Entra ID or a SAML provider are available | The session ends when its time runs out or the person finishes it. At logon, Revoke admin rights, on by default, makes admin accounts standard unless you exclude them |
| SAP Privileges with Altiward | Privileges grants full admin for a time you limit, with an optional reason and authentication. Altiward never grants admin | None: SAP's settings reference has no approval setting, and Altiward doesn't add one | Privileges' timer and revocation rules. Altiward's root agent also alerts on rights past the recorded expiry, or removes them if you turn enforcement on, and your team can revoke from the console |
Oversight, records and running costs
| Tool | Admins nobody granted | Records and SIEM | Where it runs and cost |
|---|---|---|---|
| Jamf: Self Service+ with Jamf Connect | Not documented | Elevation events go to the Mac's unified log, and reasons to an ElevationReasons log file. Jamf documents collecting them with Jamf Protect, a separate product, and sending them to a SIEM | Self Service+ on each Mac, configured with a Jamf Connect profile. Needs a Jamf Connect licence |
| Iru (formerly Kandji) | The Demote user accounts to Standard parameter demotes any admin except the accounts you exclude, at each agent check-in, then restarts the Mac after a 30-minute countdown. Not for use with SAP Privileges 2 | Not documented by Iru for elevation. SAP Privileges 2 can send its own events to syslog or a webhook | Part of Iru Endpoint, Iru's device management product. SAP Privileges is free and open source |
| PrivilegesDemoter | Checks only the logged-in user, however they became admin. Other admin accounts on the Mac aren't checked | A log file on each Mac, /var/log/privileges.log, and Jamf Pro policy logs if you use a Jamf policy | A script and LaunchDaemon on each Mac, with no server. Free, Apache 2.0 |
| Admin By Request | Revokes admin at logon unless excluded, as above. Its Admin Session page says changes to the local admin group during a session are reverted when it ends | An audit log in the portal. After an Admin Session, the processes run and software installed or removed are uploaded. Splunk through its HTTP Event Collector and webhooks; Microsoft Sentinel through a Logic App and the audit log API | An agent on each Mac and a portal hosted as SaaS on Microsoft Azure, in one of several regions, with no on-premises servers needed. Free for up to 25 seats; paid plans priced on request |
| SAP Privileges with Altiward | Altiward reads the whole admin group every 15 seconds and flags accounts with no recorded grant that aren't on your permanent-admin list. It removes them only when someone revokes them from the console | Sessions and findings as OCSF to Splunk, Microsoft Sentinel or syslog, including what changed while someone was admin. Events wait in your database until the SIEM accepts them | An agent on each Mac, plus a server, Postgres database and console that you run. Free, Apache 2.0; you pay for the hosting and do the upgrades |
Jamf
Jamf's temporary admin feature lives in Self Service+, which Jamf describes as formerly the Jamf Connect menu bar app. You turn it on with the TemporaryUserPromotion setting in a Jamf Connect configuration profile. While elevated, Jamf says the person "is able to conduct any actions available to local administrators", and a timer in the menu bar shows the time left.
Where it goes further than SAP Privileges with Altiward:
- Durations can follow roles from your identity provider, and a role with a duration of
0can't elevate at all. - A limit on the number of elevations per calendar month, with a time-tampering flag if someone changes the clock to get round it.
- Reasons are picked from a list you define, with an other option.
Jamf's pages don't describe an approval step, reporting in Jamf Pro, or how Self Service+ treats admin accounts it didn't create. For evidence outside the Mac, Jamf points to Jamf Protect's unified log filters. In Jamf's Jamf Connect 3.0 announcement, Jamf said licence profiles "remain compatible and required" for the account features in both Jamf Connect and Self Service+.
Iru, formerly Kandji
Iru's documentation says Kandji branding changed to Iru from 8 April 2026, and calls the device management product Iru Endpoint. We found no Iru page describing a temporary admin feature of its own. What Iru documents for admin rights on Macs:
- A SAP Privileges 2 Auto App that installs Privileges and, with Continuously enforce, keeps it up to date. Iru links to SAP's own documentation for configuring it.
- A Demote user accounts to Standard parameter that checks every local account at each agent check-in, demotes any admin you haven't excluded, then restarts the Mac after a 30-minute countdown. Iru warns that it "can remove administrator privileges granted by SAP Privileges 2", so don't assign both to the same Macs.
- A LAPS Library Item that rotates passwords for the local administrator accounts you name and stores them in Iru.
For temporary admin on Iru-managed Macs, then, the choice is mostly about what you put around SAP Privileges. Altiward works with Privileges, so it can run on Macs that use the Auto App. List Iru's managed admin account in Altiward's PermanentAdmins, as you would for any LAPS account.
PrivilegesDemoter
PrivilegesDemoter is a community project on GitHub (sgmills/PrivilegesDemoter), licensed under Apache 2.0. SAP doesn't maintain it. A LaunchDaemon runs it as root every 5 minutes. If the logged-in user is an admin past the threshold, 15 minutes by default, it asks whether they still need admin rights. Yes resets the timer; No or no answer removes them. You set it up with a configuration profile, including a list of accounts it should never demote. Notifications can use swiftDialog, IBM Notifier or Jamf Helper, or be turned off for silent demotion.
Where it goes further than SAP Privileges with Altiward:
- It's small: one script and one LaunchDaemon, with no server or database.
- It can work without SAP Privileges, using a self-service policy to elevate.
- It nudges people to give up rights early, which Altiward doesn't do.
Things to check before relying on it. The latest release is v3.0, from 15 May 2023, and the last code change was in November 2024; both predate or coincide with SAP Privileges 2.0, released on 20 November 2024. Its documentation refers to DockToggleTimeout, a setting SAP lists for Privileges 1.0.5 to 1.5.4, so test it against the Privileges version you run. Because it runs every 5 minutes, its wiki notes that a reminder can come up to 5 minutes after the threshold. It checks only the logged-in user, and its log stays on the Mac.
Admin By Request
Admin By Request is a commercial endpoint privilege management product with agents for Windows, macOS and Linux and a cloud portal. On macOS it offers two kinds of elevation: Run As Admin, for one app or installer package, and Admin Session, which makes the person a local administrator for a limited time.
Where it goes further than SAP Privileges with Altiward:
- Elevation of a single app or installer, so people don't need full admin to install software.
- An optional approval step for each kind of elevation, from the portal, a mobile app or the API, with email and ticketing notifications.
- App pre-approval by vendor, Team ID, bundle ID or checksum, and a setting that auto-approves apps once they've been approved manually.
- Malware checks through OPSWAT MetaDefender before an app runs elevated.
- Control over which System Settings panes standard users can open, and whether
sudoworks in Terminal during an Admin Session (off by default). - Session records that list the processes run and the software installed or removed, according to Admin By Request's Admin Session page and spec sheet.
- A hosted portal, so there's no server for you to run.
On the other side of that trade, the portal is SaaS: Admin By Request's spec sheet describes it as hosted on Microsoft Azure, and it keeps customer data in one of its regional data centres. Approval is off by default, including on the free plan. The free plan covers up to 25 seats; Business and Enterprise prices are on request.
SAP Privileges with Altiward
SAP Privileges is a free, open-source app from SAP that grants full admin for a limited time. Altiward works with SAP Privileges: its root agent runs on each Mac alongside Privileges and never grants admin itself. What it adds:
- An independent check of the admin group. Privileges' timer runs in the person's own session, and SAP says Privileges can't guarantee that rights are removed. Altiward's agent, running as root, compares the whole admin group with the grants Privileges recorded.
- Expiry you choose how to handle. By default it alerts on rights past their expiry. With
ExpiryEnforcementset toenforce, it removes them after a grace period. - Admins nobody granted, across the fleet. Accounts with no recorded grant and not on your permanent-admin list are flagged in the console and sent to your SIEM. With Privileges 2.6 or later and its system extension on, the finding names the process that added the account.
- Revocation from the console, per session, per account or per Mac.
- Gaps you can see. The server flags Macs that stop checking in, and the agent reports tampering with itself or with Privileges' protection.
- Evidence in your own systems. OCSF records go to Splunk, Microsoft Sentinel or syslog, and nothing is sent to us.
What Altiward adds to SAP Privileges compares the two in detail.
What Altiward doesn't do
Altiward checks and records admin rights, and leaves some jobs to other tools:
- It doesn't grant admin. Altiward needs SAP Privileges to do that. If Jamf, Admin By Request or anything else grants admin instead, Altiward shows every admin outside your permanent list as one nobody granted.
- No approval workflow and no per-app elevation. Privileges gives full admin for a period, and neither it nor Altiward has an approval step. If you need either, Admin By Request documents both.
- You run the server. That means a Linux server with Docker Compose, or Azure Container Apps, plus two DNS names, Postgres backups and upgrades. For laptops away from the office, the agent hostname has to be reachable from the internet.
- Rights past expiry stay by default. The default policy alerts; removal happens only once you set
ExpiryEnforcementtoenforce. Expiry comes from Privileges, so a grant Privileges gives no expiry never counts as overdue. - Unexpected admins aren't removed automatically. Altiward flags them and your team revokes them from the console.
- No app control or malware scanning. Altiward reports what changed while someone was admin, such as launch items, sudoers rules and new accounts, but not every process that ran. Your EDR covers that.
- A local admin can stop the agent, as with any tool on the Mac. The server then reports the Mac as no longer checking in.
If you need any of these, the products above cover them, and the sources below are the place to confirm the details for your fleet.
Sources
All checked on 24 October 2026.
- Jamf, Privilege Elevation: Self Service+ as the former menu bar app, the
TemporaryUserPromotionsetting, the timer, local administrator actions and theacc-promocommands - Jamf, Configuring macOS Privilege Elevation in Self Service+: duration, monthly limit, reasons, verification, roles and time tampering
- Jamf, Managing Privilege Elevation with Logs: the unified log category, the
ElevationReasonsfile and Jamf Protect log filters - Jamf Community, Jamf Connect 3.0.0 now available, posted by Jamf's community manager on 9 June 2025: privilege elevation in Self Service+ 2.0.0 and licence profiles still required
- Iru, Iru brand update: Kandji branding changed to Iru from 8 April 2026
- Iru, Deploy the SAP Privileges 2 Auto App: the Auto App and the warning about the demotion parameter
- Iru, Demote User Accounts to Standard: how the parameter works, its exclusions and restart countdown, and its incompatibility with SAP Privileges 2
- Iru, Configure the LAPS Library Item: password rotation for local administrator accounts
- Iru, documentation index: searched for elevation, privilege and temporary admin topics; none beyond those above
- PrivilegesDemoter, README and releases: what it does, licence, v3.0 released 15 May 2023
- PrivilegesDemoter wiki: Preferences, Admin Threshold, Standalone Mode and Logging
- PrivilegesDemoter, PrivilegesDemoter.sh and its LaunchDaemon: checks the console user only, every 300 seconds
- Admin By Request, Mac Settings: Run As Admin, Admin Session, approval and reason defaults, authentication, revoking admin rights, System Settings panes,
sudo, malware checks and app pre-approval - Admin By Request, Admin Session: the default duration, platforms, the audit trail of processes and software, and reverting admin-group changes when a session ends
- Admin By Request, EPM spec sheet, Windows edition, 4 August 2025: the cloud portal on Microsoft Azure, no on-premises servers, and session details uploaded to the portal
- Admin By Request, new data centres: regional hosting
- Admin By Request, pricing: the free plan for up to 25 seats, and Business and Enterprise prices on request
- Admin By Request, Splunk integration and Microsoft Sentinel integration
- SAP, Managing Privileges: every Privileges setting, including
DockToggleTimeoutfor versions 1.0.5 to 1.5.4, and remote logging - SAP, Frequently Asked Questions: Privileges can't guarantee that admin rights are removed
- SAP, issue 277: revocation happens in the user's session
- SAP, Privileges releases: 2.0.0 released 20 November 2024; 2.6.0 current
- Altiward, README, agent README and install guide: what Altiward does and its known limits
The demo console runs with Docker alone, so you can see the findings and records before deciding whether to run a server.