How to fix home folder permissions in OS X

HomeIconXIf you run into odd slow-downs or problems with loading specific programs and services, then sometimes this can be caused by the inability of the program or service to access a necessary resource on disk, be it a preference file, or a core resource like a framework, font, or audio unit. In these cases you might see an error, but also might just see the problematic behavior.

Fixing permissions in OS X is relatively straight-forward, and simply requires you to open Disk Utility, select your boot drive, and then click the “Repair Permissions” button in the First Aid tab. Doing this will have the system check various receipt and bill of materials files in the Macintosh HD > Library > Receipts, and hidden var > db > receipts folders, and reset the permissions for files on disk to those represented by the files in these receipts. This is all done automatically, so you only have to click the “Repair Permissions” button and wait for the routine to end.

While a global permissions fix like this can be useful, it does not touch your home folder, and this is often where a permissions snafu can result in a headache or two.

Your home folder needs a specific permissions setup, not only to ensure full and proper access by your account, but also for security to prevent other people on the system from accessing your private files. To ensure your account’s permissions are set up properly, you need to first strip any access control lists from the account, and then use Apple’s password utility to reset home folder permissions:

Resetting home folder permissions in OS X

In Apple’s password reset tool, clicking this button will reset the selected account’s permissions to their defaults.

  1. Strip ACLs from your account by running the following command in the Terminal:
    sudo chmod -RN ~/
  2. Boot to Recovery mode by holding Command-R at startup.
  3. After selecting your language and are at the Tools window, choose the “Reset Password” option from the Utilities menu, or if this is not available, choose Terminal and then run the command “resetpassword” (all one word).
  4. In the password reset utility, select your hard drive, and then select your user account from the drop-down menu.
  5. With your account selected, click the “button to reset home folder permissions and ACLs” at the bottom of the password reset tool’s window.

This reset should only take a few moments at most to complete, and then you can reboot your system and log back into your account, to see if the changes have made a difference for whatever problem you have been experiencing.

9 thoughts on “How to fix home folder permissions in OS X

  1. msadesign

    Toph: when I stripped the ACLs I ran into a world of hurt, including apps that couldn’t locate the Keychain. User error, no doubt?

    Reply
  2. mike

    I have seen this recommend for fixing an issue with Safari losing extensions. I have seen on many forums where others seem to have/had this issue. This is the only solution I have seen, yet no response from the OP in the forums as to if/how they rectified the problem. I really don’t want to have to re-install clean or create a new user account to solve this issue. (Both of those solutions do fix the problem.) I know that there must me a way to do this. I have reinstall on top of the existing OS X, deleted nearly every preference file (even ones that clearly were not the problem.) I have run big long terminal commands that others suggested, but still not solved.

    Reply
  3. David A

    I tried this on Mavericks 10.9.5 and I still have the ACL’s after reboot. User error? Terminal command will not work on the home account unless it is set to ADMIN. You get a terminal error otherwise.

    Reply
    1. Charles

      It depends how the server that stores the network home folders has been setup. In conventional setups you will need to login to the server using an account with admin privileges on the server and fix the issues there.

      Reply
  4. W

    Why has no developer created an special application to do all the grunt work for me?

    I do not have much luck using TERMINAL and in fact have wiped out a hard drive which perhaps is a solution since i had to re-install the OS and all other applications etc i need/use.

    Reply
  5. Charles

    It is a good idea to have two accounts: one ‘myadmin’ (for example) with admin privileges and another ‘myuser’ (for example) with no admin privileges. In this case, step 1 becomes:

    Logout as myuser and login again as myadmin. Open Terminal.app and type the command:

    sudo chmod -RN ~myuser/

    Reply
  6. Joe

    And how does one do this for thousands of accounts? Actual steps would be nice. Or how bout a list of what the permissions should be and I’ll just go through the “info” tab and reset them. Don’t have this problem on a real server or even finding out the what the permissions should be. Google home folder permissions Windows server 2008 and BAM you get a list of what things should be and you can then go and set the permissions on the root and propagate to child. Just finding this information for Macs has taken 3 hours and still no result.

    Reply

Leave a Reply