In previous versions of macOS, I had a separate profile picture for the user account on the computer and the Apple ID iCloud account. With Monterey, it seems to have combined them such that if I change one that it automatically changes the other.

How can I set the profile picture for the local user account without changing the Apple ID iCloud account?

Ideally, I would like to unlink them. Alternatively, I'm wondering if there is a way to modify a preferences file rather than going through the UI to avoid the trigger that would sync the two.


2 Answers 2


It seems like it's possible to fix this behavior by disabling Contacts sync in iCloud settings. It does mean your contacts will no longer sync (and iCloud will immediately delete the local contacts without confirmation). So far this seems to be working for me, but, as with these synchronization issues, it might just be temporary.

  • That is helpful to know, thank you. I rely on syncing contacts so I need a different solution.
    – g .
    Jan 20 at 8:29

I have found a way that seems to work. The theory is that the user interface for System Preferences is updating both the iCloud profile pic and the local user profile pic if one or the other is changed. By using the command line, I was able to change the local user profile pic without changing the iCloud pic.

The following steps use the change_userpic.sh script from this answer. Save the script locally and set the permissions to allow it to execute.

Then follow these steps...

  1. Set the desired profile picture for the local user account through System Preferences.

  2. Save the profile picture using the command line replacing 'username' with the username of the local account.

    dscl . read /Users/username JPEGPhoto | xxd -r -p > ./username.jpg

  3. Set the desired iCloud profile picture through System Preferences. This will also change the local user account — which we will change in a moment.

  4. Delete the local user account profile picture with the following two commands.

    dscl . delete /Users/username JPEGPhoto

    dscl . delete /Users/username Picture

  5. Set the local user account profile picture to the image saved in step 2.

    ./change_userpic.sh username username.jpg

This seems to have worked. I can see the two different profile pics in System Preferences (though not changing either one!).

  • I've been trying to do this, but I always get zsh: operation not permitted: ./change_userpic.sh I've got Full Disk Access set on Terminal, but can't seem to get it to run.
    – Phoebe
    Jan 16 at 18:24
  • Hmmm. I actually copied and pasted the script into a text file. If the file was downloaded, it could be flagged by Apple for quarantine. This might help — alansiu.net/2021/08/19/…
    – g .
    Jan 18 at 21:21
  • You probably need to do chmod +x change_userpic.sh before running it.
    – lhf
    Jan 18 at 23:18
  • I did try setting execute permissions and running as sudo, but no luck. I'll keep trying.
    – Phoebe
    Jan 19 at 22:10
  • @lhf I initially thought that too, but in testing it out that produced a different error message for me.
    – g .
    Jan 20 at 8:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .