Home > Mac administration, macOS, Secure Token > Granting Volume Owner status on Apple Silicon Macs

Granting Volume Owner status on Apple Silicon Macs

macOS on Apple Silicon Macs includes a concept known as volume ownership. You must be a volume owner to perform the following tasks on an Apple Silicon Mac:

* There may be multiple installations of macOS on one Apple Silicon Mac; each macOS install would have their own startup security policy.

For more information on volume ownership, please see Apple’s Platform Deployment article linked below:

https://support.apple.com/guide/deployment/use-secure-and-bootstrap-tokens-dep24dbdcf9e/web (see the Volume ownership section.)

How do you get volume ownership though? It turns out that Apple has this currently set up on macOS as a two-fer deal: If an account account has Secure Token, it is also granted volume ownership. For more details, please see below the jump.

To see which users on the Mac have Secure Token, run the following command:


/usr/sbin/diskutil apfs listCryptoUsers /

view raw

gistfile1.txt

hosted with ❤ by GitHub

The user accounts with Secure Token assigned should appear listed with the following information:

  • Type: Local Open Directory User
  • Volume Owner: Yes

Screenshot-2023-03-10-at-4.42.10-PM.png

In place of the account’s username, the account’s assigned UUID identifier (also referred to as a GeneratedUID) is listed. To get the account username, run the following command with the UUID identifier in the appropriate place:


/usr/bin/dscl . -search /Users GeneratedUID UUID_goes_here | awk '{print $1}' | head -n 1

view raw

gistfile1.txt

hosted with ❤ by GitHub

Screenshot-2023-03-10-at-4.42.11-PM.png

If the account you want to be a Volume Owner isn’t listed, you can check the account’s Secure Token status by running the following command:


/usr/sbin/sysadminctl -secureTokenStatus username_goes_here

view raw

gistfile1.txt

hosted with ❤ by GitHub

If the account does not have Secure Token assigned, the output of the command should tell you this.

Screenshot-2023-03-10-at-4.52.54-PM.png

To assign Secure Token (and Volume Owner) to the desired account, run the following command:


/usr/sbin/sysadminctl -secureTokenOn username_goes_here -password password_goes_here -adminUser user_with_secure_token_goes_here -adminPassword admin_password_goes_here

view raw

gistfile1.txt

hosted with ❤ by GitHub

Screenshot-2023-03-10-at-4.54.53-PM.png

If you want to be prompted for passwords in place of including them as part of the command in plaintext, enter a dash ( ) where you would otherwise enter the relevant account’s password when running the following command:


/usr/sbin/sysadminctl -secureTokenOn username_goes_here -password – -adminUser user_with_secure_token_goes_here -adminPassword –

view raw

gistfile1.txt

hosted with ❤ by GitHub

Once this has been done, you can verify that Secure Token has been assigned to the desired account by running the following command:


/usr/sbin/sysadminctl -secureTokenStatus username_goes_here

view raw

gistfile1.txt

hosted with ❤ by GitHub

The output should now tell you that Secure Token has been assigned to the account.

Screenshot-2023-03-10-at-5.09.41-PM.png

To verify that the desired account is now also a Volume Owner, run the following command:


/usr/sbin/diskutil apfs listCryptoUsers /

view raw

gistfile1.txt

hosted with ❤ by GitHub

You should see a new entry listed with the following information:

  • Type: Local Open Directory User
  • Volume Owner: Yes

Screenshot-2023-03-10-at-5.21.10-PM.png

To get the account username, run the following command with the UUID identifier in the appropriate place:


/usr/bin/dscl . -search /Users GeneratedUID UUID_goes_here | awk '{print $1}' | head -n 1

view raw

gistfile1.txt

hosted with ❤ by GitHub

The desired account’s username should appear in the output.

Screenshot-2023-03-10-at-5.21.11-PM.png

  1. Osma
    March 16, 2023 at 7:45 am

    Thank you for documenting this, it got us out of trouble with a new M2 MBA which assigned the Secure Token to a Time Machine-recovered account (an old MacPorts account inherited and not noticed from ages ago). One further thing I needed to do in order to transfer the Secure Token to the correct account was to temporarily grant the accidentally created account admin privileges:

    udo dscl . -append /Groups/admin GroupMembership macports

    One Monterey update later, the account could be deleted and forgotten.

  2. May 30, 2023 at 6:14 pm

    Wondering if this is able to be scripted in a way to push out from Jamf if for some reason a user isnt granted the bootstrap or volume ownership. I have a smart group created already with the extension attribute finding users on Apple Silicone machines without Volume Ownership. Just wondering if we use a local admin if we can program this out to just apply to that smart group.

    • jsm253
      April 5, 2024 at 6:12 pm

      Were you ever able to push this out as a script using Jamf? We have a few hundred M2 MacBooks that are affected by this issue.

  3. Jerry
    August 18, 2023 at 8:35 am

    Thank you very much for your post.
    In my case a Macbook Pro M2 was joined to the company’s domain and the domain user (with admin privileges on the computer) was not able to install any updates.

  4. jmoyer9af90c9f6b
    April 23, 2024 at 1:57 pm

    Thank you for sharing! Some of our M2 MacBooks had administrator accounts that were not allowed to install macOS updates. This was a simple fix.

  1. No trackbacks yet.

Leave a comment