---
tags:
  - macOS
  - Tahoe
  - terminal
  - permissions
  - security
title: Managing File Permissions with chmod and chown on macOS Tahoe
---

# Managing File Permissions with chmod and chown on macOS Tahoe

In macOS Tahoe, like other Unix-based systems, every file and directory has a set of permissions that determine who can read, write, or execute it. Managing these permissions via the Terminal is a critical skill for system administration and scripting.

## Viewing Permissions

To see the permissions of files in your current directory, use the long-list format of the `ls` command:

```zsh
ls -l
```

You will see output similar to this:

```text
-rw-r--r--  1 user  staff  1024 Jan 1 12:00 document.txt
drwxr-xr-x  3 user  staff    96 Jan 1 12:05 MyFolder
```

### Decoding the String

The first column (e.g., `-rw-r--r--`) represents the permissions.

1.  **Type**: The first character indicates the file type.
    *   `-`: Regular file.
    *   `d`: Directory.
2.  **User (Owner)**: The next three characters (`rw-`).
3.  **Group**: The middle three characters (`r--`).
4.  **Others**: The last three characters (`r--`).

The letters stand for:
*   **r**: Read
*   **w**: Write
*   **x**: Execute (run a script or enter a directory)

## Changing Permissions: chmod

The `chmod` (Change Mode) command modifies these access rights.

### Symbolic Mode

This method uses letters to represent the changes.

*   **u**: User
*   **g**: Group
*   **o**: Others
*   **a**: All (everyone)

**Examples:**

*   Make a script executable for the user:
    ```zsh
    chmod u+x myscript.sh
    ```
*   Remove write permission for others:
    ```zsh
    chmod o-w shared_file.txt
    ```
*   Give everyone read access:
    ```zsh
    chmod a+r public_doc.md
    ```

### Numeric Mode

This method uses numbers to represent the permissions (4=Read, 2=Write, 1=Execute).

*   **7** (4+2+1): Read, Write, Execute.
*   **6** (4+2): Read, Write.
*   **5** (4+1): Read, Execute.
*   **4**: Read only.

**Common Examples:**

*   **755** (User: rwx, Group: r-x, Others: r-x): Standard for scripts and programs.
    ```zsh
    chmod 755 myscript.sh
    ```
*   **644** (User: rw-, Group: r--, Others: r--): Standard for text files.
    ```zsh
    chmod 644 document.txt
    ```
*   **600** (User: rw-, Group: ---, Others: ---): Private file (like SSH keys).
    ```zsh
    chmod 600 private_key.pem
    ```

## Changing Ownership: chown

The `chown` (Change Owner) command changes the user or group that owns a file. You usually need `sudo` to change ownership.

**Syntax:**
```zsh
sudo chown [user]:[group] [file]
```

**Examples:**

*   Change the owner of a file to "john":
    ```zsh
    sudo chown john file.txt
    ```
*   Change owner to "john" and group to "staff":
    ```zsh
    sudo chown john:staff file.txt
    ```
*   Recursively change ownership of a folder and everything inside it:
    ```zsh
    sudo chown -R john:staff MyFolder/
    ```

For more on general terminal usage, refer to Getting Started with macOS Tahoe.