Skip to main content

ZSH: permission denied

· 3 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

zsh: permission denied: /Users/username/.zshrc occurs because your user account doesn't have the necessary file permissions to write to or execute the .zshrc file. This is a common issue after certain system updates, migrations, or when a file is created with elevated privileges.

To solve this, you need to change the file's ownership or permissions.

Change File Permissions

The easiest fix is to give yourself read and write permissions to the file. You can use the chmod command for this.

# Give the file owner read and write permissions
chmod u+rw /Users/username/.zshrc

This command adds (+) read (r) and write (w) permissions for the file's owner (u).

After running the command, try to open and edit the file again.

Change File Ownership

If changing permissions doesn't work, you might not be the owner of the file. You can verify the ownership using ls -l.

ls -l /Users/username/.zshrc
# Example output: -rw-r--r-- 1 root staff 567 Aug 28 10:30 /Users/username/.zshrc

If the owner is listed as root (as in the example above), you need to change the ownership to your user account.

To change the ownership, use the chown command.

# Change the file's owner to your user and group
sudo chown username:staff /Users/username/.zshrc

Replace username with your actual username and staff with your user's group (or a relevant group). You might be prompted for your password because chown requires sudo (super-user) privileges to change ownership.

After changing the ownership, you should have full access to the file. You can then also adjust permissions with chmod if needed.